commandref_DE.html 2.2 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156281572815828159281602816128162281632816428165281662816728168281692817028171281722817328174281752817628177281782817928180281812818228183281842818528186281872818828189281902819128192281932819428195281962819728198281992820028201282022820328204282052820628207282082820928210282112821228213282142821528216282172821828219282202822128222282232822428225282262822728228282292823028231282322823328234282352823628237282382823928240282412824228243282442824528246282472824828249282502825128252282532825428255282562825728258282592826028261282622826328264282652826628267282682826928270282712827228273282742827528276282772827828279282802828128282282832828428285282862828728288282892829028291282922829328294282952829628297282982829928300283012830228303283042830528306283072830828309283102831128312283132831428315283162831728318283192832028321283222832328324283252832628327283282832928330283312833228333283342833528336283372833828339283402834128342283432834428345283462834728348283492835028351283522835328354283552835628357283582835928360283612836228363283642836528366283672836828369283702837128372283732837428375283762837728378283792838028381283822838328384283852838628387283882838928390283912839228393283942839528396283972839828399284002840128402284032840428405284062840728408284092841028411284122841328414284152841628417284182841928420284212842228423284242842528426284272842828429284302843128432284332843428435284362843728438284392844028441284422844328444284452844628447284482844928450284512845228453284542845528456284572845828459284602846128462284632846428465284662846728468284692847028471284722847328474284752847628477284782847928480284812848228483284842848528486284872848828489284902849128492284932849428495284962849728498284992850028501285022850328504285052850628507285082850928510285112851228513285142851528516285172851828519285202852128522285232852428525285262852728528285292853028531285322853328534285352853628537285382853928540285412854228543285442854528546285472854828549285502855128552285532855428555285562855728558285592856028561285622856328564285652856628567285682856928570285712857228573285742857528576285772857828579285802858128582285832858428585285862858728588285892859028591285922859328594285952859628597285982859928600286012860228603286042860528606286072860828609286102861128612286132861428615286162861728618286192862028621286222862328624286252862628627286282862928630286312863228633286342863528636286372863828639286402864128642286432864428645286462864728648286492865028651286522865328654286552865628657286582865928660286612866228663286642866528666286672866828669286702867128672286732867428675286762867728678286792868028681286822868328684286852868628687286882868928690286912869228693286942869528696286972869828699287002870128702287032870428705287062870728708287092871028711287122871328714287152871628717287182871928720287212872228723287242872528726287272872828729287302873128732287332873428735287362873728738287392874028741287422874328744287452874628747287482874928750287512875228753287542875528756287572875828759287602876128762287632876428765287662876728768287692877028771287722877328774287752877628777287782877928780287812878228783287842878528786287872878828789287902879128792287932879428795287962879728798287992880028801288022880328804288052880628807288082880928810288112881228813288142881528816288172881828819288202882128822288232882428825288262882728828288292883028831288322883328834288352883628837288382883928840288412884228843288442884528846288472884828849288502885128852288532885428855288562885728858288592886028861288622886328864288652886628867288682886928870288712887228873288742887528876288772887828879288802888128882288832888428885288862888728888288892889028891288922889328894288952889628897288982889928900289012890228903289042890528906289072890828909289102891128912289132891428915289162891728918289192892028921289222892328924289252892628927289282892928930289312893228933289342893528936289372893828939289402894128942289432894428945289462894728948289492895028951289522895328954289552895628957289582895928960289612896228963289642896528966289672896828969289702897128972289732897428975289762897728978289792898028981289822898328984289852898628987289882898928990289912899228993289942899528996289972899828999290002900129002290032900429005290062900729008290092901029011290122901329014290152901629017290182901929020290212902229023290242902529026290272902829029290302903129032290332903429035290362903729038290392904029041290422904329044290452904629047290482904929050290512905229053290542905529056290572905829059290602906129062290632906429065290662906729068290692907029071290722907329074290752907629077290782907929080290812908229083290842908529086290872908829089290902909129092290932909429095290962909729098290992910029101291022910329104291052910629107291082910929110291112911229113291142911529116291172911829119291202912129122291232912429125291262912729128291292913029131291322913329134291352913629137291382913929140291412914229143291442914529146291472914829149291502915129152291532915429155291562915729158291592916029161291622916329164291652916629167291682916929170291712917229173291742917529176291772917829179291802918129182291832918429185291862918729188291892919029191291922919329194291952919629197291982919929200292012920229203292042920529206292072920829209292102921129212292132921429215292162921729218292192922029221292222922329224292252922629227292282922929230292312923229233292342923529236292372923829239292402924129242292432924429245292462924729248292492925029251292522925329254292552925629257292582925929260292612926229263292642926529266292672926829269292702927129272292732927429275292762927729278292792928029281292822928329284292852928629287292882928929290292912929229293292942929529296292972929829299293002930129302293032930429305293062930729308293092931029311293122931329314293152931629317293182931929320293212932229323293242932529326293272932829329293302933129332293332933429335293362933729338293392934029341293422934329344293452934629347293482934929350293512935229353293542935529356293572935829359293602936129362293632936429365293662936729368293692937029371293722937329374293752937629377293782937929380293812938229383293842938529386293872938829389293902939129392293932939429395293962939729398293992940029401294022940329404294052940629407294082940929410294112941229413294142941529416294172941829419294202942129422294232942429425294262942729428294292943029431294322943329434294352943629437294382943929440294412944229443294442944529446294472944829449294502945129452294532945429455294562945729458294592946029461294622946329464294652946629467294682946929470294712947229473294742947529476294772947829479294802948129482294832948429485294862948729488294892949029491294922949329494294952949629497294982949929500295012950229503295042950529506295072950829509295102951129512295132951429515295162951729518295192952029521295222952329524295252952629527295282952929530295312953229533295342953529536295372953829539295402954129542295432954429545295462954729548295492955029551295522955329554295552955629557295582955929560295612956229563295642956529566295672956829569295702957129572295732957429575295762957729578295792958029581295822958329584295852958629587295882958929590295912959229593295942959529596295972959829599296002960129602296032960429605296062960729608296092961029611296122961329614296152961629617296182961929620296212962229623296242962529626296272962829629296302963129632296332963429635296362963729638296392964029641296422964329644296452964629647296482964929650296512965229653296542965529656296572965829659296602966129662296632966429665296662966729668296692967029671296722967329674296752967629677296782967929680296812968229683296842968529686296872968829689296902969129692296932969429695296962969729698296992970029701297022970329704297052970629707297082970929710297112971229713297142971529716297172971829719297202972129722297232972429725297262972729728297292973029731297322973329734297352973629737297382973929740297412974229743297442974529746297472974829749297502975129752297532975429755297562975729758297592976029761297622976329764297652976629767297682976929770297712977229773297742977529776297772977829779297802978129782297832978429785297862978729788297892979029791297922979329794297952979629797297982979929800298012980229803298042980529806298072980829809298102981129812298132981429815298162981729818298192982029821298222982329824298252982629827298282982929830298312983229833298342983529836298372983829839298402984129842298432984429845298462984729848298492985029851298522985329854298552985629857298582985929860298612986229863298642986529866298672986829869298702987129872298732987429875298762987729878298792988029881298822988329884298852988629887298882988929890298912989229893298942989529896298972989829899299002990129902299032990429905299062990729908299092991029911299122991329914299152991629917299182991929920299212992229923299242992529926299272992829929299302993129932299332993429935299362993729938299392994029941299422994329944299452994629947299482994929950299512995229953299542995529956299572995829959299602996129962299632996429965299662996729968299692997029971299722997329974299752997629977299782997929980299812998229983299842998529986299872998829989299902999129992299932999429995299962999729998299993000030001300023000330004300053000630007300083000930010300113001230013300143001530016300173001830019300203002130022300233002430025300263002730028300293003030031300323003330034300353003630037300383003930040300413004230043300443004530046300473004830049300503005130052300533005430055300563005730058300593006030061300623006330064300653006630067300683006930070300713007230073300743007530076300773007830079300803008130082300833008430085300863008730088300893009030091300923009330094300953009630097300983009930100301013010230103301043010530106301073010830109301103011130112301133011430115301163011730118301193012030121301223012330124301253012630127301283012930130301313013230133301343013530136301373013830139301403014130142301433014430145301463014730148301493015030151301523015330154301553015630157301583015930160301613016230163301643016530166301673016830169301703017130172301733017430175301763017730178301793018030181301823018330184301853018630187301883018930190301913019230193301943019530196301973019830199302003020130202302033020430205302063020730208302093021030211302123021330214302153021630217302183021930220302213022230223302243022530226302273022830229302303023130232302333023430235302363023730238302393024030241302423024330244302453024630247302483024930250302513025230253302543025530256302573025830259302603026130262302633026430265302663026730268302693027030271302723027330274302753027630277302783027930280302813028230283302843028530286302873028830289302903029130292302933029430295302963029730298302993030030301303023030330304303053030630307303083030930310303113031230313303143031530316303173031830319303203032130322303233032430325303263032730328303293033030331303323033330334303353033630337303383033930340303413034230343303443034530346303473034830349303503035130352303533035430355303563035730358303593036030361303623036330364303653036630367303683036930370303713037230373303743037530376303773037830379303803038130382303833038430385303863038730388303893039030391303923039330394303953039630397303983039930400304013040230403304043040530406304073040830409304103041130412304133041430415304163041730418304193042030421304223042330424304253042630427304283042930430304313043230433304343043530436304373043830439304403044130442304433044430445304463044730448304493045030451304523045330454304553045630457304583045930460304613046230463304643046530466304673046830469304703047130472304733047430475304763047730478304793048030481304823048330484304853048630487304883048930490304913049230493304943049530496304973049830499305003050130502305033050430505305063050730508305093051030511305123051330514305153051630517305183051930520305213052230523305243052530526305273052830529305303053130532305333053430535305363053730538305393054030541305423054330544305453054630547305483054930550305513055230553305543055530556305573055830559305603056130562305633056430565305663056730568305693057030571305723057330574305753057630577305783057930580305813058230583305843058530586305873058830589305903059130592305933059430595305963059730598305993060030601306023060330604306053060630607306083060930610306113061230613306143061530616306173061830619306203062130622306233062430625306263062730628306293063030631306323063330634306353063630637306383063930640306413064230643306443064530646306473064830649306503065130652306533065430655306563065730658306593066030661306623066330664306653066630667306683066930670306713067230673306743067530676306773067830679306803068130682306833068430685306863068730688306893069030691306923069330694306953069630697306983069930700307013070230703307043070530706307073070830709307103071130712307133071430715307163071730718307193072030721307223072330724307253072630727307283072930730307313073230733307343073530736307373073830739307403074130742307433074430745307463074730748307493075030751307523075330754307553075630757307583075930760307613076230763307643076530766307673076830769307703077130772307733077430775307763077730778307793078030781307823078330784307853078630787307883078930790307913079230793307943079530796307973079830799308003080130802308033080430805308063080730808308093081030811308123081330814308153081630817308183081930820308213082230823308243082530826308273082830829308303083130832308333083430835308363083730838308393084030841308423084330844308453084630847308483084930850308513085230853308543085530856308573085830859308603086130862308633086430865308663086730868308693087030871308723087330874308753087630877308783087930880308813088230883308843088530886308873088830889308903089130892308933089430895308963089730898308993090030901309023090330904309053090630907309083090930910309113091230913309143091530916309173091830919309203092130922309233092430925309263092730928309293093030931309323093330934309353093630937309383093930940309413094230943309443094530946309473094830949309503095130952309533095430955309563095730958309593096030961309623096330964309653096630967309683096930970309713097230973309743097530976309773097830979309803098130982309833098430985309863098730988309893099030991309923099330994309953099630997309983099931000310013100231003310043100531006310073100831009310103101131012310133101431015310163101731018310193102031021310223102331024310253102631027310283102931030310313103231033310343103531036310373103831039310403104131042310433104431045310463104731048310493105031051310523105331054310553105631057310583105931060310613106231063310643106531066310673106831069310703107131072310733107431075310763107731078310793108031081310823108331084310853108631087310883108931090310913109231093310943109531096310973109831099311003110131102311033110431105311063110731108311093111031111311123111331114311153111631117311183111931120311213112231123311243112531126311273112831129311303113131132311333113431135311363113731138311393114031141311423114331144311453114631147311483114931150311513115231153311543115531156311573115831159311603116131162311633116431165311663116731168311693117031171311723117331174311753117631177311783117931180311813118231183311843118531186311873118831189311903119131192311933119431195311963119731198311993120031201312023120331204312053120631207312083120931210312113121231213312143121531216312173121831219312203122131222312233122431225312263122731228312293123031231312323123331234312353123631237312383123931240312413124231243312443124531246312473124831249312503125131252312533125431255312563125731258312593126031261312623126331264312653126631267312683126931270312713127231273312743127531276312773127831279312803128131282312833128431285312863128731288312893129031291312923129331294312953129631297312983129931300313013130231303313043130531306313073130831309313103131131312313133131431315313163131731318313193132031321313223132331324313253132631327313283132931330313313133231333313343133531336313373133831339313403134131342313433134431345313463134731348313493135031351313523135331354313553135631357313583135931360313613136231363313643136531366313673136831369313703137131372313733137431375313763137731378313793138031381313823138331384313853138631387313883138931390313913139231393313943139531396313973139831399314003140131402314033140431405314063140731408314093141031411314123141331414314153141631417314183141931420314213142231423314243142531426314273142831429314303143131432314333143431435314363143731438314393144031441314423144331444314453144631447314483144931450314513145231453314543145531456314573145831459314603146131462314633146431465314663146731468314693147031471314723147331474314753147631477314783147931480314813148231483314843148531486314873148831489314903149131492314933149431495314963149731498314993150031501315023150331504315053150631507315083150931510315113151231513315143151531516315173151831519315203152131522315233152431525315263152731528315293153031531315323153331534315353153631537315383153931540315413154231543315443154531546315473154831549315503155131552315533155431555315563155731558315593156031561315623156331564315653156631567315683156931570315713157231573315743157531576315773157831579315803158131582315833158431585315863158731588315893159031591315923159331594315953159631597315983159931600316013160231603316043160531606316073160831609316103161131612316133161431615316163161731618316193162031621316223162331624316253162631627316283162931630316313163231633316343163531636316373163831639316403164131642316433164431645316463164731648316493165031651316523165331654316553165631657316583165931660316613166231663316643166531666316673166831669316703167131672316733167431675316763167731678316793168031681316823168331684316853168631687316883168931690316913169231693316943169531696316973169831699317003170131702317033170431705317063170731708317093171031711317123171331714317153171631717317183171931720317213172231723317243172531726317273172831729317303173131732317333173431735317363173731738317393174031741317423174331744317453174631747317483174931750317513175231753317543175531756317573175831759317603176131762317633176431765317663176731768317693177031771317723177331774317753177631777317783177931780317813178231783317843178531786317873178831789317903179131792317933179431795317963179731798317993180031801318023180331804318053180631807318083180931810318113181231813318143181531816318173181831819318203182131822318233182431825318263182731828318293183031831318323183331834318353183631837318383183931840318413184231843318443184531846318473184831849318503185131852318533185431855318563185731858318593186031861318623186331864318653186631867318683186931870318713187231873318743187531876318773187831879318803188131882318833188431885318863188731888318893189031891318923189331894318953189631897318983189931900319013190231903319043190531906319073190831909319103191131912319133191431915319163191731918319193192031921319223192331924319253192631927319283192931930319313193231933319343193531936319373193831939319403194131942319433194431945319463194731948319493195031951319523195331954319553195631957319583195931960319613196231963319643196531966319673196831969319703197131972319733197431975319763197731978319793198031981319823198331984319853198631987319883198931990319913199231993319943199531996319973199831999320003200132002320033200432005320063200732008320093201032011320123201332014320153201632017320183201932020320213202232023320243202532026320273202832029320303203132032320333203432035320363203732038320393204032041320423204332044320453204632047320483204932050320513205232053320543205532056320573205832059320603206132062320633206432065320663206732068320693207032071320723207332074320753207632077320783207932080320813208232083320843208532086320873208832089320903209132092320933209432095320963209732098320993210032101321023210332104321053210632107321083210932110321113211232113321143211532116321173211832119321203212132122321233212432125321263212732128321293213032131321323213332134321353213632137321383213932140321413214232143321443214532146321473214832149321503215132152321533215432155321563215732158321593216032161321623216332164321653216632167321683216932170321713217232173321743217532176321773217832179321803218132182321833218432185321863218732188321893219032191321923219332194321953219632197321983219932200322013220232203322043220532206322073220832209322103221132212322133221432215322163221732218322193222032221322223222332224322253222632227322283222932230322313223232233322343223532236322373223832239322403224132242322433224432245322463224732248322493225032251322523225332254322553225632257322583225932260322613226232263322643226532266322673226832269322703227132272322733227432275322763227732278322793228032281322823228332284322853228632287322883228932290322913229232293322943229532296322973229832299323003230132302323033230432305323063230732308323093231032311323123231332314323153231632317323183231932320323213232232323323243232532326323273232832329323303233132332323333233432335323363233732338323393234032341323423234332344323453234632347323483234932350323513235232353323543235532356323573235832359323603236132362323633236432365323663236732368323693237032371323723237332374323753237632377323783237932380323813238232383323843238532386323873238832389323903239132392323933239432395323963239732398323993240032401324023240332404324053240632407324083240932410324113241232413324143241532416324173241832419324203242132422324233242432425324263242732428324293243032431324323243332434324353243632437324383243932440324413244232443324443244532446324473244832449324503245132452324533245432455324563245732458324593246032461324623246332464324653246632467324683246932470324713247232473324743247532476324773247832479324803248132482324833248432485324863248732488324893249032491324923249332494324953249632497324983249932500325013250232503325043250532506325073250832509325103251132512325133251432515325163251732518325193252032521325223252332524325253252632527325283252932530325313253232533325343253532536325373253832539325403254132542325433254432545325463254732548325493255032551325523255332554325553255632557325583255932560325613256232563325643256532566325673256832569325703257132572325733257432575325763257732578325793258032581325823258332584325853258632587325883258932590325913259232593325943259532596325973259832599326003260132602326033260432605326063260732608326093261032611326123261332614326153261632617326183261932620326213262232623326243262532626326273262832629326303263132632326333263432635326363263732638326393264032641326423264332644326453264632647326483264932650326513265232653326543265532656326573265832659326603266132662326633266432665326663266732668326693267032671326723267332674326753267632677326783267932680326813268232683326843268532686326873268832689326903269132692326933269432695326963269732698326993270032701327023270332704327053270632707327083270932710327113271232713327143271532716327173271832719327203272132722327233272432725327263272732728327293273032731327323273332734327353273632737327383273932740327413274232743327443274532746327473274832749327503275132752327533275432755327563275732758327593276032761327623276332764327653276632767327683276932770327713277232773327743277532776327773277832779327803278132782327833278432785327863278732788327893279032791327923279332794327953279632797327983279932800328013280232803328043280532806328073280832809328103281132812328133281432815328163281732818328193282032821328223282332824328253282632827328283282932830328313283232833328343283532836328373283832839328403284132842328433284432845328463284732848328493285032851328523285332854328553285632857328583285932860328613286232863328643286532866328673286832869328703287132872328733287432875328763287732878328793288032881328823288332884328853288632887328883288932890328913289232893328943289532896328973289832899329003290132902329033290432905329063290732908329093291032911329123291332914329153291632917329183291932920329213292232923329243292532926329273292832929329303293132932329333293432935329363293732938329393294032941329423294332944329453294632947329483294932950329513295232953329543295532956329573295832959329603296132962329633296432965329663296732968329693297032971329723297332974329753297632977329783297932980329813298232983329843298532986329873298832989329903299132992329933299432995329963299732998329993300033001330023300333004330053300633007330083300933010330113301233013330143301533016330173301833019330203302133022330233302433025330263302733028330293303033031330323303333034330353303633037330383303933040330413304233043330443304533046330473304833049330503305133052330533305433055330563305733058330593306033061330623306333064330653306633067330683306933070330713307233073330743307533076330773307833079330803308133082330833308433085330863308733088330893309033091330923309333094330953309633097330983309933100331013310233103331043310533106331073310833109331103311133112331133311433115331163311733118331193312033121331223312333124331253312633127331283312933130331313313233133331343313533136331373313833139331403314133142331433314433145331463314733148331493315033151331523315333154331553315633157331583315933160331613316233163331643316533166331673316833169331703317133172331733317433175331763317733178331793318033181331823318333184331853318633187331883318933190331913319233193331943319533196331973319833199332003320133202332033320433205332063320733208332093321033211332123321333214332153321633217332183321933220332213322233223332243322533226332273322833229332303323133232332333323433235332363323733238332393324033241332423324333244332453324633247332483324933250332513325233253332543325533256332573325833259332603326133262332633326433265332663326733268332693327033271332723327333274332753327633277332783327933280332813328233283332843328533286332873328833289332903329133292332933329433295332963329733298332993330033301333023330333304333053330633307333083330933310333113331233313333143331533316333173331833319333203332133322333233332433325333263332733328333293333033331333323333333334333353333633337333383333933340333413334233343333443334533346333473334833349333503335133352333533335433355333563335733358333593336033361333623336333364333653336633367333683336933370333713337233373333743337533376333773337833379333803338133382333833338433385333863338733388333893339033391333923339333394333953339633397333983339933400334013340233403334043340533406334073340833409334103341133412334133341433415334163341733418334193342033421334223342333424334253342633427334283342933430334313343233433334343343533436334373343833439334403344133442334433344433445334463344733448334493345033451334523345333454334553345633457334583345933460334613346233463334643346533466334673346833469334703347133472334733347433475334763347733478334793348033481334823348333484334853348633487334883348933490334913349233493334943349533496334973349833499335003350133502335033350433505335063350733508335093351033511335123351333514335153351633517335183351933520335213352233523335243352533526335273352833529335303353133532335333353433535335363353733538335393354033541335423354333544335453354633547335483354933550335513355233553335543355533556335573355833559335603356133562335633356433565335663356733568335693357033571335723357333574335753357633577335783357933580335813358233583335843358533586335873358833589335903359133592335933359433595335963359733598335993360033601336023360333604336053360633607336083360933610336113361233613336143361533616336173361833619336203362133622336233362433625336263362733628336293363033631336323363333634336353363633637336383363933640336413364233643336443364533646336473364833649336503365133652336533365433655336563365733658336593366033661336623366333664336653366633667336683366933670336713367233673336743367533676336773367833679336803368133682336833368433685336863368733688336893369033691336923369333694336953369633697336983369933700337013370233703337043370533706337073370833709337103371133712337133371433715337163371733718337193372033721337223372333724337253372633727337283372933730337313373233733337343373533736337373373833739337403374133742337433374433745337463374733748337493375033751337523375333754337553375633757337583375933760337613376233763337643376533766337673376833769337703377133772337733377433775337763377733778337793378033781337823378333784337853378633787337883378933790337913379233793337943379533796337973379833799338003380133802338033380433805338063380733808338093381033811338123381333814338153381633817338183381933820338213382233823338243382533826338273382833829338303383133832338333383433835338363383733838338393384033841338423384333844338453384633847338483384933850338513385233853338543385533856338573385833859338603386133862338633386433865338663386733868338693387033871338723387333874338753387633877338783387933880338813388233883338843388533886338873388833889338903389133892338933389433895338963389733898338993390033901339023390333904339053390633907339083390933910339113391233913339143391533916339173391833919339203392133922339233392433925339263392733928339293393033931339323393333934339353393633937339383393933940339413394233943339443394533946339473394833949339503395133952339533395433955339563395733958339593396033961339623396333964339653396633967339683396933970339713397233973339743397533976339773397833979339803398133982339833398433985339863398733988339893399033991339923399333994339953399633997339983399934000340013400234003340043400534006340073400834009340103401134012340133401434015340163401734018340193402034021340223402334024340253402634027340283402934030340313403234033340343403534036340373403834039340403404134042340433404434045340463404734048340493405034051340523405334054340553405634057340583405934060340613406234063340643406534066340673406834069340703407134072340733407434075340763407734078340793408034081340823408334084340853408634087340883408934090340913409234093340943409534096340973409834099341003410134102341033410434105341063410734108341093411034111341123411334114341153411634117341183411934120341213412234123341243412534126341273412834129341303413134132341333413434135341363413734138341393414034141341423414334144341453414634147341483414934150341513415234153341543415534156341573415834159341603416134162341633416434165341663416734168341693417034171341723417334174341753417634177341783417934180341813418234183341843418534186341873418834189341903419134192341933419434195341963419734198341993420034201342023420334204342053420634207342083420934210342113421234213342143421534216342173421834219342203422134222342233422434225342263422734228342293423034231342323423334234342353423634237342383423934240342413424234243342443424534246342473424834249342503425134252342533425434255342563425734258342593426034261342623426334264342653426634267342683426934270342713427234273342743427534276342773427834279342803428134282342833428434285342863428734288342893429034291342923429334294342953429634297342983429934300343013430234303343043430534306343073430834309343103431134312343133431434315343163431734318343193432034321343223432334324343253432634327343283432934330343313433234333343343433534336343373433834339343403434134342343433434434345343463434734348343493435034351343523435334354343553435634357343583435934360343613436234363343643436534366343673436834369343703437134372343733437434375343763437734378343793438034381343823438334384343853438634387343883438934390343913439234393343943439534396343973439834399344003440134402344033440434405344063440734408344093441034411344123441334414344153441634417344183441934420344213442234423344243442534426344273442834429344303443134432344333443434435344363443734438344393444034441344423444334444344453444634447344483444934450344513445234453344543445534456344573445834459344603446134462344633446434465344663446734468344693447034471344723447334474344753447634477344783447934480344813448234483344843448534486344873448834489344903449134492344933449434495344963449734498344993450034501345023450334504345053450634507345083450934510345113451234513345143451534516345173451834519345203452134522345233452434525345263452734528345293453034531345323453334534345353453634537345383453934540345413454234543345443454534546345473454834549345503455134552345533455434555345563455734558345593456034561345623456334564345653456634567345683456934570345713457234573345743457534576345773457834579345803458134582345833458434585345863458734588345893459034591345923459334594345953459634597345983459934600346013460234603346043460534606346073460834609346103461134612346133461434615346163461734618346193462034621346223462334624346253462634627346283462934630346313463234633346343463534636346373463834639346403464134642346433464434645346463464734648346493465034651346523465334654346553465634657346583465934660346613466234663346643466534666346673466834669346703467134672346733467434675346763467734678346793468034681346823468334684346853468634687346883468934690346913469234693346943469534696346973469834699347003470134702347033470434705347063470734708347093471034711347123471334714347153471634717347183471934720347213472234723347243472534726347273472834729347303473134732347333473434735347363473734738347393474034741347423474334744347453474634747347483474934750347513475234753347543475534756347573475834759347603476134762347633476434765347663476734768347693477034771347723477334774347753477634777347783477934780347813478234783347843478534786347873478834789347903479134792347933479434795347963479734798347993480034801348023480334804348053480634807348083480934810348113481234813348143481534816348173481834819348203482134822348233482434825348263482734828348293483034831348323483334834348353483634837348383483934840348413484234843348443484534846348473484834849348503485134852348533485434855348563485734858348593486034861348623486334864348653486634867348683486934870348713487234873348743487534876348773487834879348803488134882348833488434885348863488734888348893489034891348923489334894348953489634897348983489934900349013490234903349043490534906349073490834909349103491134912349133491434915349163491734918349193492034921349223492334924349253492634927349283492934930349313493234933349343493534936349373493834939349403494134942349433494434945349463494734948349493495034951349523495334954349553495634957349583495934960349613496234963349643496534966349673496834969349703497134972349733497434975349763497734978349793498034981349823498334984349853498634987349883498934990349913499234993349943499534996349973499834999350003500135002350033500435005350063500735008350093501035011350123501335014350153501635017350183501935020350213502235023350243502535026350273502835029350303503135032350333503435035350363503735038350393504035041350423504335044350453504635047350483504935050350513505235053350543505535056350573505835059350603506135062350633506435065350663506735068350693507035071350723507335074350753507635077350783507935080350813508235083350843508535086350873508835089350903509135092350933509435095350963509735098350993510035101351023510335104351053510635107351083510935110351113511235113351143511535116351173511835119351203512135122351233512435125351263512735128351293513035131351323513335134351353513635137351383513935140351413514235143351443514535146351473514835149351503515135152351533515435155351563515735158351593516035161351623516335164351653516635167351683516935170351713517235173351743517535176351773517835179351803518135182351833518435185351863518735188351893519035191351923519335194351953519635197351983519935200352013520235203352043520535206352073520835209352103521135212352133521435215352163521735218352193522035221352223522335224352253522635227352283522935230352313523235233352343523535236352373523835239352403524135242352433524435245352463524735248352493525035251352523525335254352553525635257352583525935260352613526235263352643526535266352673526835269352703527135272352733527435275352763527735278352793528035281352823528335284352853528635287352883528935290352913529235293352943529535296352973529835299353003530135302353033530435305353063530735308353093531035311353123531335314353153531635317353183531935320353213532235323353243532535326353273532835329353303533135332353333533435335353363533735338353393534035341353423534335344353453534635347353483534935350353513535235353353543535535356353573535835359353603536135362353633536435365353663536735368353693537035371353723537335374353753537635377353783537935380353813538235383353843538535386353873538835389353903539135392353933539435395353963539735398353993540035401354023540335404354053540635407354083540935410354113541235413354143541535416354173541835419354203542135422354233542435425354263542735428354293543035431354323543335434354353543635437354383543935440354413544235443354443544535446354473544835449354503545135452354533545435455354563545735458354593546035461354623546335464354653546635467354683546935470354713547235473354743547535476354773547835479354803548135482354833548435485354863548735488354893549035491354923549335494354953549635497354983549935500355013550235503355043550535506355073550835509355103551135512355133551435515355163551735518355193552035521355223552335524355253552635527355283552935530355313553235533355343553535536355373553835539355403554135542355433554435545355463554735548355493555035551355523555335554355553555635557355583555935560355613556235563355643556535566355673556835569355703557135572355733557435575355763557735578355793558035581355823558335584355853558635587355883558935590355913559235593355943559535596355973559835599356003560135602356033560435605356063560735608356093561035611356123561335614356153561635617356183561935620356213562235623356243562535626356273562835629356303563135632356333563435635356363563735638356393564035641356423564335644356453564635647356483564935650356513565235653356543565535656356573565835659356603566135662356633566435665356663566735668356693567035671356723567335674356753567635677356783567935680356813568235683356843568535686356873568835689356903569135692356933569435695356963569735698356993570035701357023570335704357053570635707357083570935710357113571235713357143571535716357173571835719357203572135722357233572435725357263572735728357293573035731357323573335734357353573635737357383573935740357413574235743357443574535746357473574835749357503575135752357533575435755357563575735758357593576035761357623576335764357653576635767357683576935770357713577235773357743577535776357773577835779357803578135782357833578435785357863578735788357893579035791357923579335794357953579635797357983579935800358013580235803358043580535806358073580835809358103581135812358133581435815358163581735818358193582035821358223582335824358253582635827358283582935830358313583235833358343583535836358373583835839358403584135842358433584435845358463584735848358493585035851358523585335854358553585635857358583585935860358613586235863358643586535866358673586835869358703587135872358733587435875358763587735878358793588035881358823588335884358853588635887358883588935890358913589235893358943589535896358973589835899359003590135902359033590435905359063590735908359093591035911359123591335914359153591635917359183591935920359213592235923359243592535926359273592835929359303593135932359333593435935359363593735938359393594035941359423594335944359453594635947359483594935950359513595235953359543595535956359573595835959359603596135962359633596435965359663596735968359693597035971359723597335974359753597635977359783597935980359813598235983359843598535986359873598835989359903599135992359933599435995359963599735998359993600036001360023600336004360053600636007360083600936010360113601236013360143601536016360173601836019360203602136022360233602436025360263602736028360293603036031360323603336034360353603636037360383603936040360413604236043360443604536046360473604836049360503605136052360533605436055360563605736058360593606036061360623606336064360653606636067360683606936070360713607236073360743607536076360773607836079360803608136082360833608436085360863608736088360893609036091360923609336094360953609636097360983609936100361013610236103361043610536106361073610836109361103611136112361133611436115361163611736118361193612036121361223612336124361253612636127361283612936130361313613236133361343613536136361373613836139361403614136142361433614436145361463614736148361493615036151361523615336154361553615636157361583615936160361613616236163361643616536166361673616836169361703617136172361733617436175361763617736178361793618036181361823618336184361853618636187361883618936190361913619236193361943619536196361973619836199362003620136202362033620436205362063620736208362093621036211362123621336214362153621636217362183621936220362213622236223362243622536226362273622836229362303623136232362333623436235362363623736238362393624036241362423624336244362453624636247362483624936250362513625236253362543625536256362573625836259362603626136262362633626436265362663626736268362693627036271362723627336274362753627636277362783627936280362813628236283362843628536286362873628836289362903629136292362933629436295362963629736298362993630036301363023630336304363053630636307363083630936310363113631236313363143631536316363173631836319363203632136322363233632436325363263632736328363293633036331363323633336334363353633636337363383633936340363413634236343363443634536346363473634836349363503635136352363533635436355363563635736358363593636036361363623636336364363653636636367363683636936370363713637236373363743637536376363773637836379363803638136382363833638436385363863638736388363893639036391363923639336394363953639636397363983639936400364013640236403364043640536406364073640836409364103641136412364133641436415364163641736418364193642036421364223642336424364253642636427364283642936430364313643236433364343643536436364373643836439364403644136442364433644436445364463644736448364493645036451364523645336454364553645636457364583645936460364613646236463364643646536466364673646836469364703647136472364733647436475364763647736478364793648036481364823648336484364853648636487364883648936490364913649236493364943649536496364973649836499365003650136502365033650436505365063650736508365093651036511365123651336514365153651636517365183651936520365213652236523365243652536526365273652836529365303653136532365333653436535365363653736538365393654036541365423654336544365453654636547365483654936550365513655236553365543655536556365573655836559365603656136562365633656436565365663656736568365693657036571365723657336574365753657636577365783657936580365813658236583365843658536586365873658836589365903659136592365933659436595365963659736598365993660036601366023660336604366053660636607366083660936610366113661236613366143661536616366173661836619366203662136622366233662436625366263662736628366293663036631366323663336634366353663636637366383663936640366413664236643366443664536646366473664836649366503665136652366533665436655366563665736658366593666036661366623666336664366653666636667366683666936670366713667236673366743667536676366773667836679366803668136682366833668436685366863668736688366893669036691366923669336694366953669636697366983669936700367013670236703367043670536706367073670836709367103671136712367133671436715367163671736718367193672036721367223672336724367253672636727367283672936730367313673236733367343673536736367373673836739367403674136742367433674436745367463674736748367493675036751367523675336754367553675636757367583675936760367613676236763367643676536766367673676836769367703677136772367733677436775367763677736778367793678036781367823678336784367853678636787367883678936790367913679236793367943679536796367973679836799368003680136802368033680436805368063680736808368093681036811368123681336814368153681636817368183681936820368213682236823368243682536826368273682836829368303683136832368333683436835368363683736838368393684036841368423684336844368453684636847368483684936850368513685236853368543685536856368573685836859368603686136862368633686436865368663686736868368693687036871368723687336874368753687636877368783687936880368813688236883368843688536886368873688836889368903689136892368933689436895368963689736898368993690036901369023690336904369053690636907369083690936910369113691236913369143691536916369173691836919369203692136922369233692436925369263692736928369293693036931369323693336934369353693636937369383693936940369413694236943369443694536946369473694836949369503695136952369533695436955369563695736958369593696036961369623696336964369653696636967369683696936970369713697236973369743697536976369773697836979369803698136982369833698436985369863698736988369893699036991369923699336994369953699636997369983699937000370013700237003370043700537006370073700837009370103701137012370133701437015370163701737018370193702037021370223702337024370253702637027370283702937030370313703237033370343703537036370373703837039370403704137042370433704437045370463704737048370493705037051370523705337054370553705637057370583705937060370613706237063370643706537066370673706837069370703707137072370733707437075370763707737078370793708037081370823708337084370853708637087370883708937090370913709237093370943709537096370973709837099371003710137102371033710437105371063710737108371093711037111371123711337114371153711637117371183711937120371213712237123371243712537126371273712837129371303713137132371333713437135371363713737138371393714037141371423714337144371453714637147371483714937150371513715237153371543715537156371573715837159371603716137162371633716437165371663716737168371693717037171371723717337174371753717637177371783717937180371813718237183371843718537186371873718837189371903719137192371933719437195371963719737198371993720037201372023720337204372053720637207372083720937210372113721237213372143721537216372173721837219372203722137222372233722437225372263722737228372293723037231372323723337234372353723637237372383723937240372413724237243372443724537246372473724837249372503725137252372533725437255372563725737258372593726037261372623726337264372653726637267372683726937270372713727237273372743727537276372773727837279372803728137282372833728437285372863728737288372893729037291372923729337294372953729637297372983729937300373013730237303373043730537306373073730837309373103731137312373133731437315373163731737318373193732037321373223732337324373253732637327373283732937330373313733237333373343733537336373373733837339373403734137342373433734437345373463734737348373493735037351373523735337354373553735637357373583735937360373613736237363373643736537366373673736837369373703737137372373733737437375373763737737378373793738037381373823738337384373853738637387373883738937390373913739237393373943739537396373973739837399374003740137402374033740437405374063740737408374093741037411374123741337414374153741637417374183741937420374213742237423374243742537426374273742837429374303743137432374333743437435374363743737438374393744037441374423744337444374453744637447374483744937450374513745237453374543745537456374573745837459374603746137462374633746437465374663746737468374693747037471374723747337474374753747637477374783747937480374813748237483374843748537486374873748837489374903749137492374933749437495374963749737498374993750037501375023750337504375053750637507375083750937510375113751237513375143751537516375173751837519375203752137522375233752437525375263752737528375293753037531375323753337534375353753637537375383753937540375413754237543375443754537546375473754837549375503755137552375533755437555375563755737558375593756037561375623756337564375653756637567375683756937570375713757237573375743757537576375773757837579375803758137582375833758437585375863758737588375893759037591375923759337594375953759637597375983759937600376013760237603376043760537606376073760837609376103761137612376133761437615376163761737618376193762037621376223762337624376253762637627376283762937630376313763237633376343763537636376373763837639376403764137642376433764437645376463764737648376493765037651376523765337654376553765637657376583765937660376613766237663376643766537666376673766837669376703767137672376733767437675376763767737678376793768037681376823768337684376853768637687376883768937690376913769237693376943769537696376973769837699377003770137702377033770437705377063770737708377093771037711377123771337714377153771637717377183771937720377213772237723377243772537726377273772837729377303773137732377333773437735377363773737738377393774037741377423774337744377453774637747377483774937750377513775237753377543775537756377573775837759377603776137762377633776437765377663776737768377693777037771377723777337774377753777637777377783777937780377813778237783377843778537786377873778837789377903779137792377933779437795377963779737798377993780037801378023780337804378053780637807378083780937810378113781237813378143781537816378173781837819378203782137822378233782437825378263782737828378293783037831378323783337834378353783637837378383783937840378413784237843378443784537846378473784837849378503785137852378533785437855378563785737858378593786037861378623786337864378653786637867378683786937870378713787237873378743787537876378773787837879378803788137882378833788437885378863788737888378893789037891378923789337894378953789637897378983789937900379013790237903379043790537906379073790837909379103791137912379133791437915379163791737918379193792037921379223792337924379253792637927379283792937930379313793237933379343793537936379373793837939379403794137942379433794437945379463794737948379493795037951379523795337954379553795637957379583795937960379613796237963379643796537966379673796837969379703797137972379733797437975379763797737978379793798037981379823798337984379853798637987379883798937990379913799237993379943799537996379973799837999380003800138002380033800438005380063800738008380093801038011380123801338014380153801638017380183801938020380213802238023380243802538026380273802838029380303803138032380333803438035380363803738038380393804038041380423804338044380453804638047380483804938050380513805238053380543805538056380573805838059380603806138062380633806438065380663806738068380693807038071380723807338074380753807638077380783807938080380813808238083380843808538086380873808838089380903809138092380933809438095380963809738098380993810038101381023810338104381053810638107381083810938110381113811238113381143811538116381173811838119381203812138122381233812438125381263812738128381293813038131381323813338134381353813638137381383813938140381413814238143381443814538146381473814838149381503815138152381533815438155381563815738158381593816038161381623816338164381653816638167381683816938170381713817238173381743817538176381773817838179381803818138182381833818438185381863818738188381893819038191381923819338194381953819638197381983819938200382013820238203382043820538206382073820838209382103821138212382133821438215382163821738218382193822038221382223822338224382253822638227382283822938230382313823238233382343823538236382373823838239382403824138242382433824438245382463824738248382493825038251382523825338254382553825638257382583825938260382613826238263382643826538266382673826838269382703827138272382733827438275382763827738278382793828038281382823828338284382853828638287382883828938290382913829238293382943829538296382973829838299383003830138302383033830438305383063830738308383093831038311383123831338314383153831638317383183831938320383213832238323383243832538326383273832838329383303833138332383333833438335383363833738338383393834038341383423834338344383453834638347383483834938350383513835238353383543835538356383573835838359383603836138362383633836438365383663836738368383693837038371383723837338374383753837638377383783837938380383813838238383383843838538386383873838838389383903839138392383933839438395383963839738398383993840038401384023840338404384053840638407384083840938410384113841238413384143841538416384173841838419384203842138422384233842438425384263842738428384293843038431384323843338434384353843638437384383843938440384413844238443384443844538446384473844838449384503845138452384533845438455384563845738458384593846038461384623846338464384653846638467384683846938470384713847238473384743847538476384773847838479384803848138482384833848438485384863848738488384893849038491384923849338494384953849638497384983849938500385013850238503385043850538506385073850838509385103851138512385133851438515385163851738518385193852038521385223852338524385253852638527385283852938530385313853238533385343853538536385373853838539385403854138542385433854438545385463854738548385493855038551385523855338554385553855638557385583855938560385613856238563385643856538566385673856838569385703857138572385733857438575385763857738578385793858038581385823858338584385853858638587385883858938590385913859238593385943859538596385973859838599386003860138602386033860438605386063860738608386093861038611386123861338614386153861638617386183861938620386213862238623386243862538626386273862838629386303863138632386333863438635386363863738638386393864038641386423864338644386453864638647386483864938650386513865238653386543865538656386573865838659386603866138662386633866438665386663866738668386693867038671386723867338674386753867638677386783867938680386813868238683386843868538686386873868838689386903869138692386933869438695386963869738698386993870038701387023870338704387053870638707387083870938710387113871238713387143871538716387173871838719387203872138722387233872438725387263872738728387293873038731387323873338734387353873638737387383873938740387413874238743387443874538746387473874838749387503875138752387533875438755387563875738758387593876038761387623876338764387653876638767387683876938770387713877238773387743877538776387773877838779387803878138782387833878438785387863878738788387893879038791387923879338794387953879638797387983879938800388013880238803388043880538806388073880838809388103881138812388133881438815388163881738818388193882038821388223882338824388253882638827388283882938830388313883238833388343883538836388373883838839388403884138842388433884438845388463884738848388493885038851388523885338854388553885638857388583885938860388613886238863388643886538866388673886838869388703887138872388733887438875388763887738878388793888038881388823888338884388853888638887388883888938890388913889238893388943889538896388973889838899389003890138902389033890438905389063890738908389093891038911389123891338914389153891638917389183891938920389213892238923389243892538926389273892838929389303893138932389333893438935389363893738938389393894038941389423894338944389453894638947389483894938950389513895238953389543895538956389573895838959389603896138962389633896438965389663896738968389693897038971389723897338974389753897638977389783897938980389813898238983389843898538986389873898838989389903899138992389933899438995389963899738998389993900039001390023900339004390053900639007390083900939010390113901239013390143901539016390173901839019390203902139022390233902439025390263902739028390293903039031390323903339034390353903639037390383903939040390413904239043390443904539046390473904839049390503905139052390533905439055390563905739058390593906039061390623906339064390653906639067390683906939070390713907239073390743907539076390773907839079390803908139082390833908439085390863908739088390893909039091390923909339094390953909639097390983909939100391013910239103391043910539106391073910839109391103911139112391133911439115391163911739118391193912039121391223912339124391253912639127391283912939130391313913239133391343913539136391373913839139391403914139142391433914439145391463914739148391493915039151391523915339154391553915639157391583915939160391613916239163391643916539166391673916839169391703917139172391733917439175391763917739178391793918039181391823918339184391853918639187391883918939190391913919239193391943919539196391973919839199392003920139202392033920439205392063920739208392093921039211392123921339214392153921639217392183921939220392213922239223392243922539226392273922839229392303923139232392333923439235392363923739238392393924039241392423924339244392453924639247392483924939250392513925239253392543925539256392573925839259392603926139262392633926439265392663926739268392693927039271392723927339274392753927639277392783927939280392813928239283392843928539286392873928839289392903929139292392933929439295392963929739298392993930039301393023930339304393053930639307393083930939310393113931239313393143931539316393173931839319393203932139322393233932439325393263932739328393293933039331393323933339334393353933639337393383933939340393413934239343393443934539346393473934839349393503935139352393533935439355393563935739358393593936039361393623936339364393653936639367393683936939370393713937239373393743937539376393773937839379393803938139382393833938439385393863938739388393893939039391393923939339394393953939639397393983939939400394013940239403394043940539406394073940839409394103941139412394133941439415394163941739418394193942039421394223942339424394253942639427394283942939430394313943239433394343943539436394373943839439394403944139442394433944439445394463944739448394493945039451394523945339454394553945639457394583945939460394613946239463394643946539466394673946839469394703947139472394733947439475394763947739478394793948039481394823948339484394853948639487394883948939490394913949239493394943949539496394973949839499395003950139502395033950439505395063950739508395093951039511395123951339514395153951639517395183951939520395213952239523395243952539526395273952839529395303953139532395333953439535395363953739538395393954039541395423954339544395453954639547395483954939550395513955239553395543955539556395573955839559395603956139562395633956439565395663956739568395693957039571395723957339574395753957639577395783957939580395813958239583395843958539586395873958839589395903959139592395933959439595395963959739598395993960039601396023960339604396053960639607396083960939610396113961239613396143961539616396173961839619396203962139622396233962439625396263962739628396293963039631396323963339634396353963639637396383963939640396413964239643396443964539646396473964839649396503965139652396533965439655396563965739658396593966039661396623966339664396653966639667396683966939670396713967239673396743967539676396773967839679396803968139682396833968439685396863968739688396893969039691396923969339694396953969639697396983969939700397013970239703397043970539706397073970839709397103971139712397133971439715397163971739718397193972039721397223972339724397253972639727397283972939730397313973239733397343973539736397373973839739397403974139742397433974439745397463974739748397493975039751397523975339754397553975639757397583975939760397613976239763397643976539766397673976839769397703977139772397733977439775397763977739778397793978039781397823978339784397853978639787397883978939790397913979239793397943979539796397973979839799398003980139802398033980439805398063980739808398093981039811398123981339814398153981639817398183981939820398213982239823398243982539826398273982839829398303983139832398333983439835398363983739838398393984039841398423984339844398453984639847398483984939850398513985239853398543985539856398573985839859398603986139862398633986439865398663986739868398693987039871398723987339874398753987639877398783987939880398813988239883398843988539886398873988839889398903989139892398933989439895398963989739898398993990039901399023990339904399053990639907399083990939910399113991239913399143991539916399173991839919399203992139922399233992439925399263992739928399293993039931399323993339934399353993639937399383993939940399413994239943399443994539946399473994839949399503995139952399533995439955399563995739958399593996039961399623996339964399653996639967399683996939970399713997239973399743997539976399773997839979399803998139982399833998439985399863998739988399893999039991399923999339994399953999639997399983999940000400014000240003400044000540006400074000840009400104001140012400134001440015400164001740018400194002040021400224002340024400254002640027400284002940030400314003240033400344003540036400374003840039400404004140042400434004440045400464004740048400494005040051400524005340054400554005640057400584005940060400614006240063400644006540066400674006840069400704007140072400734007440075400764007740078400794008040081400824008340084400854008640087400884008940090400914009240093400944009540096400974009840099401004010140102401034010440105401064010740108401094011040111401124011340114401154011640117401184011940120401214012240123401244012540126401274012840129401304013140132401334013440135401364013740138401394014040141401424014340144401454014640147401484014940150401514015240153401544015540156401574015840159401604016140162401634016440165401664016740168401694017040171401724017340174401754017640177401784017940180401814018240183401844018540186401874018840189401904019140192401934019440195401964019740198401994020040201402024020340204402054020640207402084020940210402114021240213402144021540216402174021840219402204022140222402234022440225402264022740228402294023040231402324023340234402354023640237402384023940240402414024240243402444024540246402474024840249402504025140252402534025440255402564025740258402594026040261402624026340264402654026640267402684026940270402714027240273402744027540276402774027840279402804028140282402834028440285402864028740288402894029040291402924029340294402954029640297402984029940300403014030240303403044030540306403074030840309403104031140312403134031440315403164031740318403194032040321403224032340324403254032640327403284032940330403314033240333403344033540336403374033840339403404034140342403434034440345403464034740348403494035040351403524035340354403554035640357403584035940360403614036240363403644036540366403674036840369403704037140372403734037440375403764037740378403794038040381403824038340384403854038640387403884038940390403914039240393403944039540396403974039840399404004040140402404034040440405404064040740408404094041040411404124041340414404154041640417404184041940420404214042240423404244042540426404274042840429404304043140432404334043440435404364043740438404394044040441404424044340444404454044640447404484044940450404514045240453404544045540456404574045840459404604046140462404634046440465404664046740468404694047040471404724047340474404754047640477404784047940480404814048240483404844048540486404874048840489404904049140492404934049440495404964049740498404994050040501405024050340504405054050640507405084050940510405114051240513405144051540516405174051840519405204052140522405234052440525405264052740528405294053040531405324053340534405354053640537405384053940540405414054240543405444054540546405474054840549405504055140552405534055440555405564055740558405594056040561405624056340564405654056640567405684056940570405714057240573405744057540576405774057840579405804058140582405834058440585405864058740588405894059040591405924059340594405954059640597405984059940600406014060240603406044060540606406074060840609406104061140612406134061440615406164061740618406194062040621406224062340624406254062640627406284062940630406314063240633406344063540636406374063840639406404064140642406434064440645406464064740648406494065040651406524065340654406554065640657406584065940660406614066240663406644066540666406674066840669406704067140672406734067440675406764067740678406794068040681406824068340684406854068640687406884068940690406914069240693406944069540696406974069840699407004070140702407034070440705407064070740708407094071040711407124071340714407154071640717407184071940720407214072240723407244072540726407274072840729407304073140732407334073440735407364073740738407394074040741407424074340744407454074640747407484074940750407514075240753407544075540756407574075840759407604076140762407634076440765407664076740768407694077040771407724077340774407754077640777407784077940780407814078240783407844078540786407874078840789407904079140792407934079440795407964079740798407994080040801408024080340804408054080640807408084080940810408114081240813408144081540816408174081840819408204082140822408234082440825408264082740828408294083040831408324083340834408354083640837408384083940840408414084240843408444084540846408474084840849408504085140852408534085440855408564085740858408594086040861408624086340864408654086640867408684086940870408714087240873408744087540876408774087840879408804088140882408834088440885408864088740888408894089040891408924089340894408954089640897408984089940900409014090240903409044090540906409074090840909409104091140912409134091440915409164091740918409194092040921409224092340924409254092640927409284092940930409314093240933409344093540936409374093840939409404094140942409434094440945409464094740948409494095040951409524095340954409554095640957409584095940960409614096240963409644096540966409674096840969409704097140972409734097440975409764097740978409794098040981409824098340984409854098640987409884098940990409914099240993409944099540996409974099840999410004100141002410034100441005410064100741008410094101041011410124101341014410154101641017410184101941020410214102241023410244102541026410274102841029410304103141032410334103441035410364103741038410394104041041410424104341044410454104641047410484104941050410514105241053410544105541056410574105841059410604106141062410634106441065410664106741068410694107041071410724107341074410754107641077410784107941080410814108241083410844108541086410874108841089410904109141092410934109441095410964109741098410994110041101411024110341104411054110641107411084110941110411114111241113411144111541116411174111841119411204112141122411234112441125411264112741128411294113041131411324113341134411354113641137411384113941140411414114241143411444114541146411474114841149411504115141152411534115441155411564115741158411594116041161411624116341164411654116641167411684116941170411714117241173411744117541176411774117841179411804118141182411834118441185411864118741188411894119041191411924119341194411954119641197411984119941200412014120241203412044120541206412074120841209412104121141212412134121441215412164121741218412194122041221412224122341224412254122641227412284122941230412314123241233412344123541236412374123841239412404124141242412434124441245412464124741248412494125041251412524125341254412554125641257412584125941260412614126241263412644126541266412674126841269412704127141272412734127441275412764127741278412794128041281412824128341284412854128641287412884128941290412914129241293412944129541296412974129841299413004130141302413034130441305413064130741308413094131041311413124131341314413154131641317413184131941320413214132241323413244132541326413274132841329413304133141332413334133441335413364133741338413394134041341413424134341344413454134641347413484134941350413514135241353413544135541356413574135841359413604136141362413634136441365413664136741368413694137041371413724137341374413754137641377413784137941380413814138241383413844138541386413874138841389413904139141392413934139441395413964139741398413994140041401414024140341404414054140641407414084140941410414114141241413414144141541416414174141841419414204142141422414234142441425414264142741428414294143041431414324143341434414354143641437414384143941440414414144241443414444144541446414474144841449414504145141452414534145441455414564145741458414594146041461414624146341464414654146641467414684146941470414714147241473414744147541476414774147841479414804148141482414834148441485414864148741488414894149041491414924149341494414954149641497414984149941500415014150241503415044150541506415074150841509415104151141512415134151441515415164151741518415194152041521415224152341524415254152641527415284152941530415314153241533415344153541536415374153841539415404154141542415434154441545415464154741548415494155041551415524155341554415554155641557415584155941560415614156241563415644156541566415674156841569415704157141572415734157441575415764157741578415794158041581415824158341584415854158641587415884158941590415914159241593415944159541596415974159841599416004160141602416034160441605416064160741608416094161041611416124161341614416154161641617416184161941620416214162241623416244162541626416274162841629416304163141632416334163441635416364163741638416394164041641416424164341644416454164641647416484164941650416514165241653416544165541656416574165841659416604166141662416634166441665416664166741668416694167041671416724167341674416754167641677416784167941680416814168241683416844168541686416874168841689416904169141692416934169441695416964169741698416994170041701417024170341704417054170641707417084170941710417114171241713417144171541716417174171841719417204172141722417234172441725417264172741728417294173041731417324173341734417354173641737417384173941740417414174241743417444174541746417474174841749417504175141752417534175441755417564175741758417594176041761417624176341764417654176641767417684176941770417714177241773417744177541776417774177841779417804178141782417834178441785417864178741788417894179041791417924179341794417954179641797417984179941800418014180241803418044180541806418074180841809418104181141812418134181441815418164181741818418194182041821418224182341824418254182641827418284182941830418314183241833418344183541836418374183841839418404184141842418434184441845418464184741848418494185041851418524185341854418554185641857418584185941860418614186241863418644186541866418674186841869418704187141872418734187441875418764187741878418794188041881418824188341884418854188641887418884188941890418914189241893418944189541896418974189841899419004190141902419034190441905419064190741908419094191041911419124191341914419154191641917419184191941920419214192241923419244192541926419274192841929419304193141932419334193441935419364193741938419394194041941419424194341944419454194641947419484194941950419514195241953419544195541956419574195841959419604196141962419634196441965419664196741968419694197041971419724197341974419754197641977419784197941980419814198241983419844198541986419874198841989419904199141992419934199441995419964199741998419994200042001420024200342004420054200642007420084200942010420114201242013420144201542016420174201842019420204202142022420234202442025420264202742028420294203042031420324203342034420354203642037420384203942040420414204242043420444204542046420474204842049420504205142052420534205442055420564205742058420594206042061420624206342064420654206642067420684206942070420714207242073420744207542076420774207842079420804208142082420834208442085420864208742088420894209042091420924209342094420954209642097420984209942100421014210242103421044210542106421074210842109421104211142112421134211442115421164211742118421194212042121421224212342124421254212642127421284212942130421314213242133421344213542136421374213842139421404214142142421434214442145421464214742148421494215042151421524215342154421554215642157421584215942160421614216242163421644216542166421674216842169421704217142172421734217442175421764217742178421794218042181421824218342184421854218642187421884218942190421914219242193421944219542196421974219842199422004220142202422034220442205422064220742208422094221042211422124221342214422154221642217422184221942220422214222242223422244222542226422274222842229422304223142232422334223442235422364223742238422394224042241422424224342244422454224642247422484224942250422514225242253422544225542256422574225842259422604226142262422634226442265422664226742268422694227042271422724227342274422754227642277422784227942280422814228242283422844228542286422874228842289422904229142292422934229442295422964229742298422994230042301423024230342304423054230642307423084230942310423114231242313423144231542316423174231842319423204232142322423234232442325423264232742328423294233042331423324233342334423354233642337423384233942340423414234242343423444234542346423474234842349423504235142352423534235442355423564235742358423594236042361423624236342364423654236642367423684236942370423714237242373423744237542376423774237842379423804238142382423834238442385423864238742388423894239042391423924239342394423954239642397423984239942400424014240242403424044240542406424074240842409424104241142412424134241442415424164241742418424194242042421424224242342424424254242642427424284242942430424314243242433424344243542436424374243842439424404244142442424434244442445424464244742448424494245042451424524245342454424554245642457424584245942460424614246242463424644246542466424674246842469424704247142472424734247442475424764247742478424794248042481424824248342484424854248642487424884248942490424914249242493424944249542496424974249842499425004250142502425034250442505425064250742508425094251042511425124251342514425154251642517425184251942520425214252242523425244252542526425274252842529425304253142532425334253442535425364253742538425394254042541425424254342544425454254642547425484254942550425514255242553425544255542556425574255842559425604256142562425634256442565425664256742568425694257042571425724257342574425754257642577425784257942580425814258242583425844258542586425874258842589425904259142592425934259442595425964259742598425994260042601426024260342604426054260642607426084260942610426114261242613426144261542616426174261842619426204262142622426234262442625426264262742628426294263042631426324263342634426354263642637426384263942640426414264242643426444264542646426474264842649426504265142652426534265442655426564265742658426594266042661426624266342664426654266642667426684266942670426714267242673426744267542676426774267842679426804268142682426834268442685426864268742688426894269042691426924269342694426954269642697426984269942700427014270242703427044270542706427074270842709427104271142712427134271442715427164271742718427194272042721427224272342724427254272642727427284272942730427314273242733427344273542736427374273842739427404274142742427434274442745427464274742748427494275042751427524275342754427554275642757427584275942760427614276242763427644276542766427674276842769427704277142772427734277442775427764277742778427794278042781427824278342784427854278642787427884278942790427914279242793427944279542796427974279842799428004280142802428034280442805428064280742808428094281042811428124281342814428154281642817428184281942820428214282242823428244282542826428274282842829428304283142832428334283442835428364283742838428394284042841428424284342844428454284642847428484284942850428514285242853428544285542856428574285842859428604286142862428634286442865428664286742868428694287042871428724287342874428754287642877428784287942880428814288242883428844288542886428874288842889428904289142892428934289442895428964289742898428994290042901429024290342904429054290642907429084290942910429114291242913429144291542916429174291842919429204292142922429234292442925429264292742928429294293042931429324293342934429354293642937429384293942940429414294242943429444294542946429474294842949429504295142952429534295442955429564295742958429594296042961429624296342964429654296642967429684296942970429714297242973429744297542976429774297842979429804298142982429834298442985429864298742988429894299042991429924299342994429954299642997429984299943000430014300243003430044300543006430074300843009430104301143012430134301443015430164301743018430194302043021430224302343024430254302643027430284302943030430314303243033430344303543036430374303843039430404304143042430434304443045430464304743048430494305043051430524305343054430554305643057430584305943060430614306243063430644306543066430674306843069430704307143072430734307443075430764307743078430794308043081430824308343084430854308643087430884308943090430914309243093430944309543096430974309843099431004310143102431034310443105431064310743108431094311043111431124311343114431154311643117431184311943120431214312243123431244312543126431274312843129431304313143132431334313443135431364313743138431394314043141431424314343144431454314643147431484314943150431514315243153431544315543156431574315843159431604316143162431634316443165431664316743168431694317043171431724317343174431754317643177431784317943180431814318243183431844318543186431874318843189431904319143192431934319443195431964319743198431994320043201432024320343204432054320643207432084320943210432114321243213432144321543216432174321843219432204322143222432234322443225432264322743228432294323043231432324323343234432354323643237432384323943240432414324243243432444324543246432474324843249432504325143252432534325443255432564325743258432594326043261432624326343264432654326643267432684326943270432714327243273432744327543276432774327843279432804328143282432834328443285432864328743288432894329043291432924329343294432954329643297432984329943300433014330243303433044330543306433074330843309433104331143312433134331443315433164331743318433194332043321433224332343324433254332643327433284332943330433314333243333433344333543336433374333843339433404334143342433434334443345433464334743348433494335043351433524335343354433554335643357433584335943360433614336243363433644336543366433674336843369433704337143372433734337443375433764337743378433794338043381433824338343384433854338643387433884338943390433914339243393433944339543396433974339843399434004340143402434034340443405434064340743408434094341043411434124341343414434154341643417434184341943420434214342243423434244342543426434274342843429434304343143432434334343443435434364343743438434394344043441434424344343444434454344643447434484344943450434514345243453434544345543456434574345843459434604346143462434634346443465434664346743468434694347043471434724347343474434754347643477434784347943480434814348243483434844348543486434874348843489434904349143492434934349443495434964349743498434994350043501435024350343504435054350643507435084350943510435114351243513435144351543516435174351843519435204352143522435234352443525435264352743528435294353043531435324353343534435354353643537435384353943540435414354243543435444354543546435474354843549435504355143552435534355443555435564355743558435594356043561435624356343564435654356643567435684356943570435714357243573435744357543576435774357843579435804358143582435834358443585435864358743588435894359043591435924359343594435954359643597435984359943600436014360243603436044360543606436074360843609436104361143612436134361443615436164361743618436194362043621436224362343624436254362643627436284362943630436314363243633436344363543636436374363843639436404364143642436434364443645436464364743648436494365043651436524365343654436554365643657436584365943660436614366243663436644366543666436674366843669436704367143672436734367443675436764367743678436794368043681436824368343684436854368643687436884368943690436914369243693436944369543696436974369843699437004370143702437034370443705437064370743708437094371043711437124371343714437154371643717437184371943720437214372243723437244372543726437274372843729437304373143732437334373443735437364373743738437394374043741437424374343744437454374643747437484374943750437514375243753437544375543756437574375843759437604376143762437634376443765437664376743768437694377043771437724377343774437754377643777437784377943780437814378243783437844378543786437874378843789437904379143792437934379443795437964379743798437994380043801438024380343804438054380643807438084380943810438114381243813438144381543816438174381843819438204382143822438234382443825438264382743828438294383043831438324383343834438354383643837438384383943840438414384243843438444384543846438474384843849438504385143852438534385443855438564385743858438594386043861438624386343864438654386643867438684386943870438714387243873438744387543876438774387843879438804388143882438834388443885438864388743888438894389043891438924389343894438954389643897438984389943900439014390243903439044390543906439074390843909439104391143912439134391443915439164391743918439194392043921439224392343924439254392643927439284392943930439314393243933439344393543936439374393843939439404394143942439434394443945439464394743948439494395043951439524395343954439554395643957439584395943960439614396243963439644396543966439674396843969439704397143972439734397443975439764397743978439794398043981439824398343984439854398643987439884398943990439914399243993439944399543996439974399843999440004400144002440034400444005440064400744008440094401044011440124401344014440154401644017440184401944020440214402244023440244402544026440274402844029440304403144032440334403444035440364403744038440394404044041440424404344044440454404644047440484404944050440514405244053440544405544056440574405844059440604406144062440634406444065440664406744068440694407044071440724407344074440754407644077440784407944080440814408244083440844408544086440874408844089440904409144092440934409444095440964409744098440994410044101441024410344104441054410644107441084410944110441114411244113441144411544116441174411844119441204412144122441234412444125441264412744128441294413044131441324413344134441354413644137441384413944140441414414244143441444414544146441474414844149441504415144152441534415444155441564415744158441594416044161441624416344164441654416644167441684416944170441714417244173441744417544176441774417844179441804418144182441834418444185441864418744188441894419044191441924419344194441954419644197441984419944200442014420244203442044420544206442074420844209442104421144212442134421444215442164421744218442194422044221442224422344224442254422644227442284422944230442314423244233442344423544236442374423844239442404424144242442434424444245442464424744248442494425044251442524425344254442554425644257442584425944260442614426244263442644426544266442674426844269442704427144272442734427444275442764427744278442794428044281442824428344284442854428644287442884428944290442914429244293442944429544296442974429844299443004430144302443034430444305443064430744308443094431044311443124431344314443154431644317443184431944320443214432244323443244432544326443274432844329443304433144332443334433444335443364433744338443394434044341443424434344344443454434644347443484434944350443514435244353443544435544356443574435844359443604436144362443634436444365443664436744368443694437044371443724437344374443754437644377443784437944380443814438244383443844438544386443874438844389443904439144392443934439444395443964439744398443994440044401444024440344404444054440644407444084440944410444114441244413444144441544416444174441844419444204442144422444234442444425444264442744428444294443044431444324443344434444354443644437444384443944440444414444244443444444444544446444474444844449444504445144452444534445444455444564445744458444594446044461444624446344464444654446644467444684446944470444714447244473444744447544476444774447844479444804448144482444834448444485444864448744488444894449044491444924449344494444954449644497444984449944500445014450244503445044450544506445074450844509445104451144512445134451444515445164451744518445194452044521445224452344524445254452644527445284452944530445314453244533445344453544536445374453844539445404454144542445434454444545445464454744548445494455044551445524455344554445554455644557445584455944560445614456244563445644456544566445674456844569445704457144572445734457444575445764457744578445794458044581445824458344584445854458644587445884458944590445914459244593445944459544596445974459844599446004460144602446034460444605446064460744608446094461044611446124461344614446154461644617446184461944620446214462244623446244462544626446274462844629446304463144632446334463444635446364463744638446394464044641446424464344644446454464644647446484464944650446514465244653446544465544656446574465844659446604466144662446634466444665446664466744668446694467044671446724467344674446754467644677446784467944680446814468244683446844468544686446874468844689446904469144692446934469444695446964469744698446994470044701447024470344704447054470644707447084470944710447114471244713447144471544716447174471844719447204472144722447234472444725447264472744728447294473044731447324473344734447354473644737447384473944740447414474244743447444474544746447474474844749447504475144752447534475444755447564475744758447594476044761447624476344764447654476644767447684476944770447714477244773447744477544776447774477844779447804478144782447834478444785447864478744788447894479044791447924479344794447954479644797447984479944800448014480244803448044480544806448074480844809448104481144812448134481444815448164481744818448194482044821448224482344824448254482644827448284482944830448314483244833448344483544836448374483844839448404484144842448434484444845448464484744848448494485044851448524485344854448554485644857448584485944860448614486244863448644486544866448674486844869448704487144872448734487444875448764487744878448794488044881448824488344884448854488644887448884488944890448914489244893448944489544896448974489844899449004490144902449034490444905449064490744908449094491044911449124491344914449154491644917449184491944920449214492244923449244492544926449274492844929449304493144932449334493444935449364493744938449394494044941449424494344944449454494644947449484494944950449514495244953449544495544956449574495844959449604496144962449634496444965449664496744968449694497044971449724497344974449754497644977449784497944980449814498244983449844498544986449874498844989449904499144992449934499444995449964499744998449994500045001450024500345004450054500645007450084500945010450114501245013450144501545016450174501845019450204502145022450234502445025450264502745028450294503045031450324503345034450354503645037450384503945040450414504245043450444504545046450474504845049450504505145052450534505445055450564505745058450594506045061450624506345064450654506645067450684506945070450714507245073450744507545076450774507845079450804508145082450834508445085450864508745088450894509045091450924509345094450954509645097450984509945100451014510245103451044510545106451074510845109451104511145112451134511445115451164511745118451194512045121451224512345124451254512645127451284512945130451314513245133451344513545136451374513845139451404514145142451434514445145451464514745148451494515045151451524515345154451554515645157451584515945160451614516245163451644516545166451674516845169451704517145172451734517445175451764517745178451794518045181451824518345184451854518645187451884518945190451914519245193451944519545196451974519845199452004520145202452034520445205452064520745208452094521045211452124521345214452154521645217452184521945220452214522245223452244522545226452274522845229452304523145232452334523445235452364523745238452394524045241452424524345244452454524645247452484524945250452514525245253452544525545256452574525845259452604526145262452634526445265452664526745268452694527045271452724527345274452754527645277452784527945280452814528245283452844528545286452874528845289452904529145292452934529445295452964529745298452994530045301453024530345304453054530645307453084530945310453114531245313453144531545316453174531845319453204532145322453234532445325453264532745328453294533045331453324533345334453354533645337453384533945340453414534245343453444534545346453474534845349453504535145352453534535445355453564535745358453594536045361453624536345364453654536645367453684536945370453714537245373453744537545376453774537845379453804538145382453834538445385453864538745388453894539045391453924539345394453954539645397453984539945400454014540245403454044540545406454074540845409454104541145412454134541445415454164541745418454194542045421454224542345424454254542645427454284542945430454314543245433454344543545436454374543845439454404544145442454434544445445454464544745448454494545045451454524545345454454554545645457454584545945460454614546245463454644546545466454674546845469454704547145472454734547445475454764547745478454794548045481454824548345484454854548645487454884548945490454914549245493454944549545496454974549845499455004550145502455034550445505455064550745508455094551045511455124551345514455154551645517455184551945520455214552245523455244552545526455274552845529455304553145532455334553445535455364553745538455394554045541455424554345544455454554645547455484554945550455514555245553455544555545556455574555845559455604556145562455634556445565455664556745568455694557045571455724557345574455754557645577455784557945580455814558245583455844558545586455874558845589455904559145592455934559445595455964559745598455994560045601456024560345604456054560645607456084560945610456114561245613456144561545616456174561845619456204562145622456234562445625456264562745628456294563045631456324563345634456354563645637456384563945640456414564245643456444564545646456474564845649456504565145652456534565445655456564565745658456594566045661456624566345664456654566645667456684566945670456714567245673456744567545676456774567845679456804568145682456834568445685456864568745688456894569045691456924569345694456954569645697456984569945700457014570245703457044570545706457074570845709457104571145712457134571445715457164571745718457194572045721457224572345724457254572645727457284572945730457314573245733457344573545736457374573845739457404574145742457434574445745457464574745748457494575045751457524575345754457554575645757457584575945760457614576245763457644576545766457674576845769457704577145772457734577445775457764577745778457794578045781457824578345784457854578645787457884578945790457914579245793457944579545796457974579845799458004580145802458034580445805458064580745808458094581045811458124581345814458154581645817458184581945820458214582245823458244582545826458274582845829458304583145832458334583445835458364583745838458394584045841458424584345844458454584645847458484584945850458514585245853458544585545856458574585845859458604586145862458634586445865458664586745868458694587045871458724587345874458754587645877458784587945880458814588245883458844588545886458874588845889458904589145892458934589445895458964589745898458994590045901459024590345904459054590645907459084590945910459114591245913459144591545916459174591845919459204592145922459234592445925459264592745928459294593045931459324593345934459354593645937459384593945940459414594245943459444594545946459474594845949459504595145952459534595445955459564595745958459594596045961459624596345964459654596645967459684596945970459714597245973459744597545976459774597845979459804598145982459834598445985459864598745988459894599045991459924599345994459954599645997459984599946000460014600246003460044600546006460074600846009460104601146012460134601446015460164601746018460194602046021460224602346024460254602646027460284602946030460314603246033460344603546036460374603846039460404604146042460434604446045460464604746048460494605046051460524605346054460554605646057460584605946060460614606246063460644606546066460674606846069460704607146072460734607446075460764607746078460794608046081460824608346084460854608646087460884608946090460914609246093460944609546096460974609846099461004610146102461034610446105461064610746108461094611046111461124611346114461154611646117461184611946120461214612246123461244612546126461274612846129461304613146132461334613446135461364613746138461394614046141461424614346144461454614646147461484614946150461514615246153461544615546156461574615846159461604616146162461634616446165461664616746168461694617046171461724617346174461754617646177461784617946180461814618246183461844618546186461874618846189461904619146192461934619446195461964619746198461994620046201462024620346204462054620646207462084620946210462114621246213462144621546216462174621846219462204622146222462234622446225462264622746228462294623046231462324623346234462354623646237462384623946240462414624246243462444624546246462474624846249462504625146252462534625446255
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>FHEM Referenz</title>
  5. <link rel="stylesheet" type="text/css" href="../www/pgm2/style.css" />
  6. <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
  7. <meta name="viewport" content="initial-scale=1.0,user-scalable=1">
  8. <link rel="shortcut icon" href="/fhem/icons/favicon.ico"/>
  9. </head>
  10. <body style="word-wrap: break-word;" class="commandref">
  11. <div id="menuScrollArea">
  12. <div id="logo"></div>
  13. <div id="menu">
  14. <h3>fhem.pl Referenz</h3>
  15. <br><br>
  16. <a href="#">Zum Anfang</a>
  17. <br><br>
  18. <a style="display:none" href="#" name="loadAll">Alles laden</a>
  19. <br><br>
  20. <a id="otherLang" style="display:none" href="#" name="otherLang">
  21. <span style="display:none" lang="DE">Deutsche</span>
  22. <span style="display:none" lang="EN">Englische</span>
  23. Doku f&uuml;r <span class="mod"></span> laden
  24. </a>
  25. </div>
  26. </div>
  27. <div id="right">
  28. <h3>Inhalt</h3>
  29. <ul>
  30. <a href="#intro">Einleitung</a><br>
  31. <a href="#command">FHEM Befehls-Typen</a><br>
  32. <a href="#devspec">Ger&auml;te-Spezifikation</a><br>
  33. <a href="#attributes">Attribute</a><br>
  34. <br>
  35. <b>FHEM-Befehle</b>
  36. <ul>
  37. <!-- header:command -->
  38. <a href="#apptime">apptime</a> &nbsp;
  39. <a href="#attr">attr</a> &nbsp;
  40. <a href="#backup">backup</a> &nbsp;
  41. <a href="#cancel">cancel</a> &nbsp;
  42. <a href="#cmdalias">cmdalias</a> &nbsp;
  43. <a href="#configdb">configdb</a> &nbsp;
  44. <a href="#copy">copy</a> &nbsp;
  45. <a href="#count">count</a> &nbsp;
  46. <a href="#createlog">createlog</a> &nbsp;
  47. <a href="#CULflash">CULflash</a> &nbsp;
  48. <a href="#define">define</a> &nbsp;
  49. <a href="#defmod">defmod</a> &nbsp;
  50. <a href="#delete">delete</a> &nbsp;
  51. <a href="#deleteattr">deleteattr</a> &nbsp;
  52. <a href="#deletefile">deletefile</a> &nbsp;
  53. <a href="#deletereading">deletereading</a> &nbsp;
  54. <a href="#displayattr">displayattr</a> &nbsp;
  55. <a href="#fhemdebug">fhemdebug</a> &nbsp;
  56. <a href="#fheminfo">fheminfo</a> &nbsp;
  57. <a href="#get">get</a> &nbsp;
  58. <a href="#help">help</a> &nbsp;
  59. <a href="#HMtemplate">HMtemplate</a> &nbsp;
  60. <a href="#IF">IF</a> &nbsp;
  61. <a href="#include">include</a> &nbsp;
  62. <a href="#inform">inform</a> &nbsp;
  63. <a href="#JsonList">JsonList</a> &nbsp;
  64. <a href="#JsonList2">JsonList2</a> &nbsp;
  65. <a href="#list">list</a> &nbsp;
  66. <a href="#modify">modify</a> &nbsp;
  67. <a href="#MSG">MSG</a> &nbsp;
  68. <a href="#notice">notice</a> &nbsp;
  69. <a href="#quit">quit</a> &nbsp;
  70. <a href="#reload">reload</a> &nbsp;
  71. <a href="#rename">rename</a> &nbsp;
  72. <a href="#rereadcfg">rereadcfg</a> &nbsp;
  73. <a href="#restore">restore</a> &nbsp;
  74. <a href="#save">save</a> &nbsp;
  75. <a href="#set">set</a> &nbsp;
  76. <a href="#setdefaultattr">setdefaultattr</a> &nbsp;
  77. <a href="#setreading">setreading</a> &nbsp;
  78. <a href="#setstate">setstate</a> &nbsp;
  79. <a href="#shutdown">shutdown</a> &nbsp;
  80. <a href="#sleep">sleep</a> &nbsp;
  81. <a href="#template">template</a> &nbsp;
  82. <a href="#trigger">trigger</a> &nbsp;
  83. <a href="#update">update</a> &nbsp;
  84. <a href="#uptime">uptime</a> &nbsp;
  85. <a href="#usb">usb</a> &nbsp;
  86. <a href="#version">version</a> &nbsp;
  87. <a href="#XmlList">XmlList</a> &nbsp;
  88. </ul>
  89. <br>
  90. <b>Ger&auml;temodule</b>
  91. <ul>
  92. <a href="#global">global</a><br>
  93. <!-- header:device -->
  94. <a href="#ABFALL">ABFALL</a> &nbsp;
  95. <a href="#alexa">alexa</a> &nbsp;
  96. <a href="#ALL3076">ALL3076</a> &nbsp;
  97. <a href="#ALL4000T">ALL4000T</a> &nbsp;
  98. <a href="#ALL4027">ALL4027</a> &nbsp;
  99. <a href="#allergy">allergy</a> &nbsp;
  100. <a href="#AMAD">AMAD</a> &nbsp;
  101. <a href="#AMADCommBridge">AMADCommBridge</a> &nbsp;
  102. <a href="#AMADDevice">AMADDevice</a> &nbsp;
  103. <a href="#AptToDate">AptToDate</a> &nbsp;
  104. <a href="#Aqicn">Aqicn</a> &nbsp;
  105. <a href="#ArduCounter">ArduCounter</a> &nbsp;
  106. <a href="#Aurora">Aurora</a> &nbsp;
  107. <a href="#AutoShuttersControl">AutoShuttersControl</a> &nbsp;
  108. <a href="#BDKM">BDKM</a> &nbsp;
  109. <a href="#BOSEST">BOSEST</a> &nbsp;
  110. <a href="#BRAVIA">BRAVIA</a> &nbsp;
  111. <a href="#Broadlink">Broadlink</a> &nbsp;
  112. <a href="#BS">BS</a> &nbsp;
  113. <a href="#Calendar">Calendar</a> &nbsp;
  114. <a href="#CALVIEW">CALVIEW</a> &nbsp;
  115. <a href="#CM11">CM11</a> &nbsp;
  116. <a href="#CO20">CO20</a> &nbsp;
  117. <a href="#ComfoAir">ComfoAir</a> &nbsp;
  118. <a href="#CUL">CUL</a> &nbsp;
  119. <a href="#CUL_EM">CUL_EM</a> &nbsp;
  120. <a href="#CUL_FHTTK">CUL_FHTTK</a> &nbsp;
  121. <a href="#CUL_HM">CUL_HM</a> &nbsp;
  122. <a href="#CUL_HOERMANN">CUL_HOERMANN</a> &nbsp;
  123. <a href="#CUL_IR">CUL_IR</a> &nbsp;
  124. <a href="#CUL_MAX">CUL_MAX</a> &nbsp;
  125. <a href="#CUL_REDIRECT">CUL_REDIRECT</a> &nbsp;
  126. <a href="#CUL_RFR">CUL_RFR</a> &nbsp;
  127. <a href="#CUL_TCM97001">CUL_TCM97001</a> &nbsp;
  128. <a href="#CUL_TX">CUL_TX</a> &nbsp;
  129. <a href="#CUL_WS">CUL_WS</a> &nbsp;
  130. <a href="#dash_dhcp">dash_dhcp</a> &nbsp;
  131. <a href="#DBPlan">DBPlan</a> &nbsp;
  132. <a href="#DFPlayerMini">DFPlayerMini</a> &nbsp;
  133. <a href="#DLNARenderer">DLNARenderer</a> &nbsp;
  134. <a href="#Dooya">Dooya</a> &nbsp;
  135. <a href="#DUOFERN">DUOFERN</a> &nbsp;
  136. <a href="#DUOFERNSTICK">DUOFERNSTICK</a> &nbsp;
  137. <a href="#DWD_OpenData">DWD_OpenData</a> &nbsp;
  138. <a href="#EC3000">EC3000</a> &nbsp;
  139. <a href="#ECMD">ECMD</a> &nbsp;
  140. <a href="#ECMDDevice">ECMDDevice</a> &nbsp;
  141. <a href="#EDIPLUG">EDIPLUG</a> &nbsp;
  142. <a href="#EGPM">EGPM</a> &nbsp;
  143. <a href="#EGPM2LAN">EGPM2LAN</a> &nbsp;
  144. <a href="#EIB">EIB</a> &nbsp;
  145. <a href="#EleroDrive">EleroDrive</a> &nbsp;
  146. <a href="#EleroStick">EleroStick</a> &nbsp;
  147. <a href="#EleroSwitch">EleroSwitch</a> &nbsp;
  148. <a href="#EM">EM</a> &nbsp;
  149. <a href="#EMEM">EMEM</a> &nbsp;
  150. <a href="#EMGZ">EMGZ</a> &nbsp;
  151. <a href="#EMT7110">EMT7110</a> &nbsp;
  152. <a href="#EMWZ">EMWZ</a> &nbsp;
  153. <a href="#ENECSYSGW">ENECSYSGW</a> &nbsp;
  154. <a href="#ENECSYSINV">ENECSYSINV</a> &nbsp;
  155. <a href="#ENIGMA2">ENIGMA2</a> &nbsp;
  156. <a href="#EnOcean">EnOcean</a> &nbsp;
  157. <a href="#EQ3BT">EQ3BT</a> &nbsp;
  158. <a href="#ESA2000">ESA2000</a> &nbsp;
  159. <a href="#ESPEasy">ESPEasy</a> &nbsp;
  160. <a href="#fakeRoku">fakeRoku</a> &nbsp;
  161. <a href="#FBAHA">FBAHA</a> &nbsp;
  162. <a href="#FBAHAHTTP">FBAHAHTTP</a> &nbsp;
  163. <a href="#FBDECT">FBDECT</a> &nbsp;
  164. <a href="#FHT">FHT</a> &nbsp;
  165. <a href="#FHT8V">FHT8V</a> &nbsp;
  166. <a href="#FHZ">FHZ</a> &nbsp;
  167. <a href="#FRAMEBUFFER">FRAMEBUFFER</a> &nbsp;
  168. <a href="#FReplacer">FReplacer</a> &nbsp;
  169. <a href="#FRITZBOX">FRITZBOX</a> &nbsp;
  170. <a href="#FRM">FRM</a> &nbsp;
  171. <a href="#FRM_AD">FRM_AD</a> &nbsp;
  172. <a href="#FRM_I2C">FRM_I2C</a> &nbsp;
  173. <a href="#FRM_IN">FRM_IN</a> &nbsp;
  174. <a href="#FRM_LCD">FRM_LCD</a> &nbsp;
  175. <a href="#FRM_OUT">FRM_OUT</a> &nbsp;
  176. <a href="#FRM_PWM">FRM_PWM</a> &nbsp;
  177. <a href="#FRM_RGB">FRM_RGB</a> &nbsp;
  178. <a href="#FRM_ROTENC">FRM_ROTENC</a> &nbsp;
  179. <a href="#FRM_SERVO">FRM_SERVO</a> &nbsp;
  180. <a href="#FRM_STEPPER">FRM_STEPPER</a> &nbsp;
  181. <a href="#FS20">FS20</a> &nbsp;
  182. <a href="#FTUISRV">FTUISRV</a> &nbsp;
  183. <a href="#FULLY">FULLY</a> &nbsp;
  184. <a href="#GAEBUS">GAEBUS</a> &nbsp;
  185. <a href="#GardenaSmartBridge">GardenaSmartBridge</a> &nbsp;
  186. <a href="#GardenaSmartDevice">GardenaSmartDevice</a> &nbsp;
  187. <a href="#GHoma">GHoma</a> &nbsp;
  188. <a href="#GOOGLECAST">GOOGLECAST</a> &nbsp;
  189. <a href="#harmony">harmony</a> &nbsp;
  190. <a href="#HEATRONIC">HEATRONIC</a> &nbsp;
  191. <a href="#HEOSGroup">HEOSGroup</a> &nbsp;
  192. <a href="#HEOSMaster">HEOSMaster</a> &nbsp;
  193. <a href="#HEOSPlayer">HEOSPlayer</a> &nbsp;
  194. <a href="#Hideki">Hideki</a> &nbsp;
  195. <a href="#HMCCU">HMCCU</a> &nbsp;
  196. <a href="#HMCCUCHN">HMCCUCHN</a> &nbsp;
  197. <a href="#HMCCUDEV">HMCCUDEV</a> &nbsp;
  198. <a href="#HMCCURPC">HMCCURPC</a> &nbsp;
  199. <a href="#HMCCURPCPROC">HMCCURPCPROC</a> &nbsp;
  200. <a href="#HMLAN">HMLAN</a> &nbsp;
  201. <a href="#HMS">HMS</a> &nbsp;
  202. <a href="#HMUARTLGW">HMUARTLGW</a> &nbsp;
  203. <a href="#holiday">holiday</a> &nbsp;
  204. <a href="#HOMBOT">HOMBOT</a> &nbsp;
  205. <a href="#HP1000">HP1000</a> &nbsp;
  206. <a href="#HProtocolGateway">HProtocolGateway</a> &nbsp;
  207. <a href="#HProtocolTank">HProtocolTank</a> &nbsp;
  208. <a href="#HTTPMOD">HTTPMOD</a> &nbsp;
  209. <a href="#HTTPSRV">HTTPSRV</a> &nbsp;
  210. <a href="#HUEBridge">HUEBridge</a> &nbsp;
  211. <a href="#HUEDevice">HUEDevice</a> &nbsp;
  212. <a href="#HusqvarnaAutomower">HusqvarnaAutomower</a> &nbsp;
  213. <a href="#HXB">HXB</a> &nbsp;
  214. <a href="#HXBDevice">HXBDevice</a> &nbsp;
  215. <a href="#Hyperion">Hyperion</a> &nbsp;
  216. <a href="#I2C_BH1750">I2C_BH1750</a> &nbsp;
  217. <a href="#I2C_BME280">I2C_BME280</a> &nbsp;
  218. <a href="#I2C_BMP180">I2C_BMP180</a> &nbsp;
  219. <a href="#I2C_DS1307">I2C_DS1307</a> &nbsp;
  220. <a href="#I2C_EEPROM">I2C_EEPROM</a> &nbsp;
  221. <a href="#I2C_EMC1001">I2C_EMC1001</a> &nbsp;
  222. <a href="#I2C_HDC1008">I2C_HDC1008</a> &nbsp;
  223. <a href="#I2C_K30">I2C_K30</a> &nbsp;
  224. <a href="#I2C_LCD">I2C_LCD</a> &nbsp;
  225. <a href="#I2C_LM75A">I2C_LM75A</a> &nbsp;
  226. <a href="#I2C_MCP23008">I2C_MCP23008</a> &nbsp;
  227. <a href="#I2C_MCP23017">I2C_MCP23017</a> &nbsp;
  228. <a href="#I2C_MCP342x">I2C_MCP342x</a> &nbsp;
  229. <a href="#I2C_MMA845X">I2C_MMA845X</a> &nbsp;
  230. <a href="#I2C_PCA9532">I2C_PCA9532</a> &nbsp;
  231. <a href="#I2C_PCA9685">I2C_PCA9685</a> &nbsp;
  232. <a href="#I2C_PCF8574">I2C_PCF8574</a> &nbsp;
  233. <a href="#I2C_SHT21">I2C_SHT21</a> &nbsp;
  234. <a href="#I2C_SHT3x">I2C_SHT3x</a> &nbsp;
  235. <a href="#I2C_TSL2561">I2C_TSL2561</a> &nbsp;
  236. <a href="#Iluminize">Iluminize</a> &nbsp;
  237. <a href="#IOhomecontrol">IOhomecontrol</a> &nbsp;
  238. <a href="#IOhomecontrolDevice">IOhomecontrolDevice</a> &nbsp;
  239. <a href="#IPCAM">IPCAM</a> &nbsp;
  240. <a href="#IPWE">IPWE</a> &nbsp;
  241. <a href="#IT">IT</a> &nbsp;
  242. <a href="#Itach_IR">Itach_IR</a> &nbsp;
  243. <a href="#Itach_IRDevice">Itach_IRDevice</a> &nbsp;
  244. <a href="#Itach_Relay">Itach_Relay</a> &nbsp;
  245. <a href="#Jabber">Jabber</a> &nbsp;
  246. <a href="#JawboneUp">JawboneUp</a> &nbsp;
  247. <a href="#JeeLink">JeeLink</a> &nbsp;
  248. <a href="#JSONMETER">JSONMETER</a> &nbsp;
  249. <a href="#KeyValueProtocol">KeyValueProtocol</a> &nbsp;
  250. <a href="#km200">km200</a> &nbsp;
  251. <a href="#KM273">KM273</a> &nbsp;
  252. <a href="#KNX">KNX</a> &nbsp;
  253. <a href="#KODI">KODI</a> &nbsp;
  254. <a href="#KOPP_FC">KOPP_FC</a> &nbsp;
  255. <a href="#KOSTALPIKO">KOSTALPIKO</a> &nbsp;
  256. <a href="#KS300">KS300</a> &nbsp;
  257. <a href="#LaCrosse">LaCrosse</a> &nbsp;
  258. <a href="#LaCrosseGateway">LaCrosseGateway</a> &nbsp;
  259. <a href="#Level">Level</a> &nbsp;
  260. <a href="#LGTV">LGTV</a> &nbsp;
  261. <a href="#LGTV_IP12">LGTV_IP12</a> &nbsp;
  262. <a href="#LGTV_WebOS">LGTV_WebOS</a> &nbsp;
  263. <a href="#LIGHTIFY">LIGHTIFY</a> &nbsp;
  264. <a href="#LINDY_HDMI_SWITCH">LINDY_HDMI_SWITCH</a> &nbsp;
  265. <a href="#LIRC">LIRC</a> &nbsp;
  266. <a href="#livetracking">livetracking</a> &nbsp;
  267. <a href="#LuftdatenInfo">LuftdatenInfo</a> &nbsp;
  268. <a href="#LUXTRONIK2">LUXTRONIK2</a> &nbsp;
  269. <a href="#M232">M232</a> &nbsp;
  270. <a href="#M232Counter">M232Counter</a> &nbsp;
  271. <a href="#M232Voltage">M232Voltage</a> &nbsp;
  272. <a href="#mailcheck">mailcheck</a> &nbsp;
  273. <a href="#MAX">MAX</a> &nbsp;
  274. <a href="#MAXLAN">MAXLAN</a> &nbsp;
  275. <a href="#MEDIAPORTAL">MEDIAPORTAL</a> &nbsp;
  276. <a href="#MilightBridge">MilightBridge</a> &nbsp;
  277. <a href="#MilightDevice">MilightDevice</a> &nbsp;
  278. <a href="#MOBILEALERTS">MOBILEALERTS</a> &nbsp;
  279. <a href="#MOBILEALERTSGW">MOBILEALERTSGW</a> &nbsp;
  280. <a href="#Modbus">Modbus</a> &nbsp;
  281. <a href="#ModbusAttr">ModbusAttr</a> &nbsp;
  282. <a href="#ModbusSET">ModbusSET</a> &nbsp;
  283. <a href="#ModbusTrovis5576">ModbusTrovis5576</a> &nbsp;
  284. <a href="#MPD">MPD</a> &nbsp;
  285. <a href="#MQTT">MQTT</a> &nbsp;
  286. <a href="#MQTT2_DEVICE">MQTT2_DEVICE</a> &nbsp;
  287. <a href="#MQTT_BRIDGE">MQTT_BRIDGE</a> &nbsp;
  288. <a href="#MQTT_DEVICE">MQTT_DEVICE</a> &nbsp;
  289. <a href="#MQTT_GENERIC_BRIDGE">MQTT_GENERIC_BRIDGE</a> &nbsp;
  290. <a href="#MSGFile">MSGFile</a> &nbsp;
  291. <a href="#MSGMail">MSGMail</a> &nbsp;
  292. <a href="#MYSENSORS">MYSENSORS</a> &nbsp;
  293. <a href="#MYSENSORS_DEVICE">MYSENSORS_DEVICE</a> &nbsp;
  294. <a href="#N4HBUS">N4HBUS</a> &nbsp;
  295. <a href="#N4HMODULE">N4HMODULE</a> &nbsp;
  296. <a href="#Nello">Nello</a> &nbsp;
  297. <a href="#netatmo">netatmo</a> &nbsp;
  298. <a href="#NetIO230B">NetIO230B</a> &nbsp;
  299. <a href="#Netzer">Netzer</a> &nbsp;
  300. <a href="#NetzerI2C">NetzerI2C</a> &nbsp;
  301. <a href="#Neuron">Neuron</a> &nbsp;
  302. <a href="#NeuronPin">NeuronPin</a> &nbsp;
  303. <a href="#NEUTRINO">NEUTRINO</a> &nbsp;
  304. <a href="#Nextion">Nextion</a> &nbsp;
  305. <a href="#Nmap">Nmap</a> &nbsp;
  306. <a href="#NotifyAndroidTV">NotifyAndroidTV</a> &nbsp;
  307. <a href="#NUKIBridge">NUKIBridge</a> &nbsp;
  308. <a href="#NUKIDevice">NUKIDevice</a> &nbsp;
  309. <a href="#NUT">NUT</a> &nbsp;
  310. <a href="#OBIS">OBIS</a> &nbsp;
  311. <a href="#ONKYO_AVR">ONKYO_AVR</a> &nbsp;
  312. <a href="#ONKYO_AVR_ZONE">ONKYO_AVR_ZONE</a> &nbsp;
  313. <a href="#OPENWEATHER">OPENWEATHER</a> &nbsp;
  314. <a href="#OREGON">OREGON</a> &nbsp;
  315. <a href="#OWAD">OWAD</a> &nbsp;
  316. <a href="#OWCOUNT">OWCOUNT</a> &nbsp;
  317. <a href="#OWDevice">OWDevice</a> &nbsp;
  318. <a href="#OWFS">OWFS</a> &nbsp;
  319. <a href="#OWID">OWID</a> &nbsp;
  320. <a href="#OWLCD">OWLCD</a> &nbsp;
  321. <a href="#OWMULTI">OWMULTI</a> &nbsp;
  322. <a href="#OWServer">OWServer</a> &nbsp;
  323. <a href="#OWSWITCH">OWSWITCH</a> &nbsp;
  324. <a href="#OWTEMP">OWTEMP</a> &nbsp;
  325. <a href="#OWTHERM">OWTHERM</a> &nbsp;
  326. <a href="#OWVAR">OWVAR</a> &nbsp;
  327. <a href="#OWX">OWX</a> &nbsp;
  328. <a href="#OWX_ASYNC">OWX_ASYNC</a> &nbsp;
  329. <a href="#OWX_CCC">OWX_CCC</a> &nbsp;
  330. <a href="#OWX_FRM">OWX_FRM</a> &nbsp;
  331. <a href="#OWX_SER">OWX_SER</a> &nbsp;
  332. <a href="#OWX_TCP">OWX_TCP</a> &nbsp;
  333. <a href="#panStamp">panStamp</a> &nbsp;
  334. <a href="#PCA301">PCA301</a> &nbsp;
  335. <a href="#PHC">PHC</a> &nbsp;
  336. <a href="#PHILIPS_AUDIO">PHILIPS_AUDIO</a> &nbsp;
  337. <a href="#PHTV">PHTV</a> &nbsp;
  338. <a href="#PID20">PID20</a> &nbsp;
  339. <a href="#PIFACE">PIFACE</a> &nbsp;
  340. <a href="#pilight">pilight</a> &nbsp;
  341. <a href="#pilight_contact">pilight_contact</a> &nbsp;
  342. <a href="#pilight_ctrl">pilight_ctrl</a> &nbsp;
  343. <a href="#pilight_dimmer">pilight_dimmer</a> &nbsp;
  344. <a href="#pilight_raw">pilight_raw</a> &nbsp;
  345. <a href="#pilight_smoke">pilight_smoke</a> &nbsp;
  346. <a href="#pilight_switch">pilight_switch</a> &nbsp;
  347. <a href="#pilight_temp">pilight_temp</a> &nbsp;
  348. <a href="#ping">ping</a> &nbsp;
  349. <a href="#PIONEERAVR">PIONEERAVR</a> &nbsp;
  350. <a href="#PIONEERAVRZONE">PIONEERAVRZONE</a> &nbsp;
  351. <a href="#PiXtendV2">PiXtendV2</a> &nbsp;
  352. <a href="#PLAYBULB">PLAYBULB</a> &nbsp;
  353. <a href="#plex">plex</a> &nbsp;
  354. <a href="#Plugwise">Plugwise</a> &nbsp;
  355. <a href="#POKEYS">POKEYS</a> &nbsp;
  356. <a href="#PrecipitationSensor">PrecipitationSensor</a> &nbsp;
  357. <a href="#PROPLANTA">PROPLANTA</a> &nbsp;
  358. <a href="#Pushalot">Pushalot</a> &nbsp;
  359. <a href="#Pushbullet">Pushbullet</a> &nbsp;
  360. <a href="#PushNotifier">PushNotifier</a> &nbsp;
  361. <a href="#Pushover">Pushover</a> &nbsp;
  362. <a href="#Pushsafer">Pushsafer</a> &nbsp;
  363. <a href="#PW_Circle">PW_Circle</a> &nbsp;
  364. <a href="#PW_Scan">PW_Scan</a> &nbsp;
  365. <a href="#PW_Sense">PW_Sense</a> &nbsp;
  366. <a href="#PW_Switch">PW_Switch</a> &nbsp;
  367. <a href="#PWM">PWM</a> &nbsp;
  368. <a href="#PWMR">PWMR</a> &nbsp;
  369. <a href="#QRCode">QRCode</a> &nbsp;
  370. <a href="#Revolt">Revolt</a> &nbsp;
  371. <a href="#RFXCOM">RFXCOM</a> &nbsp;
  372. <a href="#RFXMETER">RFXMETER</a> &nbsp;
  373. <a href="#RFXX10REC">RFXX10REC</a> &nbsp;
  374. <a href="#Robonect">Robonect</a> &nbsp;
  375. <a href="#RPI_GPIO">RPI_GPIO</a> &nbsp;
  376. <a href="#RPII2C">RPII2C</a> &nbsp;
  377. <a href="#rssFeed">rssFeed</a> &nbsp;
  378. <a href="#S7">S7</a> &nbsp;
  379. <a href="#S7_ARead">S7_ARead</a> &nbsp;
  380. <a href="#S7_AWrite">S7_AWrite</a> &nbsp;
  381. <a href="#S7_Client">S7_Client</a> &nbsp;
  382. <a href="#S7_DRead">S7_DRead</a> &nbsp;
  383. <a href="#S7_DWrite">S7_DWrite</a> &nbsp;
  384. <a href="#S7_S5Client">S7_S5Client</a> &nbsp;
  385. <a href="#S7_S7Client">S7_S7Client</a> &nbsp;
  386. <a href="#SCIVT">SCIVT</a> &nbsp;
  387. <a href="#SD_RSL">SD_RSL</a> &nbsp;
  388. <a href="#SD_WS">SD_WS</a> &nbsp;
  389. <a href="#SD_WS07">SD_WS07</a> &nbsp;
  390. <a href="#SD_WS09">SD_WS09</a> &nbsp;
  391. <a href="#SD_WS_Maverick">SD_WS_Maverick</a> &nbsp;
  392. <a href="#SHC">SHC</a> &nbsp;
  393. <a href="#SHCdev">SHCdev</a> &nbsp;
  394. <a href="#Shelly">Shelly</a> &nbsp;
  395. <a href="#SIGNALduino">SIGNALduino</a> &nbsp;
  396. <a href="#SIGNALduino_un">SIGNALduino_un</a> &nbsp;
  397. <a href="#siri">siri</a> &nbsp;
  398. <a href="#Siro">Siro</a> &nbsp;
  399. <a href="#SIS_PMS">SIS_PMS</a> &nbsp;
  400. <a href="#SISPM">SISPM</a> &nbsp;
  401. <a href="#SMAEM">SMAEM</a> &nbsp;
  402. <a href="#SMAInverter">SMAInverter</a> &nbsp;
  403. <a href="#SmarterCoffee">SmarterCoffee</a> &nbsp;
  404. <a href="#SmartMeterP1">SmartMeterP1</a> &nbsp;
  405. <a href="#SMARTMON">SMARTMON</a> &nbsp;
  406. <a href="#SmartPi">SmartPi</a> &nbsp;
  407. <a href="#SMASTP">SMASTP</a> &nbsp;
  408. <a href="#SML">SML</a> &nbsp;
  409. <a href="#Snapcast">Snapcast</a> &nbsp;
  410. <a href="#SOMFY">SOMFY</a> &nbsp;
  411. <a href="#SONOS">SONOS</a> &nbsp;
  412. <a href="#SONOSPLAYER">SONOSPLAYER</a> &nbsp;
  413. <a href="#speedtest">speedtest</a> &nbsp;
  414. <a href="#Spotify">Spotify</a> &nbsp;
  415. <a href="#SSCam">SSCam</a> &nbsp;
  416. <a href="#SSCamSTRM">SSCamSTRM</a> &nbsp;
  417. <a href="#STACKABLE">STACKABLE</a> &nbsp;
  418. <a href="#STACKABLE_CC">STACKABLE_CC</a> &nbsp;
  419. <a href="#STOCKQUOTES">STOCKQUOTES</a> &nbsp;
  420. <a href="#STV">STV</a> &nbsp;
  421. <a href="#SWAP">SWAP</a> &nbsp;
  422. <a href="#SWAP_0000002200000003">SWAP_0000002200000003</a> &nbsp;
  423. <a href="#SWAP_0000002200000008">SWAP_0000002200000008</a> &nbsp;
  424. <a href="#SYSMON">SYSMON</a> &nbsp;
  425. <a href="#SYSSTAT">SYSSTAT</a> &nbsp;
  426. <a href="#systemd_watchdog">systemd_watchdog</a> &nbsp;
  427. <a href="#TA_CMI_JSON">TA_CMI_JSON</a> &nbsp;
  428. <a href="#tahoma">tahoma</a> &nbsp;
  429. <a href="#TBot_List">TBot_List</a> &nbsp;
  430. <a href="#TCM">TCM</a> &nbsp;
  431. <a href="#TechemHKV">TechemHKV</a> &nbsp;
  432. <a href="#TechemWZ">TechemWZ</a> &nbsp;
  433. <a href="#TEK603">TEK603</a> &nbsp;
  434. <a href="#TelegramBot">TelegramBot</a> &nbsp;
  435. <a href="#TellStick">TellStick</a> &nbsp;
  436. <a href="#TeslaPowerwall2AC">TeslaPowerwall2AC</a> &nbsp;
  437. <a href="#THINKINGCLEANER">THINKINGCLEANER</a> &nbsp;
  438. <a href="#THZ">THZ</a> &nbsp;
  439. <a href="#TPLinkHS110">TPLinkHS110</a> &nbsp;
  440. <a href="#TradfriDevice">TradfriDevice</a> &nbsp;
  441. <a href="#TradfriGateway">TradfriGateway</a> &nbsp;
  442. <a href="#TradfriGroup">TradfriGroup</a> &nbsp;
  443. <a href="#TRAFFIC">TRAFFIC</a> &nbsp;
  444. <a href="#TRX">TRX</a> &nbsp;
  445. <a href="#TRX_ELSE">TRX_ELSE</a> &nbsp;
  446. <a href="#TRX_LIGHT">TRX_LIGHT</a> &nbsp;
  447. <a href="#TRX_SECURITY">TRX_SECURITY</a> &nbsp;
  448. <a href="#TRX_WEATHER">TRX_WEATHER</a> &nbsp;
  449. <a href="#TUL">TUL</a> &nbsp;
  450. <a href="#UbiquitiMP">UbiquitiMP</a> &nbsp;
  451. <a href="#UbiquitiOut">UbiquitiOut</a> &nbsp;
  452. <a href="#Unifi">Unifi</a> &nbsp;
  453. <a href="#UnifiSwitch">UnifiSwitch</a> &nbsp;
  454. <a href="#UnifiVideo">UnifiVideo</a> &nbsp;
  455. <a href="#UNIRoll">UNIRoll</a> &nbsp;
  456. <a href="#UpsPico">UpsPico</a> &nbsp;
  457. <a href="#USBWX">USBWX</a> &nbsp;
  458. <a href="#USF1000">USF1000</a> &nbsp;
  459. <a href="#UWZ">UWZ</a> &nbsp;
  460. <a href="#Vallox">Vallox</a> &nbsp;
  461. <a href="#VantagePro2">VantagePro2</a> &nbsp;
  462. <a href="#VBUSDEV">VBUSDEV</a> &nbsp;
  463. <a href="#VBUSIF">VBUSIF</a> &nbsp;
  464. <a href="#VCONTROL">VCONTROL</a> &nbsp;
  465. <a href="#Verkehrsinfo">Verkehrsinfo</a> &nbsp;
  466. <a href="#VIERA">VIERA</a> &nbsp;
  467. <a href="#VolumeLink">VolumeLink</a> &nbsp;
  468. <a href="#Weather">Weather</a> &nbsp;
  469. <a href="#WEBCOUNT">WEBCOUNT</a> &nbsp;
  470. <a href="#WEBIO">WEBIO</a> &nbsp;
  471. <a href="#WEBIO_12DIGITAL">WEBIO_12DIGITAL</a> &nbsp;
  472. <a href="#WifiLight">WifiLight</a> &nbsp;
  473. <a href="#WINCONNECT">WINCONNECT</a> &nbsp;
  474. <a href="#withings">withings</a> &nbsp;
  475. <a href="#WMBUS">WMBUS</a> &nbsp;
  476. <a href="#WS2000">WS2000</a> &nbsp;
  477. <a href="#WS300">WS300</a> &nbsp;
  478. <a href="#WS3600">WS3600</a> &nbsp;
  479. <a href="#Wunderground">Wunderground</a> &nbsp;
  480. <a href="#WWO">WWO</a> &nbsp;
  481. <a href="#X10">X10</a> &nbsp;
  482. <a href="#XBMC">XBMC</a> &nbsp;
  483. <a href="#XiaomiBTLESens">XiaomiBTLESens</a> &nbsp;
  484. <a href="#XiaomiDevice">XiaomiDevice</a> &nbsp;
  485. <a href="#XiaomiFlowerSens">XiaomiFlowerSens</a> &nbsp;
  486. <a href="#xs1Bridge">xs1Bridge</a> &nbsp;
  487. <a href="#xs1Dev">xs1Dev</a> &nbsp;
  488. <a href="#xxLG7000">xxLG7000</a> &nbsp;
  489. <a href="#YAMAHA_AVR">YAMAHA_AVR</a> &nbsp;
  490. <a href="#YAMAHA_BD">YAMAHA_BD</a> &nbsp;
  491. <a href="#YAMAHA_NP">YAMAHA_NP</a> &nbsp;
  492. <a href="#yowsup">yowsup</a> &nbsp;
  493. <a href="#ZM_Monitor">ZM_Monitor</a> &nbsp;
  494. <a href="#ZoneMinder">ZoneMinder</a> &nbsp;
  495. <a href="#ZWave">ZWave</a> &nbsp;
  496. <a href="#ZWCUL">ZWCUL</a> &nbsp;
  497. <a href="#ZWDongle">ZWDongle</a> &nbsp;
  498. </ul>
  499. <br>
  500. <b>Hilfs (Erweiterungs-) Module</b>
  501. <ul>
  502. <!-- header:helper -->
  503. <a href="#Alarm">Alarm</a> &nbsp;
  504. <a href="#alarmclock">alarmclock</a> &nbsp;
  505. <a href="#allowed">allowed</a> &nbsp;
  506. <a href="#archetype">archetype</a> &nbsp;
  507. <a href="#Astro">Astro</a> &nbsp;
  508. <a href="#at">at</a> &nbsp;
  509. <a href="#autocreate">autocreate</a> &nbsp;
  510. <a href="#average">average</a> &nbsp;
  511. <a href="#Babble">Babble</a> &nbsp;
  512. <a href="#cloneDummy">cloneDummy</a> &nbsp;
  513. <a href="#configDB">configDB</a> &nbsp;
  514. <a href="#CustomReadings">CustomReadings</a> &nbsp;
  515. <a href="#Dashboard">Dashboard</a> &nbsp;
  516. <a href="#DbLog">DbLog</a> &nbsp;
  517. <a href="#DbRep">DbRep</a> &nbsp;
  518. <a href="#dewpoint">dewpoint</a> &nbsp;
  519. <a href="#DOIF">DOIF</a> &nbsp;
  520. <a href="#DOIFtools">DOIFtools</a> &nbsp;
  521. <a href="#dummy">dummy</a> &nbsp;
  522. <a href="#ElectricityCalculator">ElectricityCalculator</a> &nbsp;
  523. <a href="#eventTypes">eventTypes</a> &nbsp;
  524. <a href="#expandJSON">expandJSON</a> &nbsp;
  525. <a href="#FB_CALLLIST">FB_CALLLIST</a> &nbsp;
  526. <a href="#FB_CALLMONITOR">FB_CALLMONITOR</a> &nbsp;
  527. <a href="#feels_like">feels_like</a> &nbsp;
  528. <a href="#FHEM2FHEM">FHEM2FHEM</a> &nbsp;
  529. <a href="#FHEMWEB">FHEMWEB</a> &nbsp;
  530. <a href="#FileLog">FileLog</a> &nbsp;
  531. <a href="#FLOORPLAN">FLOORPLAN</a> &nbsp;
  532. <a href="#freezemon">freezemon</a> &nbsp;
  533. <a href="#GasCalculator">GasCalculator</a> &nbsp;
  534. <a href="#GEOFANCY">GEOFANCY</a> &nbsp;
  535. <a href="#GoogleAuth">GoogleAuth</a> &nbsp;
  536. <a href="#GUEST">GUEST</a> &nbsp;
  537. <a href="#HCS">HCS</a> &nbsp;
  538. <a href="#Heating_Control">Heating_Control</a> &nbsp;
  539. <a href="#HMinfo">HMinfo</a> &nbsp;
  540. <a href="#HOMEMODE">HOMEMODE</a> &nbsp;
  541. <a href="#HourCounter">HourCounter</a> &nbsp;
  542. <a href="#InfoPanel">InfoPanel</a> &nbsp;
  543. <a href="#KM271">KM271</a> &nbsp;
  544. <a href="#LightScene">LightScene</a> &nbsp;
  545. <a href="#Log2Syslog">Log2Syslog</a> &nbsp;
  546. <a href="#logProxy">logProxy</a> &nbsp;
  547. <a href="#MaxScanner">MaxScanner</a> &nbsp;
  548. <a href="#MediaList">MediaList</a> &nbsp;
  549. <a href="#monitoring">monitoring</a> &nbsp;
  550. <a href="#MQTT2_CLIENT">MQTT2_CLIENT</a> &nbsp;
  551. <a href="#MQTT2_SERVER">MQTT2_SERVER</a> &nbsp;
  552. <a href="#msgConfig">msgConfig</a> &nbsp;
  553. <a href="#msgDialog">msgDialog</a> &nbsp;
  554. <a href="#MSwitch">MSwitch</a> &nbsp;
  555. <a href="#notify">notify</a> &nbsp;
  556. <a href="#PachLog">PachLog</a> &nbsp;
  557. <a href="#PostMe">PostMe</a> &nbsp;
  558. <a href="#powerMap">powerMap</a> &nbsp;
  559. <a href="#PRESENCE">PRESENCE</a> &nbsp;
  560. <a href="#rain">rain</a> &nbsp;
  561. <a href="#RandomTimer">RandomTimer</a> &nbsp;
  562. <a href="#readingsChange">readingsChange</a> &nbsp;
  563. <a href="#readingsGroup">readingsGroup</a> &nbsp;
  564. <a href="#readingsHistory">readingsHistory</a> &nbsp;
  565. <a href="#readingsProxy">readingsProxy</a> &nbsp;
  566. <a href="#remotecontrol">remotecontrol</a> &nbsp;
  567. <a href="#RESIDENTS">RESIDENTS</a> &nbsp;
  568. <a href="#RFHEM">RFHEM</a> &nbsp;
  569. <a href="#ROOMMATE">ROOMMATE</a> &nbsp;
  570. <a href="#RSS">RSS</a> &nbsp;
  571. <a href="#sequence">sequence</a> &nbsp;
  572. <a href="#SingleFileLog">SingleFileLog</a> &nbsp;
  573. <a href="#SIP">SIP</a> &nbsp;
  574. <a href="#statistics">statistics</a> &nbsp;
  575. <a href="#structure">structure</a> &nbsp;
  576. <a href="#SUNRISE_EL">SUNRISE_EL</a> &nbsp;
  577. <a href="#SVG">SVG</a> &nbsp;
  578. <a href="#Talk2Fhem">Talk2Fhem</a> &nbsp;
  579. <a href="#telnet">telnet</a> &nbsp;
  580. <a href="#Text2Speech">Text2Speech</a> &nbsp;
  581. <a href="#THRESHOLD">THRESHOLD</a> &nbsp;
  582. <a href="#TrashCal">TrashCal</a> &nbsp;
  583. <a href="#Twilight">Twilight</a> &nbsp;
  584. <a href="#Utils">Utils</a> &nbsp;
  585. <a href="#watchdog">watchdog</a> &nbsp;
  586. <a href="#WaterCalculator">WaterCalculator</a> &nbsp;
  587. <a href="#weblink">weblink</a> &nbsp;
  588. <a href="#WeekdayTimer">WeekdayTimer</a> &nbsp;
  589. <a href="#weekprofile">weekprofile</a> &nbsp;
  590. <a href="#WOL">WOL</a> &nbsp;
  591. <a href="#WUup">WUup</a> &nbsp;
  592. <a href="#YAAHM">YAAHM</a> &nbsp;
  593. </ul>
  594. <br>
  595. <a href="#perl">PERL Besonderheiten</a><br>
  596. <a href="#gnuplot-syntax">gnuplot file Syntax</a><br>
  597. </ul>
  598. <a name="intro"></a>
  599. <h3>Einleitung</h3>
  600. <div class='langLinks'>[<a href='commandref.html#intro'>EN</a> DE]</div>
  601. <ul>
  602. <p>FHEM wird haupts&auml;chlich zur Heimautomatisierung benutzt,
  603. ist aber ebenso f&uuml;r andere Aufgaben einsetzbar wo Benachrichtigungen,
  604. Zeitschaltungen und Datensammlungen eine wichtige Rolle spielen.</p>
  605. <p>FHEM unterst&uuml;tzt verschiedene Hardwareger&auml;te die eine
  606. Verbindung mittels unterschiedlicher Protokolle (z.B. FHZ1000 mit Interfaces vom
  607. Typ FS20 und HMS, CM11 um mit X10 zu arbeiten) sowie logischer Ger&auml;te wie FS20
  608. oder FHT die einen Nachrichtenaustausch mit verschiedensten Ger&auml;ten die diese
  609. Protokolle verwenden erm&ouml;glichen.</p>
  610. <p>
  611. FHEM ist modular. Abh&auml;ngig von den unterschiedlichen Ger&auml;ten werden in den
  612. Modulen verschiedene Funktionen (z.B. define, get, set) realisiert. FHEM enth&auml;lt
  613. weitere Funktionen wie Trigger (<a href="#notify">notify</a>),
  614. Zeitabh&auml;ngige Funktionen (<a href="#at">at</a>)
  615. die die Funktionalit&auml;t erweitern.</p>
  616. <p>
  617. FHEM wird entweder &uuml;ber einfache ASCII-Kommandozeilen gesteuert die in Dateien
  618. wie z.B. der Konfigurationsdatei fhem.cfg gespeichert sind oder &uuml;ber eine TCP/IP
  619. Verbindung, entweder direkt in einer "telnet"-Sitzung, oder per fhem.pl im
  620. Client-Modus oder &uuml;ber eines der Webfrontends.<br> &nbsp;</p>
  621. <p class="MsoNormal">Wenn Sie den FHEM-Server starten, m&uuml;ssen Sie eine
  622. Konfigurationsdatei ausw&auml;hlen:</p>
  623. <ul>
  624. <code>perl fhem.pl fhem.cfg</code>
  625. </ul>
  626. &nbsp;<p>Nachstehend eine Minimal-Konfiguration Datei: </p><pre>
  627. attr global <a href="#logfile">logfile</a> log/fhem.log
  628. attr global <a href="#modpath">modpath</a> .
  629. attr global <a href="#statefile">statefile</a> log/fhem.save
  630. attr global <a href="#verbose">verbose</a> 3
  631. define telnetPort <a href="#telnet">telnet</a> 7072 global
  632. define WEB <a href="#FHEMWEB">FHEMWEB</a> 8083 global</pre>
  633. Die letzten zwei Zeilen definieren einen telnet und einen WEB Zugang, beide k&ouml;nnen aber
  634. bei Bedarf auch abgeschaltet werden.<br><br>
  635. Die WEB Schnittstelle kann &uuml;ber
  636. <ul>
  637. http://&lt;fhemhost&gt;:8083
  638. </ul>
  639. erreicht werden.
  640. <br><br>
  641. Die Kommunikation mit FHEM kann entweder in einer "session" (&uuml;ber telnet) oder
  642. &uuml;ber einzelne Klient-Kommandos (&uuml;ber fhem.pl) erfolgen. Beispiel:
  643. <ul>
  644. <code>telnet &lt;fhemhost&gt; 7072<br>
  645. &lt;NL&gt; </code>(Die Bet&auml;tigung der &quot;Enter&quot;-Taste schaltet in den&nbsp; "prompt"
  646. Modus)<code><br>
  647. &lt;command&gt;...<br>
  648. quit</code><br>
  649. </ul>
  650. oder
  651. <ul>
  652. <code>fhem.pl &lt;fhemhost&gt;:7072 "&lt;command&gt;..."</code>
  653. </ul>
  654. <br>
  655. Falls FHEM als root gestartet wurde, und ein OS-Benutzer fhem existiert, dann
  656. wechselt FHEM nach dem start zu diesem Benutzer (via setuid). <br>
  657. </ul>
  658. <br>
  659. <!-- intro end - diese Zeile nicht entfernen! -->
  660. <a name="command"></a>
  661. <h3>FHEM Befehlstypen</h3>
  662. <div class='langLinks'>[<a href='commandref.html#command'>EN</a> DE]</div>
  663. <ul>
  664. Es gibt drei Arten von Befehlen: "fhem" Befehle (werden in diesem Dokument
  665. beschrieben), SHELL-Befehle (diese m&uuml;ssen von doppelten
  666. Anf&uuml;hrungszeichen "" eingeschlossen werden) und PERL-Ausdr&uuml;cken (von
  667. geschwungenen Klammern {} eingeschlossen). SHELL-Befehle oder
  668. PERL-Ausdr&uuml;cke werden f&uuml;r komplexe <a href="#at">at</a> oder <a
  669. href="#notify">notify</a> Ausdr&uuml;cke ben&ouml;tigt, k&ouml;nnen aber auch
  670. als "normale" Befehle angewendet werden.
  671. <br>
  672. <br>
  673. Die folgenden drei Befehle bewirken z.B. dasselbe Ergebnis, wenn sie am
  674. telnet-Prompt eingegeben werden:
  675. <ul>
  676. set lamp off<br>
  677. "fhem.pl 7072 "set lamp off""<br>
  678. {fhem("set lamp off")}<br>
  679. </ul>
  680. SHELL-Kommandos werden im Hintergrund ausgef&uuml;hrt,
  681. PERL-Ausdr&uuml;cke und FHEM-Kommandos werden im Haupt-"thread" ausgef&uuml;hrt. Um
  682. PERL-Ausdr&uuml;cke leichter eingeben zu k&ouml;nnen, sind einige Spezialfunktionen und
  683. Variablen verf&uuml;gbar. Lesen Sie sich bitte die Abschnitte <a href="#perl">
  684. Perl special</a> zum besseren Verst&auml;ndnis durch.</p>
  685. <p>Um FHEM-Befehle in einen SHELL-Script zu triggern (dies ist
  686. eine "andere" M&ouml;glichkeit), benutzen Sie bitte die oben beschriebene Client-Form
  687. der fhem.pl.
  688. <br>
  689. Mehrere FHEM-Kommandos hintereinander werden mittels
  690. Semikolon (;) getrennt. Weil Semikola auch in PERL-Code oder SHELL-Programmen
  691. benutzt werden, m&uuml;ssen sie mittels doppelten Semikola gesch&uuml;tzt werden. Lesen
  692. Sie sich bitte die <b>Bermerkungen </b>des <a href="#notify">notify</a>-Abschnittes zu Kommandoparametern und Regeln durch.
  693. <br>
  694. Z.B. schaltet die erste der folgenden Befehlszeilen die Lampe 1 nur/erst zur
  695. Uhrzeit 07:00 Uhr aus, die Lampe 2 aber sofort und die zweite Befehlszeile
  696. schaltet Lampe 1 und 2 um 7:00 Uhr gleichzeitig aus.
  697. <ul>
  698. define lampoff at 07:00 set Lamp1 off; set Lamp2 off<br>
  699. define lampoff at 07:00 set Lamp1 off;; set Lamp2 off<br>
  700. </ul>
  701. <br>
  702. F&uuml;r jede weitere Indirektion muss man die Strichpunkte verdoppeln. Um also die beiden Lampen um 7:00 f&uuml;r 10 Minuten einzuschalten schreibt man:
  703. <ul>
  704. define onAt at 07:00 set Lamp1 on;;set Lamp2 on;; define offAt at +00:10 set Lamp1 off;;;;set Lamp2 off
  705. </ul>
  706. Keine Angst, das Vorherige kann in FHEM auch deutlich einfacher formuliert werden als:
  707. <ul>
  708. define onAt at 07:00 set Lamp1,Lamp2 on-for-timer 600
  709. </ul>
  710. <br>
  711. Befehle k&ouml;nnen entweder direkt eingegeben oder aus einer Datei (z.B. am
  712. Start von FHEM aus der Konfugurationsdatei) eingelesen werden. Die Befehle
  713. werden entweder direkt ausgef&uuml;hrt oder sp&auml;ter wenn sie als Argumente
  714. eines <a href="#at">at</a> oder <a href="#notify">notify</a>-Befehles verwendet
  715. werden.
  716. <p>Eine mit einem \ abgeschlossene Zeile wird mit der
  717. nachfolgenden Zeile verbunden. Somit k&ouml;nnen lange Befehlszeilen (die z.B. aus
  718. mehreren PERL-Befehlen bestehen) auf mehrere Zeilen aufgteilt werden. Einige
  719. Web-Frontends (z.B. webpgm2) erleichtern die Eingabe von sich &uuml;ber mehrere
  720. Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
  721. <p>&nbsp;</p>
  722. </ul>
  723. <!-- command end - diese Zeile nicht entfernen! -->
  724. <a name="devspec"></a>
  725. <h3>Ger&auml;te-Spezifikation (devspec)</h3>
  726. <div class='langLinks'>[<a href='commandref.html#devspec'>EN</a> DE]</div>
  727. <ul>
  728. Die Befehle
  729. <a href="#attr">attr</a>,
  730. <a href="#set">set</a>,
  731. <a href="#get">get</a>, usw.
  732. <a href="#attr">attr</a>,
  733. <a href="#deleteattr">deleteattr</a>,
  734. <a href="#displayattr">displayattr</a>,
  735. <a href="#delete">delete</a>,
  736. <a href="#get">get</a>,
  737. <a href="#list">list</a>,
  738. <a href="#set">set</a>,
  739. <a href="#setreading">setreading</a>,
  740. <a href="#setstate">setstate</a>,
  741. <a href="#trigger">trigger</a>
  742. k&ouml;nnen eine komplexere Ger&auml;tespezifikation als Argumente enthalten,
  743. die auch eine Anzahl von Ger&auml;ten betreffen kann. Eine
  744. Ger&auml;tespezifikation kann folgendes sein:
  745. <ul>
  746. <li>ein einzelner Ger&auml;tename. Dies ist der Normalfall</li>
  747. <li>eine durch Komma(,) getrennte Liste von Ger&auml;tenamen</li>
  748. <li>ein regul&auml;rer Ausdruck</li>
  749. <li>ein NAME=WERT Ausdruck, wo NAME ein "Internal" Wert wie TYPE ist, ein
  750. Reading-Name oder ein Attribut. WERT ist ein regul&auml;rer Ausdruck.
  751. Um die Bedingung zu negieren, muss NAME!=WERT verwendet werden.
  752. Um die Suche einzugrenzen, kann man als Praefix i: f&uuml;r internal
  753. Werte, r: f&uuml;r Reading-Namen und a: f&uuml;r Attribute verwenden,
  754. siehe das Beispiel unten. Gro&szlig;-/Kleinschreibung wird durch die
  755. Verwendung von ~ oder !~ ignoriert.
  756. </li>
  757. <li>Falls die Spezifikation von :FILTER=NAME=WERT gefolgt wird,
  758. dann wird die zuvor gefundene Liste durch diesen neuen Ausdruck
  759. gefiltert.
  760. </ul>
  761. Beispiele:
  762. <ul>
  763. <code>set lamp1 on</code><br>
  764. <code>set lamp1,lamp2,lamp3 on</code><br>
  765. <code>set lamp.* on</code><br>
  766. <code>set room=kitchen off</code><br>
  767. <code>set room=kitchen:FILTER=STATE=on off</code><br>
  768. <code>set room=kitchen:FILTER=STATE!=off off</code><br>
  769. <code>list disabled=</code><br>
  770. <code>list room~office</code><br>
  771. <code>list TYPE=FS20 STATE</code><br>
  772. <code>list i:TYPE=FS20 STATE</code><br>
  773. </ul>
  774. Bemerkungen:
  775. <ul>
  776. <li>die Spezifikation kann keine Leerzeichen enthalten.</li>
  777. <li>falls ein Ger&auml;tename exakt dem Spezifikation entspricht, dann werden
  778. keine regul&auml;re Ausdr&uuml;cke oder Filter ausgewertet.
  779. <li>zuerst wird die durch Komma getrennte Spezifikation abgearbeitet, dann
  780. folgen die regul&auml;ren Ausdr&uuml;cke und die Filter</li>
  781. <li>die Befehlszeile kann die selbe Ger&auml;tebezeichnung mehrfach enthalten
  782. z.B.: &quot;set lamp3,lamp3 on&quot;. Lamp3 wird hier zwei Mal
  783. eingeschalten.</li>
  784. <li>um Strukturen mit komplexeren Anforderungen zu realisieren lesen Sie
  785. bitte den Abschnitt zu <a href="#structure"> structure</a>.
  786. </ul>
  787. </ul>
  788. <!-- devspec end - diese Zeile nicht entfernen! -->
  789. <a name="attributes"></a>
  790. <h3>Attribute</h3>
  791. <div class='langLinks'>[<a href='commandref.html#attributes'>EN</a> DE]</div>
  792. Alle Ger&auml;te haben Attribute. Diese werden mittels des Befehls <a
  793. href="#attr">attr</a> gesetzt, angezeigt mit dem Befehl <a
  794. href="#displayattr">displayattr</a>, und mit dem Kommando <a
  795. href="#deleteattr">deleteattr</a> entfernt.<p>
  796. Es gibt globale Attribute, die von allen Ger&auml;ten genutzt werden, und lokale
  797. Attribute, die nur auf individuelle Ger&auml;teklassen zutreffen.<p>
  798. Manche Ger&auml;te (wie <a href="#FHEMWEB">FHEMWEB</a>) definieren automatisch
  799. neue globale Attribute bei der ersten Definition eines Ger&auml;tes dieses
  800. Typs.<p>
  801. Sie k&ouml;nnen den Befehl<p><code>attr global userattr
  802. &lt;attributelist&gt;</code><p> f&uuml;r das Ger&auml;t <a
  803. href="#global">global</a> verwenden, um neue globale Attribute zu deklarieren,
  804. und <p><code>attr &lt;devicespec&gt; userattr
  805. &lt;attributelist&gt;</code>,<p>um neue lokale Attribute f&uuml;r bestimmte
  806. individuelle Ger&auml;te gem&auml;&szlig <a href="#devspec">devspec</a> zu
  807. deklarieren.
  808. <code>&lt;attributelist&gt;</code> ist eine durch Leerzeichen getrennte Liste,
  809. die die Namen der zus&auml;tzlichen Attribute enth&auml;lt. In der
  810. Dokumentation zum Befehl <a href="#attr">attr</a> sind Beispiele.<p>
  811. Seien Sie vorsichtig und &uuml;berschreiben Sie keine zus&auml;tzlichen
  812. globale Attribute, die bereits zuvor durch Sie selbst oder ein Ger&auml;t
  813. definiert wurden. <code>attr global userattr &lt;attributelist&gt;</code>
  814. sollte so fr&uuml;h wie m&ouml;glich in der Konfiguration erscheinen.
  815. <h4>Ger&auml;tespezifische Attribute</h4>
  816. Ger&auml;tespezifische Attribute sind in dem jeweiligen Abschnitt zum
  817. Ger&auml;t dokumentiert.
  818. <h4>Globale Attribute f&uuml;r alle Ger&auml;te</h4>
  819. <ul>
  820. <a name="alias"></a>
  821. <li>alias<br>
  822. Wird in FHEMWEB benutzt, um ein en anderen Namen f&uuml;r ein Ger&auml;t
  823. anzuzeigen z.B. wenn Sonderzeichen/Leerzeichen nicht in der
  824. Ger&auml;tedefinition verwendet werden k&ouml;nnen.
  825. </li><br>
  826. <a name="comment"></a>
  827. <li>comment<br>
  828. F&uuml;gt einen beliebigen Kommentar hinzu.
  829. </li><br>
  830. <a name="eventMap"></a>
  831. <li>eventMap<br>
  832. Ersetze Event Namen und setze Argumente. Der Wert dieses Attributes
  833. besteht aus einer Liste von durch Leerzeichen getrennte Werten. Jeder
  834. Wert ist ein durch Doppelpunkt getrenntes Paar. Der erste Teil stellt den
  835. "alten" Wert, der zweite Teil den "neuen" Wert dar. Wenn der erste Wert
  836. ein Slash (/) oder ein Komma (,) ist, dann wird nicht durch Leerzeichen
  837. sondern durch das vorgestellte Zeichen getrennt.
  838. Optional kann man auch ein widgetOverride angeben (angeh&auml;ngt nach
  839. einem Doppelpunkt (z.Bsp. on-for-timer:OnFor:texField). Die
  840. Voreinstellung ist :noArg, um das Input Feld bei cmdList zu vermeiden.
  841. Beispiele:
  842. <ul><code>
  843. attr store eventMap on:open off:closed<br>
  844. attr store eventMap /on-for-timer 10:open/off:closed/<br>
  845. set store open
  846. </code></ul>
  847. Die explizite Variante dieses Attributes hat folgenden Syntax:
  848. <ul><code>
  849. attr store eventMap { dev=>{'on'=>'open'}, usr=>{'open'=>'on'} }<br>
  850. attr store eventMap { dev=>{'^on(-for-timer)?(.*)'=>'open$2'},
  851. usr=>{'^open(.*)'=>'on$1'},
  852. fw=>{'^open(.*)'=>'open'} }
  853. </code></ul>
  854. Diese Variante muss dann verwendet werden, falls das Mapping nicht
  855. symmetrisch ist. Der erste Teil (dev) spezifiziert dabei die Richtung
  856. Ger&auml;t zu Benutzer, d.h. falls das Ger&auml;t on 100 oder
  857. on-for-timer 100 meldet, dann wird der Benutzer open 100 zu sehen
  858. bekommen. Der zweite Teil (usr) spezifiziert die Richtung Benutzer zu
  859. Ger&auml;t, d.h. wenn man "set XX open 100" eingibt, dann wird das
  860. Kommando "on 100" an das Ger&auml;t gesendet. In beiden F&auml;llen wird
  861. der Schl&uuml;ssel zuerst direkt, und dann als Regexp mit dem Wert
  862. verglichen. Falls man Regexps mit Wildcards im usr Teil verwendet, dann
  863. muss man den fw Teil mit dem exakt gleichen Schl&uuml;sseln
  864. ausf&uuml;llen, damit FHEMWEB in der Detail-Ansicht den set-Auswahl
  865. richtig anzeigen kann.
  866. </li><br>
  867. <a name="genericDisplayType"></a>
  868. <li>genericDisplayType<br>
  869. Wird von bestimmten Frontends (aber nicht FHEMWEB) verwendet, um
  870. f&uuml;r das Ger&auml;t passende Voreinstellungen (Bild/Befehle/etc)
  871. anzubieten. Z.Zt werden folgende Werte unterst&uuml;tzt:
  872. switch,outlet,light,blind,speaker,thermostat
  873. </li><br>
  874. <a name="group"></a>
  875. <li>group<br>
  876. Ger&auml;tegruppen. FHEMWEB zeigt Ger&auml;te die in die gleiche Gruppe
  877. geh&ouml;ren auch in einer gemeinsamen Box an. Ein Ger&auml;t kann zu
  878. mehr als einer Gruppe geh&ouml;ren. In diesem Fall m&uuml;ssen die
  879. entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn
  880. dieses Attribut nicht gesetzt ist, wird der in der Ger&auml;tegruppe
  881. gesetzte Ger&auml;tetyp verwendet.
  882. </li><br>
  883. <a name="room"></a>
  884. <li>room<br>
  885. Filtert/gruppiert Ger&auml;te.
  886. Ein Ger&auml;t kann zu mehr als einem Raum zugeordnet werden. In diesem
  887. Fall m&uuml;ssen die Raumzuordnungen durch Kommata getrennt
  888. angegeben werden.<br>
  889. Ger&auml;te, die dem Raum mit der Bezeichnung "hidden" zugeordnet
  890. werden, erscheinen nicht auf der Webseite.
  891. Mit -&gt; werden R&auml;ume strukturiert, z.Bsp. OG-&gt;Schlafzimmer
  892. </li><br>
  893. <a name="showtime"></a>
  894. <li>showtime<br>
  895. Wird im FHEMWEB verwendet, um die Zeit der letzten Aktivit&auml;t
  896. anstelle des Status in der Gesamtansicht anzuzeigen. N&uuml;tzlich z.B.
  897. f&uuml;r FS20 PIRI Ger&auml;te.
  898. </li></br>
  899. <a name="suppressReading"></a>
  900. <li>suppressReading<br>
  901. Wird verwendet, um nicht gewollte Readings zu entfernen. Der Wert ist
  902. ein Regular Expression, erg&auml;nzt mit ^ und $. Wird nur in
  903. Ausnahmef&auml;llen ben&ouml;tigt.
  904. </li><br>
  905. <a name="verbose"></a>
  906. <li>verbose<br>
  907. Setzt den Schwellwert f&uuml;r die Logfile-Meldungen.
  908. M&ouml;gliche Werte sind:
  909. <ul>
  910. <li>0 - Server start/stop</li>
  911. <li>1 - Fehlermeldungen oder unbekannte Pakete</li>
  912. <li>2 - bedeutende Ereigbisse/Alarme.</li>
  913. <li>3 - ausgesendete Kommandos werden gelogged.</li>
  914. <li>4 - von den einzelnen Ger&auml;ten empfangene Daten.</li>
  915. <li>5 - Fehlersuche.</li>
  916. </ul>
  917. Der f&uuml;r die <a href="#global">global</a> Instanz gesetzte Wert gilt
  918. als Voreinstellung f&uuml;r die Instanzen, die dieses Attribut nicht
  919. gesetzt haben.
  920. </li><br>
  921. </ul>
  922. <a name="readingFnAttributes"></a>
  923. <h4>readingFnAttribute</h4>
  924. Die folgenden Attribute werden bei Modulen verwendet, die standardisierte
  925. "readings" Aktualisierung der fhem.pl benutzen. Informieren Sie sich in der
  926. Liste der Modulattribute wenn Sie wissen m&ouml;chten ob dies
  927. unterst&uuml;tzt wird.<br><br>
  928. <ul>
  929. <a name="stateFormat"></a>
  930. <li>stateFormat<br>
  931. &Auml;ndert den Ger&auml;testatus, dies ist z.Bsp. in der Ausgabe des list
  932. Kommandos zu sehen, oder in der Raum&uumlbersicht von FHEMWEB. Falls
  933. nicht gesetzt, dann wird das state Reading &uuml;bernommen. Sonst werden
  934. alle W&ouml;rter im Wert des Attributes durch das entsprechende Reading des
  935. Ger&auml;tes ersetzt (soweit vorhanden). Falls der Wert in {}
  936. eingeschlossen ist, dann wird es als Perl Ausdruck ausgewertet. Die
  937. Auswertung passiert bei jeder &Auml;nderung eines Readings.<br>
  938. Die <a href="#set">hier</a> beschriebene "set magic" wird auch angewendet.
  939. </li>
  940. <a name="event-on-update-reading"></a>
  941. <li>event-on-update-reading<br>
  942. Wenn nicht gesetzt, erzeugt jede Ver&auml;nderung eines "readings" ein
  943. Ereignis, welches z.B. von <a href="#notify">notify</a> oder<a
  944. href="FileLog"> FileLog</a> ber&uuml;cksichtigt wird. Wenn gesetzt erzeugen
  945. nur Aktualisierungen der eingetragenen "readings" ein Ereignis.
  946. </li>
  947. <a name="event-on-change-reading"></a>
  948. <li>event-on-change-reading<br>
  949. Dieses Attribut enth&auml;lt eine durch Kommata getrennte Liste von
  950. "readings". Wenn gesetzt, erzeugen nur Ver&auml;nderungen der gelisteten
  951. "readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten
  952. "readings" identisch sind, wird kein Ereignis generiert.<br>
  953. Wenn hinter dem Namen eines "readings" eine :Schwelle angegeben ist, wird
  954. das Event nur getriggert wenn die &Auml;nderung gr&ouml;sser als diese
  955. Schwelle ist.
  956. </li>
  957. Die unterschiedlichen Bedeutungen von event-on-update-reading und
  958. event-on-change-reading sind folgende:
  959. <ol>
  960. <li>Wenn beide Attribute nicht gesetzt sind erzeugt jede Aktualisierung
  961. eines jeden "readings" eines Ger&auml;tes ein Ereignis.</li>
  962. <li>Wenn eines der Attribute gesetzt ist, erzeugen nur Updates oder
  963. &auml;nderungen von "readings" die in einem der Attribute gesetzt
  964. sind ein Ereignis.</li>
  965. <li>Wenn ein "reading" in event-on-update-reading aufgef&uuml;hrt ist,
  966. erzeugt eine Aktualisierung ein Ereignis unabh&auml;ngig ob das
  967. "reading" auch in event-on-change-reading aufgelistet ist.</li>
  968. </ol>
  969. <a name="timestamp-on-change-reading"></a>
  970. <li>timestamp-on-change-reading<br>
  971. Dieses Attribut enth&auml;lt eine durch Kommata getrennte Liste von
  972. "readings". Wenn gesetzt, werden die Zeitstempel der gelisteten "readings"
  973. nicht aktualisiert wenn durch ein ebenfalls gesetztes event-on-change-reading
  974. f&uuml;r dieses "reading" kein Ereignis erzeugen w&uuml;rde.
  975. </li>
  976. <p>
  977. <a name="event-aggregator"></a>
  978. <li>event-aggregator</li>
  979. The primary uses of this attribute are to calculate (time-weighted) averages of
  980. readings over time periods and to throttle the update rate of readings and thus
  981. the amount of data written to the logs.<p>
  982. This attribute takes a comma-separated list of <code>reading:interval:method:function:holdTime</code>
  983. quintuples. You may use regular expressions for <code>reading</code>. If set, updates for the
  984. listed readings are ignored and associated events are suppressed for a black-out period of at
  985. least <code>interval</code> seconds (downsampling). After the black-out period has expired, the reading is
  986. updated with a value that is calculated from the values and timestamps of the previously ignored
  987. updates within the black-out period as follows:
  988. <table>
  989. <tr><th>function</th><th>description</th></tr>
  990. <tr><td>v</td><td>the last value encountered</td></tr>
  991. <tr><td>v0</td><td>the first value encountered</td></tr>
  992. <tr><td>min</td><td>the smallest value encountered</td></tr>
  993. <tr><td>max</td><td>the largest value encountered</td></tr>
  994. <tr><td>mean</td><td>the arithmetic mean of all values</td></tr>
  995. <tr><td>sd</td><td>the standard deviation from the mean</td></tr>
  996. <tr><td>median</td><td>the median of all values (requires holdTime and function none)</td></tr>
  997. <tr><td>integral</td><td>the arithmetic sum (if not time-weighted) or integral area (if time-weighted) of all values</td></tr>
  998. <tr><td>n</td><td>number of samples</td></tr>
  999. <tr><td>t</td><td>timestamp of the last value</td></tr>
  1000. <tr><td>t0</td><td>timestamp of the first value</td></tr>
  1001. </table>
  1002. <p>
  1003. If <code>method</code> is <code>none</code>, then that's all there is. If <code>method</code>
  1004. is <code>const</code> or <code>linear</code>, the time-weighted series of values is taken into
  1005. account instead. The weight is the timespan between two subsequent updates.
  1006. With the <code>const</code> method, the value is the value of the reading at the beginning of
  1007. the timespan; with the <code>linear</code> method, the value is the arithmetic average of
  1008. the values at the beginning and the end of the timespan.
  1009. Rollovers of black-out periods are handled as one would expect it.<p>
  1010. One would typically use the <code>linear</code> method with the <code>mean</code> function for
  1011. quantities continuously varying over time like electric power consumption, temperature or speed.
  1012. For cumulative quantities like energy consumed, rain fallen or distance covered,
  1013. the <code>none</code> method with the <code>v</code> function is used. The <code>constant</code>
  1014. method is for discrete quantities that stay constant until the corresponding reading is updated,
  1015. e.g. counters, switches and the like.<p>
  1016. If the <code>holdTime</code> in seconds is defined, the samples will be kept in memory allowing
  1017. the calculation of floating statistics instead of blocked statistics. With <code>holdTime</code>
  1018. defined the <code>interval</code> can be kept undefined so that the readings update rate is unchanged
  1019. or it can be set to a value less then <code>holdTime</code> for downsampling as described above
  1020. with a full history of the readings in memory. Note that the historic samples are not persistent
  1021. and will be lost when restarting FHEM.<p>
  1022. The event aggregator only takes into consideration those updates that remain after preprocessing
  1023. according to the <code>event-on-update-reading</code> and <code>event-on-change-reading</code>
  1024. directives. Besides which, any update of a reading that occurs within a timespan from the preceding
  1025. update that is smaller than the resolution of FHEM's time granularity is ditched.<p>
  1026. When more than one function should be calculated for the same reading, the original reading must be
  1027. multiplied (e.g. by using a notify) before applying the event-aggregator to the derived readings.<p>
  1028. Examples:<br>
  1029. <code>attr myPowerMeter event-aggregator EP_POWER_METER:300:linear:mean,EP_ENERGY_METER:300:none:v</code><br>
  1030. <code>attr myBadSensor event-aggregator TEMP::none:median:300</code><br>
  1031. <code>attr mySunMeter event-aggregator SUN_INTENSITY_24H::const:integral:86400</code>
  1032. </li>
  1033. <a name="event-min-interval"></a>
  1034. <li>event-min-interval<br>
  1035. Dieses Attribut enth&auml;lt eine durch Kommata getrennte Liste von
  1036. "readings:minInterval" Paare. readings kann ein regexp sein. Ein Event wird
  1037. nur dann generiert, falls seit dem letzten Auftreten des gleichen Events
  1038. mindestens minInterval Sekunden vergangen sind. Falls
  1039. event-on-change-reading auch spezifiziert ist, dann werden sie mit ODER
  1040. kombiniert, d.h. wenn einer der beiden Bedingungen wahr ist.
  1041. </li>
  1042. <a name="oldreadings"></a>
  1043. <li>oldreadings<br>
  1044. Dieses Attribut enth&auml;lt eine durch Kommata getrennte Liste von
  1045. Readings. regex sind erlaubt. F&uuml;r jedes Reading aus der Liste
  1046. speichert FHEM intern den vorherigen Wert wenn sich das Reading
  1047. &auml;ndert. Zum Zugriff auf die Werte gibt es die OldReadings.* Routinen.
  1048. </li>
  1049. <a name="userReadings"></a>
  1050. <li>userReadings<br>
  1051. Komma getrennte Liste von benutzerdefinierten Readings. Jede Definition hat
  1052. folgendes Format:
  1053. <ul><code>
  1054. &lt;reading&gt;[:&lt;trigger&gt;] [&lt;modifier&gt;] { &lt;perl code&gt; }
  1055. </code></ul>
  1056. Diese benutzerdefinierte Readings werden bei jeder Aktualisierung der
  1057. Ger&auml;tereadings gesetzt, indem das spezifizierte <a href="#perl">perl
  1058. code</a> <code>{ &lt;perl code&gt; }</code> ausgef&uuml;hrt wird, und
  1059. dessen Wert dem Reading zugewiesen wird.
  1060. Falls &lt;trigger&gt; spezifiziert ist, dann findet diese Ausf&uuml;hrung
  1061. nur dann statt, falls einer der aktualisierten Readings dem regexp
  1062. &lt;trigger&gt; entspricht (matched). <br>
  1063. Beispiele:
  1064. <ul><code>
  1065. attr myEnergyMeter userReadings energy
  1066. { ReadingsVal("myEnergyMeter","counters.A",0)/1250.0;; }<br>
  1067. attr myMultiMeter userReadings
  1068. energy1:counters.A.* {ReadingsVal("myMultiMeter","counters.A",0)/1250.0},
  1069. energy2:counters.B.* {ReadingsVal("myMultiMeter","counters.B",0)/1250.0}
  1070. </code></ul>
  1071. <code>&lt;modifier&gt;</code> kann die folgenden Werte haben:
  1072. <ul>
  1073. <li>none: als ob man es gar nicht spezifiziert h&auml;tte.</li>
  1074. <li>difference: das Reading wird auf die Differenz zw. dem aktuellen und
  1075. dem vorherigen Wert gesetzt.</li>
  1076. <li>differential: das Reading wird auf die Differenz zw. dem aktuellen und
  1077. dem vorherigen Wert, geteilt durch die Sekunden zw. der aktuellen Zeit
  1078. und der letzten Auswertung, sekundengenau. Kein Wert wird berechnet,
  1079. falls der Unterschied unter eine Sekunde liegt.</li>
  1080. <li>integral: das Gegenteil von differential. Das Ergebnis wird um das
  1081. Produkt aus der Zeit-Differenz und der Durschnittswert der letzten zwei
  1082. Readings erh&ouml;ht.<br>
  1083. result += (time - timeold) * (oldval + value) / 2
  1084. </li>
  1085. <li>offset: wenn der aktuellen Wert kleiner als der vorherige Wert ist
  1086. wird der vorherige Wert zum Reading addiert. Das Reading kann dann als
  1087. offset verwendet werden um einen Z&auml;hler der durch Sromverlust
  1088. zur&uuml;ckgesetzt wird zu korrigieren.</li>
  1089. <li>monotonic: wenn die Differenz zw. dem aktuellen und dem vorherigen
  1090. Wert positiv ist wird diese Differenz zum Reading addiert. Damit
  1091. l&auml;sst sich von einem Z&auml;hler der bei Stromverlust
  1092. zur&uuml;ckgesetzt wird ein monoton wachsender Z&auml;hler
  1093. ableiten.</li>
  1094. </ul>
  1095. Beispiel:
  1096. <ul><code>
  1097. attr myPowerMeter userReadings power differential
  1098. { ReadingsVal("myPowerMeter","counters.A",0)/1250.0}
  1099. </code></ul>
  1100. Achtung:<ul>
  1101. <li>Falls difference oder differential spezifiziert ist, dann werden
  1102. f&uuml;r die Berechnung &auml;ltere Werte ben&ouml;tigt, d.h. der Wert
  1103. wird fr&uuml;hestens beim zweiten &Auml;nderung gesetzt.</li>
  1104. <li>der Name der definierten Readings besteht aus alphanumerischen
  1105. Zeichen, Unterstrich (_) und Minus-Zeichen (-).</li>
  1106. </ul>
  1107. </li><br>
  1108. </ul>
  1109. <h4>Allgemeine Attribute</h4>
  1110. Die folgenden lokalen Attribute werden von mehreren Ger&auml;ten verwendet:
  1111. <ul>
  1112. <a name="IODev"></a>
  1113. <li>IODev<br>
  1114. Setzt das IO oder das physische Device, welches zum Senden der Signale an
  1115. dieses logische Device verwendet werden soll (Beispielsweise FHZ oder
  1116. CUL). Hinweis: Beim Start weist FHEM jedem logischen Device das letzte
  1117. physische Device zu, das Daten von diesem Typ empfangen kann. Das
  1118. Attribut IODev muss nur gesetzt werden, wenn mehr als ein physisches
  1119. Device f&auml;hig ist, Signale von diesem logischen Device zu empfangen.
  1120. </li><br>
  1121. <li>Attribut "disable" umschalten<br/>
  1122. Das Attribut "disable" kann, sofern vom Ger&auml;temodul bereitgestellt,<br/>
  1123. mit folgendem Befehl einfach umgeschaltet werden:</br>
  1124. <br/>
  1125. <code>attr &lt;device&gt; disable toggle</code><br/>
  1126. </li>
  1127. </ul>
  1128. <!-- attributes end - diese Zeile nicht entfernen! -->
  1129. <br><br>
  1130. <a name="attr"></a>
  1131. <h3>attr</h3>
  1132. <div class='langLinks'>[<a href='commandref.html#attr'>EN</a> DE]</div>
  1133. <ul>
  1134. <code>attr [-a|-r] &lt;devspec&gt; &lt;attrname&gt; [&lt;value&gt;]</code><br>
  1135. <br>
  1136. Dieser Befehl setzt ein Attribut f&uuml;r ein Ger&auml;t welches mit <a
  1137. href="#define">define</a> definiert wurde. value ist optional, und ist 1
  1138. falls nicht spezifiziert. Sie k&ouml;nnen auch Ihre eigenen
  1139. Attribute definieren, um sie in anderen Applikationen anzuwenden. Geben Sie
  1140. "&lt;attr &lt;name&gt; ?" ein, um eine Liste verf&uuml;gbarer Attribute
  1141. anzuzeigen.
  1142. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1143. f&uuml;r Details der &lt;devspec&gt;.<br>
  1144. Ger&auml;tespezifische Attribute sind in der Beschreibung zum jeweiligen
  1145. Ger&auml;t aufgef&uuml;hrt.
  1146. Nach der Durchf&uuml;hrung das globale Ereignis "ATTR" wird generiert.
  1147. <br>
  1148. Falls die Option -a spezifiziert ist, dann wird value zum aktuellen Wert
  1149. hinzugef&uuml;gt. Achtung: falls value nicht mit einem Komma (,)
  1150. anf&auml;ngt, dann wird es mit einem Leerzeichen angeh&auml;ngt.
  1151. <br>
  1152. Mit der -r Option kann man Teile eines Attributes wieder entfernen.<br>
  1153. <br>
  1154. Beispiele:
  1155. <ul><code>
  1156. attr global verbose 3<br>
  1157. attr lamp room kitchen<br>
  1158. attr lamp group lights<br>
  1159. attr lamp loglevel 6<br>
  1160. attr weatherstation event-on-update-reading wind,temperature,humidity<br>
  1161. attr weatherstation event-on-change-reading israining<br>
  1162. attr weatherstation event-on-change-reading israining,state<br>
  1163. attr heating stateFormat Temp:measured-temp, Valve:actuator<br>
  1164. attr -a TYPE=SVG room ,SvgRoom</br>
  1165. attr -r TYPE=SVG room ,SvgRoom</br>
  1166. </code></ul>
  1167. <br>
  1168. Bemerkungen:<br>
  1169. <ul>
  1170. <li>Lesen Sie unter <a href="#deleteattr">deleteattr</a> nach um Attribute
  1171. zu l&ouml;schen.</li>
  1172. </ul>
  1173. </ul>
  1174. <!-- attr end -->
  1175. <a name="cancel"></a>
  1176. <h3>cancel</h3>
  1177. <div class='langLinks'>[<a href='commandref.html#cancel'>EN</a> DE]</div>
  1178. <ul>
  1179. <code>cancel [&lt;id&gt; [quiet]]</code>
  1180. <br><br>
  1181. Entfernt ein benanntes <a href="#sleep">sleep</a>.
  1182. </ul>
  1183. <!-- cancel end -->
  1184. <a name="define"></a>
  1185. <h3>define</h3>
  1186. <div class='langLinks'>[<a href='commandref.html#define'>EN</a> DE]</div>
  1187. <ul>
  1188. <code>define [option] &lt;name&gt; &lt;type&gt; &lt;type-specific&gt;</code><br>
  1189. <br>
  1190. Definiert ein Ger&auml;t. Sie m&uuml;ssen Ger&auml;te einrichten um sie zu
  1191. beeinflussen (z.B. das Kommando set on/off auszuf&uuml;hren). Gleichfalls
  1192. ist das Logfile besser lesbar wenn es z.B. "lamp off" anstatt "Device 5673,
  1193. Button 00, Code 00 (off)" als Text enth&auml;lt. <br>
  1194. Nach der Durchf&uuml;hrung wird das globale Ereignis "DEFINED" generiert.
  1195. <br><br>
  1196. Je nach Typ ben&ouml;tigt man unterscheidliche Argumente, lesen Sie sich
  1197. bitte die zu dem jeweiligen Ger&auml;t geh&ouml;renden Abschnitte durch.
  1198. <br><br>
  1199. Optionen:<br>
  1200. <ul>
  1201. <li>-temporary<br>
  1202. Setzt den TEMPORARY Marker, was das Abspeichern dieser Definition in
  1203. fhem.cfg verhindert.
  1204. </li><br>
  1205. <li>-ignoreErr<br>
  1206. Reduziert die Anzahl der Fehlermeldungen, falls ein FHEM-Modul nicht
  1207. geladen werden kann. Wird in fhem.cfg.demo verwendet, da das RSS Beispiel
  1208. etliche, normalerweise nicht installierte perl-Module ben&ouml;tigt.
  1209. </li><br>
  1210. </ul>
  1211. </ul>
  1212. <!-- define end -->
  1213. <a name="defmod"></a>
  1214. <h3>defmod</h3>
  1215. <div class='langLinks'>[<a href='commandref.html#defmod'>EN</a> DE]</div>
  1216. <ul>
  1217. <code>defmod [-temporary] &lt;name&gt; &lt;type&gt; &lt;type-specific&gt;</code><br>
  1218. <br>
  1219. Definiert ein Ger&auml;t, oder &auml;ndert es, falls es exisitiert. Um
  1220. z.Bsp. eine Lampe 10 Minuten nach der letzten Meldung eines Bewegungsmelders
  1221. abzuschalten, k&ouml;nnte man folgendes definieren:
  1222. <ul><code>
  1223. define mdNtfy notify motionDetector defmod mdOff at +00:10 set lamp off
  1224. </code></ul>
  1225. Falls man statt defmod ein define verwenden w&uuml;rde, dann w&uuml;rde eine
  1226. Meldung innerhalb von 10 Minuten nach der letzten Meldung zu einem Fehler
  1227. f&uuml;hren, da mdOff noch existiert.
  1228. <br>
  1229. </ul>
  1230. <!-- defmod end -->
  1231. <a name="delete"></a>
  1232. <h3>delete</h3>
  1233. <div class='langLinks'>[<a href='commandref.html#delete'>EN</a> DE]</div>
  1234. <ul>
  1235. <code>delete &lt;devspec&gt;</code> <br>
  1236. <br>
  1237. L&ouml;scht etwas was mit dem <a href="#define">define</a> Befehl erstellt
  1238. worden ist.<br>
  1239. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1240. f&uuml;r Details der &lt;devspec&gt;.<br>
  1241. Nach dem l&ouml;schen, wird das globale Ereignis "DELETED" erzeugt.<br>
  1242. Beispiel:
  1243. <ul>
  1244. <code>delete lamp</code><br>
  1245. </ul>
  1246. <br>
  1247. </ul>
  1248. <!-- delete end -->
  1249. <a name="deleteattr"></a>
  1250. <h3>deleteattr</h3>
  1251. <div class='langLinks'>[<a href='commandref.html#deleteattr'>EN</a> DE]</div>
  1252. <ul>
  1253. <code>deleteattr &lt;devspec&gt; [&lt;attrname&gt;]</code> <br>
  1254. <br>
  1255. L&ouml;scht entweder ein einzelnes Attribut (siehe Abschnitt <a
  1256. href="#attr">attr</a> ) oder alle Attribute eines Ger&auml;tes (falls
  1257. kein &lt;attrname&gt; angegeben wird).<br>
  1258. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1259. f&uuml;r Details der &lt;devspec&gt;.<br>
  1260. Nach der Durchf&uuml;hrung das globale Ereignis "DELETEATTR" wird generiert.
  1261. <br>
  1262. Beispiele:
  1263. <ul>
  1264. <code>deleteattr lamp follow-on-for-timer</code><br>
  1265. <code>deleteattr lamp</code><br>
  1266. </ul>
  1267. <br>
  1268. </ul>
  1269. <!-- deleteattr end -->
  1270. <a name="deletereading"></a>
  1271. <h3>deletereading</h3>
  1272. <div class='langLinks'>[<a href='commandref.html#deletereading'>EN</a> DE]</div>
  1273. <ul>
  1274. <code>deletereading &lt;devspec&gt; &lt;readingname&gt;</code> <br>
  1275. <br>
  1276. Entfernt das Reading &lt;readingname&gt; f&uuml;r das spezifizierte
  1277. Ger&auml;t. &lt;readingname&gt; ist ein perl Regular-Expression, was den
  1278. vollst&auml;ndigen Namen des Readings erfassen muss.
  1279. Mit gr&ouml;&szlig;ter Sorgfalt verwenden! FHEM kann abst&uuml;rzen, falls
  1280. man lebenswichtige Readings entfernt.<br>
  1281. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1282. f&uuml;r Details der &lt;devspec&gt;.<br>
  1283. <br>
  1284. Beispiele:
  1285. <ul>
  1286. <code>deletereading mySensor temp1</code><br>
  1287. <code>deletereading mySensor temp\d+</code><br>
  1288. </ul>
  1289. <br>
  1290. </ul>
  1291. <!-- deletereading end -->
  1292. <a name="displayattr"></a>
  1293. <h3>displayattr</h3>
  1294. <div class='langLinks'>[<a href='commandref.html#displayattr'>EN</a> DE]</div>
  1295. <ul>
  1296. <code>displayattr &lt;devspec&gt; [&lt;attrname&gt;]</code> <br>
  1297. <br>
  1298. Zeigt entweder den Wert eines Attributes an (falls &lt;attrname&gt;
  1299. spezifiziert wurde) oder alle Attribute eines Ger&auml;tes.
  1300. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1301. f&uuml;r Details der &lt;devspec&gt;.<br>
  1302. Falls mehrere Ger&auml;te spezifiziert wurden, dann enth&auml;lt die Ausgabe
  1303. den Namen der Ger&auml;te.
  1304. <br>
  1305. Beispiele:
  1306. <ul>
  1307. <code>
  1308. fhem&gt; di WEB<br>
  1309. menuEntries AlarmOn,/fhem?cmd=set%20alarm%20on<br>
  1310. room Misc.<br>
  1311. fhem&gt di WEB room<br>
  1312. Misc.<br>
  1313. </code>
  1314. </ul>
  1315. <br>
  1316. </ul>
  1317. <!-- displayattr end -->
  1318. <a name="get"></a>
  1319. <h3>get</h3>
  1320. <div class='langLinks'>[<a href='commandref.html#get'>EN</a> DE]</div>
  1321. <ul>
  1322. <code>get &lt;devspec&gt; &lt;type-specific&gt;</code>
  1323. <br><br>
  1324. Fragt einen Wert direkt&nbsp; (aktuell) vom Ger&auml;t ab und wartet auf eine
  1325. Antwort. Eine allgemeine Liste m&ouml;glicher Paramter erhalten Sie mit<ul>
  1326. <code>get &lt;device&gt; ?</code>
  1327. </ul>
  1328. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1329. f&uuml;r Details der &lt;devspec&gt;.<br>
  1330. Jedes Ger&auml;t hat unterschiedliche &quot;get&quot;-Parameter. Lesen Sie Details bitte im
  1331. zugeh&ouml;rigen Abschnitt nach.<br>
  1332. <br>
  1333. </ul>
  1334. <!-- get end -->
  1335. <a name="getstate"></a>
  1336. <h3>getstate</h3>
  1337. <div class='langLinks'>[<a href='commandref.html#getstate'>EN</a> DE]</div>
  1338. <ul>
  1339. <code>getstate &lt;devspec&gt;</code>
  1340. <br><br>
  1341. Gibt einen kurzen, durch Leerzeichen getrennte Statusliste f&uuml;r &lt;devspec&gt;
  1342. aus . Dies ist n&uuml;tzlich, um das Ger&auml;t in z.B. Cacti zu beobachten.<br>
  1343. Beispiel:
  1344. <ul><code>
  1345. getstate lamp<br>
  1346. state:1<br>
  1347. <br>
  1348. getstate fl<br>
  1349. ack:0 actuator:2 day-temp:21.5 desired-temp:22.5 [...] measured-temp:22.9 [...]
  1350. </code></ul>
  1351. Bemerkung: Um diesen Befehl nutzen zu k&ouml;nnen, kopieren Sie bitte&nbsp; die
  1352. Datei 99_getstate.pm aus dem Verzeichnis contrib/getstate/ in Ihr FHEM
  1353. Verzeichnis.
  1354. <br>
  1355. </ul>
  1356. <!-- getstate end -->
  1357. <a name="include"></a>
  1358. <h3>include</h3>
  1359. <div class='langLinks'>[<a href='commandref.html#include'>EN</a> DE]</div>
  1360. <ul>
  1361. <code>include &lt;filename&gt;</code> <br>
  1362. <br>
  1363. Liest (z.B. als Befehlszeile in der fhem.cfg) die in &lt;filename&gt;
  1364. angegebene Datei in FHEM ein und interpretiert jede Dateizeile als FHEM
  1365. Befehl. Dieses Befehl sollte nur von Experten verwendet werden.
  1366. <br>
  1367. </ul>
  1368. <!-- include end -->
  1369. <a name="inform"></a>
  1370. <h3>inform</h3>
  1371. <div class='langLinks'>[<a href='commandref.html#inform'>EN</a> DE]</div>
  1372. <ul>
  1373. <code>inform {on|off|timer|raw} [regexp]</code> <br>
  1374. <br>
  1375. Erm&ouml;glicht Event-Verfolgung &uuml;ber das telnet Interface. Es ist das
  1376. telnet Equivalent des FHEMWEB Event-Monitors, es kann aber auch von weiteren
  1377. Programmen zur Benachrichtigung verwendet werden. Optionen:<br>
  1378. <ul>
  1379. <li>on<br>
  1380. aktiviert die Benachrichtigung.</li>
  1381. <li>onWithState<br>
  1382. zeigt auch das zus&auml;tzliche state Event</li>
  1383. <li>off<br>
  1384. deaktiviert die Benachrichtigung (sowohl Events wie auch Logs, s.u.)</li>
  1385. <li>raw<br>
  1386. zeigt (nur) die raw Events der physikalischen Module</li>
  1387. <li>timer<br>
  1388. stellt der Daten ein Zeitstempel vor</li>
  1389. <li>log<br>
  1390. zeigt die vom FHEM Log Interface protokollierten Daten</li>
  1391. <li>status<br>
  1392. zeigt den aktuellen Status</li>
  1393. </ul>
  1394. <br>
  1395. </ul>
  1396. <!-- inform -->
  1397. <a name="list"></a>
  1398. <h3>list</h3>
  1399. <div class='langLinks'>[<a href='commandref.html#list'>EN</a> DE]</div>
  1400. <ul>
  1401. <code>list [devspec] [value]</code><br>
  1402. oder<br>
  1403. <code>list {-r|-R} devspec</code><br>
  1404. <br><br>
  1405. Auflistung aller &quot;definitions&quot;, &quot;notify&quot; und
  1406. &quot;at&quot;-Definitionen. Dies ist eines der wenigen Befehle, die im
  1407. Normalfall eine Zeichenkette ausgeben.<br> Siehe den Abschnitt &uuml;ber <a
  1408. href="#devspec">Ger&auml;te-Spezifikation</a> f&uuml;r Details der
  1409. &lt;devspec&gt;.<br>
  1410. <br> Wenn value angegeben ist, der von ( DEF, TYPE, usw) oder reading
  1411. (actuator, measured-temp) f&uuml;r alle Ger&auml;te die in devspec angegeben
  1412. sind. <br><br> Beispiel:
  1413. <pre><code>fhem&gt; list
  1414. Type list <name> for detailed info.
  1415. Internal:
  1416. global (Internal)
  1417. FHZ:
  1418. FHZ (fhtbuf: 23)
  1419. FS20:
  1420. Btn4 (on-old-for-timer)
  1421. Roll1 (on)
  1422. Stehlampe (off)
  1423. FHT:
  1424. fl (measured-temp: 21.1 (Celsius))
  1425. KS300:
  1426. out1 (T: 2.9 H: 74 W: 2.2 R: 8.2 IR: no)
  1427. at:
  1428. at_rollup (Next: 07:00:00)
  1429. notify:
  1430. ntfy_btn4 (active)
  1431. FileLog:
  1432. avglog (active)
  1433. </name></code></pre>
  1434. Wenn Sie f&uuml;r <code>name</code> einen Ger&auml;tenamen eingeben, dann
  1435. erhalten Sie einen genauen Status f&uuml;r das in<code> name</code>
  1436. angegebene Ger&auml;t angezeigt, z.B.:
  1437. <pre><code> fhem&gt; list fl
  1438. Internals:
  1439. CODE 5102
  1440. DEF 5102
  1441. NAME fl
  1442. NR 15
  1443. STATE measured-temp: 21.1 (Celsius)
  1444. TYPE FHT
  1445. IODev FHZ
  1446. Attributes:
  1447. room Heizung
  1448. Readings:
  1449. 2006-11-02 09:45:56 actuator 19%
  1450. [...]
  1451. </code></pre>
  1452. Mit der -r (raw) Option werden die Daten in einem f&uuml;r fhem.cfg bzw.
  1453. fhem.state passenden Format generiert. -R liefert diese Daten auch f&uuml;r
  1454. alle von diesem Ger&auml;t vermutlich ben&ouml;gten Ger&auml;te.
  1455. Achtung: die Bestimmung dieser Liste ist ungenau.
  1456. </ul>
  1457. <!-- list end -->
  1458. <a name="modify"></a>
  1459. <h3>modify</h3>
  1460. <div class='langLinks'>[<a href='commandref.html#modify'>EN</a> DE]</div>
  1461. <ul>
  1462. <code>modify &lt;name&gt; &lt;type-dependent-options&gt;</code>
  1463. <br><br>
  1464. Dieser Befehl wird benutzt, um Definitionen zu ver&auml;ndern. Er ist
  1465. n&uuml;tzlich, um <a href="#at">at</a> oder <a href="#notify">notify</a>
  1466. Definitionen zu ver&auml;ndern. Wenn Sie einen Wert einer an Definition
  1467. ver&auml;ndern, dann wird nur der f&uuml;r die Zeit zust&auml;ndige Teil
  1468. ge&auml;ndert. Im Falle der Ver&auml;nderung einer Definition vom Typ
  1469. &quot;notify&quot; wird nur der&nbsp; regex Teil ge&auml;ndert. Alle anderen
  1470. Werte (Stati, Attribute,&nbsp; etc) bleiben erhalten.
  1471. After modify, the global event "MODIFIED" will be generated.
  1472. Nach der Durchf&uuml;hrung das globale Ereignis "MODIFIED" wird generiert.
  1473. <br><br>
  1474. Beispiel:
  1475. <ul>
  1476. <code>define lampon at 19:00 set lamp on</code><br>
  1477. <code>modify lampon *19:00</code><br>
  1478. <code>modify lampon 19:00 set lamp on-for-timer 16</code><br>
  1479. </ul>
  1480. </ul>
  1481. <!-- modify end -->
  1482. <a name="quit"></a>
  1483. <h3>quit</h3>
  1484. <div class='langLinks'>[<a href='commandref.html#quit'>EN</a> DE]</div>
  1485. <ul>
  1486. <code>quit</code>
  1487. <br><br>
  1488. Dieser Befehl wird in einer TCP/IP Session benutzt um die Client-Sitzung zu
  1489. beenden.<br>
  1490. Wird dieser Befehl in einem Skript benutzt, wird das abarbeiten des Skriptes
  1491. beendet.
  1492. <br><br>
  1493. Beispiel:
  1494. <ul>
  1495. <code>quit</code>
  1496. </ul>
  1497. </ul>
  1498. <!-- quit end -->
  1499. <a name="reload"></a>
  1500. <h3>reload</h3>
  1501. <div class='langLinks'>[<a href='commandref.html#reload'>EN</a> DE]</div>
  1502. <ul>
  1503. <code>reload &lt;module&gt;</code>
  1504. <br><br>
  1505. Reload the given module from the module directory. It is a convenient way to
  1506. test modules whithout restarting the program.
  1507. <br><br>
  1508. Example:
  1509. <ul>
  1510. <code>reload 99_PRIV</code>
  1511. </ul>
  1512. </ul>
  1513. <!-- reload end -->
  1514. <a name="rename"></a>
  1515. <h3>rename</h3>
  1516. <div class='langLinks'>[<a href='commandref.html#rename'>EN</a> DE]</div>
  1517. <ul>
  1518. <code>rename &lt;oldname&gt; &lt;newname&gt;</code>
  1519. <br><br>
  1520. Benennt ein Ger&auml;t von &lt;oldname&gt; in &lt;newname&gt;,
  1521. einschliesslich der Attribute, um. Das globale Ereignis &quot;RENAMED&quot;
  1522. wird erstellt, Lesen Sie bitte den Abschnitt &quot;notify&quot; durch um
  1523. Details zu erfahren.
  1524. <br><br>
  1525. Beispiel:
  1526. <ul>
  1527. <code>rename FHT_1234 fht.kitchen</code>
  1528. </ul>
  1529. </ul>
  1530. <!-- rename end -->
  1531. <a name="rereadcfg"></a>
  1532. <h3>rereadcfg</h3>
  1533. <div class='langLinks'>[<a href='commandref.html#rereadcfg'>EN</a> DE]</div>
  1534. <ul>
  1535. <code>rereadcfg [fhem-config-file]</code>
  1536. <br><br>
  1537. Liest entweder die aktuelle Konfigurationsdatei oder die angegebene Datei
  1538. ein.<br> Der Ablauf ist dabei wie folgt:&nbsp; Zuerst wird das <a
  1539. href="#statefile">statefile</a> gesichert. Dann werden alle Ger&auml;te
  1540. gel&ouml;scht. Dann wird die aktuelle Konfigurationsdatei (oder die
  1541. angegebene Datei) eingelesen zuletzt wird das statefile neu eingelesen.<br>
  1542. Wenn dieser Ablauf abgeschlossen ist, wird das globale REREADCFG Ereignis
  1543. ausgel&ouml;st. Alle existierenden Verbindungenwerden bis zum
  1544. &quot;rereadcfg&quot; Ereignis getrennt.
  1545. <br><br>
  1546. Beipiel:
  1547. <ul>
  1548. <code>rereadcfg</code>
  1549. </ul>
  1550. </ul>
  1551. <!-- rereadcfg end -->
  1552. <a name="save"></a>
  1553. <h3>save</h3>
  1554. <div class='langLinks'>[<a href='commandref.html#save'>EN</a> DE]</div>
  1555. <ul>
  1556. <code>save [&lt;configfile&gt;]</code>
  1557. <br><br>
  1558. Sichert zuerst das <a href="#statefile">statefile</a> und dann das
  1559. <a href="#configfile">configfile</a>. Wenn ein Parameter angegeben wird dieser
  1560. anstelle der allgemeinen Konfigurationsdatei benutzt.<br><br>
  1561. Hinweise:
  1562. <ul>
  1563. <li>Der Befehl speichert nur &quot;definitions&quot; und
  1564. &quot;attributes&quot; aber keine (set/get) Befehle die vorher Teil der
  1565. Konfigurationsdatei waren. Wenn Sie solche Befehle nach der
  1566. Initialisierung (z.B. <a href="#FHZset">FHTcode</a>)
  1567. ben&ouml;tigen,dann m&uuml;ssen Sie sie mit <a href="#notify">notify</a>
  1568. triggern wenn das INITIALIZED Ereignis eintritt.</li>
  1569. <li>Der Befehl &quot;save&quot; versucht Kommentarzeilen&nbsp; (Zeilen die
  1570. mit # beginnen) und &quot;include&quot;-Zeilen zu erhalten, aber arbeitet
  1571. nicht korrekt wenn FHEM f&uuml;r diese Dateien keine Schreibrechte
  1572. besitzt.</li>
  1573. <li>Vor dem &Uuml;berschreiben der Dateien wird die alte Version gesichert,
  1574. siehe <a href="#restoreDirs">restoreDirs</a> f&uuml;r Einzelheiten.</li>
  1575. </ul>
  1576. </ul>
  1577. <!-- save end -->
  1578. <a name="set"></a>
  1579. <h3>set</h3>
  1580. <div class='langLinks'>[<a href='commandref.html#set'>EN</a> DE]</div>
  1581. <ul>
  1582. <code>set &lt;devspec&gt; &lt;type-specific&gt;</code>
  1583. <br><br>
  1584. Der Befehl setzt Ger&auml;teparameter/sendet Signale an ein Ger&auml;t. Sie
  1585. erhalten eine Liste verf&uuml;gbarer Parameter wenn Sie folgendes eingeben:
  1586. <ul>
  1587. <code>set &lt;name&gt; ?</code>
  1588. </ul>
  1589. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1590. f&uuml;r Details der &lt;devspec&gt;.<br>
  1591. Der &quot;set&quot;-Befehl gibt nur bei Fehler einen Wert zur&uuml;ck.
  1592. <br><br>
  1593. Jedes Ger&auml;t hat verschiedene Parameter die mit &quot;set&quot; gesetzt
  1594. werden k&ouml;nnen. Lesen Sie bitte den entsprechenden Abschnitt f&uuml;r
  1595. das Ger&auml;t f&uuml;r Details durch.
  1596. <br><br>
  1597. Ab featurelevel 5.7 ersetzt der set und setreading Befehl
  1598. <ul>
  1599. <li>[device:name] mit dem Wert des Readings, Internals oder Attributes
  1600. f&uuml;r device, falls sowohl device, als auch Reading, Internal oder
  1601. Attribut existiert, und nicht leer ist.
  1602. <ul>
  1603. <li>Man kann einen der Pr&auml;fixe r:, i: oder a: verwenden, um die
  1604. Suche einzuschr&auml;nken, genau wie im devspec.</li>
  1605. <li>Das Suffix :d extrahiert die erste Zahl.</li>
  1606. <li>Das Suffix :i extrahiert die erste Zahl als Ganzzahl.</li>
  1607. <li>Das Suffix :r&lt;n&gt; extrahiert die erste Zahl, und rundet sie auf
  1608. &lt;n&gt; Dezimalstellen. Falls &lt;n&gt; fehlt, dann wird auf eine
  1609. Dezimalstelle gerundet.</li>
  1610. <li>Das Suffix :t liefert den Zeitstempel des Readings</li>
  1611. <li>Das Suffix :sec liefert Anzahl der Sekunden seit &Auml;nderung
  1612. des Readings.</li>
  1613. </ul>
  1614. Beispiel:
  1615. <ul>
  1616. set Lamp blink [blinkDummy:number] [r:blinkDummy:duration:d]
  1617. </ul>
  1618. </lu>
  1619. <li>{(perlExpression)} mit dem Ergebnis der perlExpression.
  1620. $DEV wird dabei mit dem Namen des vom set betroffenen Ger&auml;tes ersetzt.
  1621. </li>
  1622. </ul>
  1623. Diese Ersetzungen sind unter dem Namen "set magic" bekannt.
  1624. <br><br>
  1625. <a name="setExtensions"></a>
  1626. Manche Module unterst&uuml;tzen die sog. <b>set extensions</b>, und in der
  1627. entsprechenden Dokumentation ist ein Link auf diesem Text zu finden. Falls im
  1628. Modul selber einer der unten aufgef&uuml;hrten Befehle implementiert ist, dann
  1629. wird die Modul-Implementation verwendet.
  1630. <ul>
  1631. <li>on-for-timer &lt;sekunden&gt<br>
  1632. Das Ger&auml;t wird per "on" eingeschaltet, und ein interner Zeitgeber
  1633. wird erstellt, um nach &lt;sekunden&gt; ein "off" Kommando
  1634. auszuf&uuml;hren. Um diesen Zeitgeber zu entfernen sollte man das
  1635. Kommando mit dem Argument 0 erneut aufrufen. Achtung: dieser Zeitgeber
  1636. wird bei einem restart nicht gespeichert.</li>
  1637. <li>off-for-timer &lt;sekunden&gt<br>
  1638. siehe on-for-timer.</li>
  1639. <li>on-till &lt;timedet&gt<br>
  1640. Das Ger&auml;t wird per "on" eingeschaltet, und ein at Instanz wird
  1641. definiert, um es um &lt;timedet&gt; (Format: HH:MM[:SS]) per off
  1642. auszuschalten. Diese at Instanz ist sichtbar unter dem Namen
  1643. ger&auml;teName+"_till". Um das Ausschalten zu deaktivieren
  1644. l&ouml;scht man diese at Definition. Achtung: das Ein/Ausschalten wird
  1645. nicht durchgef&uuml;hrt, falls die aktuelle Uhrzeit nach der
  1646. spezifizierten Zeit ist, um folgende Szenarien zu vereinfachen:
  1647. <ul><code>
  1648. define morningLight at *06:00 set Lamp on-till {sunrise()}
  1649. </code></ul>
  1650. </li>
  1651. <li>on-till-overnight &lt;timedet&gt<br>
  1652. Wie on-till, aber die aktuelle Uhrzeit wird nicht mit der
  1653. Spezifizierten verglichen, damit folgendes funktioniert:
  1654. <ul><code>
  1655. define nightLight at *{sunset()} set Lamp on-till-overnight 01:00
  1656. </code></ul>
  1657. </li>
  1658. <li>off-till &lt;timedet&gt<br>
  1659. siehe on-till.</li>
  1660. <li>off-till-overnight &lt;timedet&gt<br>
  1661. siehe on-till-overnight.</li>
  1662. <li>blink &lt;anzahl&gt; &lt;blink-periode&gt;<br>
  1663. Das Ger&auml;t wird mit "on" f&uuml;r die &lt;blink-periode&gt;
  1664. eingeschaltet, und das wird nach &lt;blink-periode&gt; wiederholt. Um
  1665. das Blinken vorzeitig zu stoppen spezifiziert man "0 0" als
  1666. Argument.</li>
  1667. <li>intervals &lt;from1&gt;-&lt;till1&gt; &lt;from2&gt;-&lt;till2&gt;...
  1668. </br>
  1669. Das Ger&auml;t wird f&uuml;r die spezifizierten Intervalle
  1670. eingeschaltet. Die einzelnen Intervalle sind Leerzeichen getrennt, und
  1671. ein Intervall besteht aus zwei Zeitspezifikationen, die mit einem "-"
  1672. getrennt sind.
  1673. </li>
  1674. <li>toggle<br>
  1675. Das Ger&auml;t wird mit "on" eingeschaltet, falls STATE "off" ist (oder
  1676. dim 0), sonst wird es mit "off" ausgeschaltet.
  1677. </ul>
  1678. Beispiele:
  1679. <ul>
  1680. <code>
  1681. set switch on-for-timer 12.5<br>
  1682. set switch on-till {sunset()}<br>
  1683. set switch blink 3 1<br>
  1684. set switch intervals 08:00-12:00 13:00-18:00<br>
  1685. </code>
  1686. </ul>
  1687. </ul>
  1688. </ul>
  1689. <!-- set end -->
  1690. <a name="setdefaultattr"></a>
  1691. <h3>setdefaultattr</h3>
  1692. <div class='langLinks'>[<a href='commandref.html#setdefaultattr'>EN</a> DE]</div>
  1693. <ul>
  1694. <code>setdefaultattr [&lt;attrname&gt; [&lt;value&gt;]] </code><br>
  1695. <br>
  1696. F&uuml;gt Sie ein Standardattribut hinzu. Jedem nach dieser Zuweisung definierte
  1697. Ger&auml;t wird dieses Attribut zugewiesen. Wenn kein "attrname" angegeben wird,
  1698. dann wird die Liste der Standardattribute gel&ouml;scht.
  1699. <br><br>
  1700. Beispiel, um das Attribut "room kitchen" und "loglevel 4" allen Lampen
  1701. zuzuweisen:
  1702. <ul>
  1703. <code>setdefaultattr room kitchen</code><br>
  1704. <code>setdefaultattr loglevel 4</code><br>
  1705. <code>define lamp1 FS20 1234 11</code><br>
  1706. <code>define lamp2 FS20 1234 12</code><br>
  1707. <code>define lamp3 FS20 1234 13</code><br>
  1708. <code>setdefaultattr</code><br>
  1709. </ul>
  1710. <br>
  1711. Anmerkungen:<br>
  1712. <ul>
  1713. <li>es gibt keine M&ouml;glichkeit, ein einzelnes Standardattribut aus der Liste
  1714. tu l&ouml;schen.</li>
  1715. </ul>
  1716. </ul>
  1717. <!-- setdefaultattr end -->
  1718. <a name="setreading"></a>
  1719. <h3>setreading</h3>
  1720. <div class='langLinks'>[<a href='commandref.html#setreading'>EN</a> DE]</div>
  1721. <ul>
  1722. <code>setreading &lt;devspec&gt; &lt;reading&gt; &lt;value&gt;</code>
  1723. <br><br>
  1724. Der Befehl setzt das Reading &lt;reading&gt; auf den Wert &lt;value&gt; ohne
  1725. Signale an das betroffene Ger&auml;t zu senden, generiert aber Ereignisse und
  1726. die &uuml;bliche eventMap und stateFormat Umwandlung wird auch
  1727. durchgef&uuml;hrt.
  1728. <br>
  1729. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1730. f&uuml;r Details der &lt;devspec&gt; und die Beschreibung des set Befehls
  1731. f&uuml;r Ersetzung.<br>
  1732. <br>
  1733. Beispiel:
  1734. <ul>
  1735. setreading lampe state on
  1736. </ul>
  1737. Achtung: setreading generiert kein Event f&uuml;r ein Ger&auml;t X, falls es
  1738. aus einem notify f&uuml;r Ger&auml;t X aufgerufen wurde. In so einem Fall
  1739. k&ouml;nnte man auf "sleep 0.1; setreading X Y Z" ausweichen.
  1740. </ul>
  1741. <!-- setreading end -->
  1742. <a name="setstate"></a>
  1743. <h3>setstate</h3>
  1744. <div class='langLinks'>[<a href='commandref.html#setstate'>EN</a> DE]</div>
  1745. <ul>
  1746. <code>setstate &lt;devspec&gt; &lt;value&gt;</code>
  1747. <br><br>
  1748. Der Befehl setzt den STATE Eintrag des Ger&auml;tes direkt, ohne Ereignisse
  1749. zu generieren oder ein Signal an das Ger&auml;t zu senden. Dieser Eintrag ist
  1750. ma&szlig;gebend f&uuml;r die Status-Anzeige in diversen Frontends. Dieser
  1751. Befehl wird auch im <a href="#statefile">statefile</a> benutzt.<br> Siehe den
  1752. Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a> f&uuml;r
  1753. Details der &lt;devspec&gt;.<br> <br>
  1754. Beispiel:
  1755. <ul>
  1756. setstate lampe An
  1757. </ul>
  1758. </ul>
  1759. <!-- setstate end -->
  1760. <a name="shutdown"></a>
  1761. <h3>shutdown</h3>
  1762. <div class='langLinks'>[<a href='commandref.html#shutdown'>EN</a> DE]</div>
  1763. <ul>
  1764. <p>
  1765. <code>shutdown [<var>restart</var>] [<var>exitValue</var>]</code>
  1766. </p>
  1767. <p>
  1768. Der Befehl f&auml;hrt <abbr>FHEM</abbr> herunter (nach dem Sichern aller <a
  1769. href="#statefile">Ger&auml;testatus</a>). Er triggert den <code>global:SHUTDOWN</code>-<span lang="en">Event</span>.
  1770. Mit dem optionalen Parameter <var lang="en">restart</var> startet <abbr>FHEM</abbr> danach neu.
  1771. Der <var lang="en">exitValue</var> ist mĂśglicherweise bei bestimmten Start-Skripten zur korrekten Funktion
  1772. vonn&ouml;ten <abbr>bzw.</abbr> wichtig.
  1773. </p>
  1774. Beispiel:
  1775. <ul>
  1776. <code>shutdown</code><br>
  1777. <code>shutdown restart</code><br>
  1778. <code>shutdown 1</code>
  1779. </ul>
  1780. </ul>
  1781. <!-- shutdown end -->
  1782. <a name="sleep"></a>
  1783. <h3>sleep</h3>
  1784. <div class='langLinks'>[<a href='commandref.html#sleep'>EN</a> DE]</div>
  1785. <ul>
  1786. <code>sleep &lt;sec&gt; [&lt;id&gt;] [quiet]</code>
  1787. <br><br>
  1788. sleep gefolgt von weiteren Befehlen ist vergleichbar mit einem namenlosen <a
  1789. href="#at">at</a> Kommando, es f&uuml;hrt die nachfolgenden Befehle aus,
  1790. nachdem es die spezifizierte Zeitspanne gewartet hat. Die Einheit ist
  1791. Sekunde, Millisekunden genau, da man Nachkommastellen spezifizieren
  1792. kann.<br><br>
  1793. Ein sleep mit einer &lt;id&gt; ersetzt ein sleep mit der gleichen &lt;id&gt;
  1794. and can mit <a href="#cancel">cancel</a> entfernt werden.
  1795. Falls sleep in at/notify/etc aufgerufen wurde, und die nachfolgenden
  1796. Kommandos einen nicht leeren Text zur&uuml;ckgeliefert haben, dann wird
  1797. dieser Text mit loglevel 2 protokolliert.<br>
  1798. quiet vermeidet diese Protokollierung.
  1799. <br><br>
  1800. Beispiele:
  1801. <ul>
  1802. <code>sleep 0.5</code><br>
  1803. <code>define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp
  1804. toggle</code><br>
  1805. <code>define a3 at +*00:05 set Windsensor 1w_measure;; sleep 2 quiet;; get
  1806. Windsensor 1w_temp</code>
  1807. </ul>
  1808. <br>
  1809. Bemerkung: falls sleep von keinem Befehl gefolgt wird, dann wird FHEM
  1810. blockiert. Das ist unerw&uuml;nscht, und im FHEM-Log wird eine Warnung
  1811. protokolliert.
  1812. </ul>
  1813. <!-- sleep end -->
  1814. <a name="trigger"></a>
  1815. <h3>trigger</h3>
  1816. <div class='langLinks'>[<a href='commandref.html#trigger'>EN</a> DE]</div>
  1817. <ul>
  1818. <code>trigger &lt;devspec&gt; &lt;event&gt;</code>
  1819. <br><br>
  1820. Generiert das Ereignis &lt;event&gt;, was z.Bsp. ein <a
  1821. href="#notify">notify</a> ansto&szlig;en kann, oder den FileLog zum
  1822. protokollieren dieser Zeile bewegen kann.<br>
  1823. Siehe den Abschnitt &uuml;ber <a href="#devspec">Ger&auml;te-Spezifikation</a>
  1824. f&uuml;r Details der &lt;devspec&gt;.<br>
  1825. <br>
  1826. Beispiel:
  1827. <ul>
  1828. <code>trigger btn3 on</code>
  1829. </ul>
  1830. </ul>
  1831. <!-- trigger end -->
  1832. <!-- commands end - diese Zeile nicht entfernen! -->
  1833. <a name="global"></a>
  1834. <h3>global</h3>
  1835. <div class='langLinks'>[<a href='commandref.html#global'>EN</a> DE]</div>
  1836. <ul>
  1837. Das &quot;global&quot; Ger&auml;t wird benutzt, um allgemeing&uuml;ltige
  1838. Attribute zu setzen. Es wird automatisch erstellt und kann nicht
  1839. gel&ouml;scht oder umbenannt werden. Es hat keine &quot;set&quot; oder
  1840. &quot;get&quot; Parameter.<br>
  1841. <br>
  1842. <b>Define</b><ul>N/A</ul><br>
  1843. <b>Set </b><ul>N/A</ul><br>
  1844. <b>Get</b><ul>N/A</ul><br>
  1845. <b>Attributes</b>
  1846. <ul>
  1847. <li><a href="#archivedir">archivedir</a></li>
  1848. <li><a href="#archivecmd">archivecmd</a></li>
  1849. <li><a href="#nrarchive">nrarchive</a></li>
  1850. <a name="archivesort"></a>
  1851. <li>archivesort<br>
  1852. archivesort kann auf dem (voreingestellten) Wert alphanum oder timestamp
  1853. gesetzt werden, und bestimmt die Methode f&uuml;r die
  1854. Reihenfolgenberechnung der Dateien f&uuml;r nrarchive.<br>
  1855. </li><br>
  1856. <a name="autoload_undefined_devices"></a>
  1857. <li>autoload_undefined_devices<br>
  1858. wenn dieses Attribut gesetzt ist, werden die zu einer neu empfangenen
  1859. Nachricht zugeh&ouml;rigen Module automatisch geladen.&nbsp; Dies
  1860. erfolgt vom <a href="#autocreate"> autocreate</a> Ger&auml;t, um so
  1861. automatisch ein FHEM-Ger&auml;t bei erreichen einer entsprechenden
  1862. Nachricht zu erstellen.
  1863. </li><br>
  1864. <a name="backupcmd"></a>
  1865. <li>backupcmd<br>
  1866. Sie k&ouml;nnen das Update durch Ihre eigenen Befehle/Skripts
  1867. durchf&uuml;hren indem Sie dieses Attribut setzen. Wenn dieses
  1868. Attribut gesetzt ist, dann startet es als ein SHELL-Befehl und erstellt
  1869. eine durch Leerzeichen getrennte Liste von Dateien/Verzeichnissen als
  1870. <strong>ein</strong> Argument zum Befehl, z.B.:
  1871. <br>
  1872. <ul>
  1873. <code>"/etc/fhem.cfg /var/log/fhem/fhem.save /usr/share/fhem/contrib
  1874. /usr/share/fhem/FHEM /usr/share/fhem/foo /usr/share/fhem/foobar
  1875. /usr/share/fhem/www"</code>
  1876. </ul>
  1877. Bemerkung: Ihr Befehl/Skript muss die Zeichenkette "backup done"
  1878. zur&uuml;ckgeben oder eine entsprechende Zeichenkette um
  1879. Fehlermeldungen auszugeben, damit die Zusammenarbeit mit update
  1880. funktioniert!<br> Dieses Attribut wird vom <a href="#backup">backup</a>
  1881. Befehl benutzt.<br>
  1882. Beispiel:<br>
  1883. <ul>
  1884. attr global backupcmd /usr/local/bin/myBackupScript.sh
  1885. </ul>
  1886. </li><br>
  1887. <a name="backupdir"></a>
  1888. <li>backupdir<br>
  1889. Ein Ordner um die komprimierten Sicherheitsdateien zu speichern.
  1890. Dieses Attribut wird vom <a href="#backup">backup</a> Befehl
  1891. benutzt.<br> Beispiel:<br>
  1892. <ul>
  1893. attr global backupdir /Volumes/BigHD
  1894. </ul>
  1895. </li><br>
  1896. <a name="backupsymlink"></a>
  1897. <li>backupsymlink<br>
  1898. Wenn dieses Attribut auf etwas anderes als "no", dann unterst&uuml;tzt
  1899. der Archviierungsbefehl &quot;tar&quot; symbolische Links in Ihrem
  1900. Backup. Andererseits, wenn dieses Attribut auf "no" gesetzt ist werden
  1901. symbolische Links vom Befehl &quot;tar&quot; ignoriert. Dieses
  1902. Attribut wird vom <a href="#backup">backup</a> Befehl benutzt.<br>
  1903. Beispiel:<br>
  1904. <ul>
  1905. attr global backupsymlink yes
  1906. </ul>
  1907. </li><br>
  1908. <a name="blockingCallMax"></a>
  1909. <li>blockingCallMax<br>
  1910. Begrenzt die Anzahl der parallel laufenden Prozesse, die von der
  1911. BlockingCall FHEM Hilfsroutine gestartet wurden. Sinnvoll auf weniger
  1912. leistungsfaehigen Hardware.
  1913. </li><br>
  1914. <a name="configfile"></a>
  1915. <li>configfile<br>
  1916. Enth&auml;lt den Namen der FHEM Konfigurationsdatei. Wenn <a
  1917. href="#save">save</a> ohne Argumente aufgerufen wird dann wird die
  1918. Ausgabedatei unter diesem Dateinamen gespeichert.
  1919. </li><br>
  1920. <a name="commandref"></a>
  1921. <li>commandref<br>
  1922. Falls der Wert "full" (die Voreinstellung) ist, dann wird nach jedem
  1923. update ein komplettes commandref.html generiert. Falls der Wert
  1924. "modular" ist, dann wird die Moduldokumentation erst nach Bedarf
  1925. waehrend der Laufzeit per JavaScript geladen.
  1926. </li><br>
  1927. <a name="dnsHostsFile"></a>
  1928. <li>dnsHostsFile<br>
  1929. Falls dnsServer gesetzt ist, wird die angegebene Datei nach dem
  1930. Hostnamen durchsucht. Um die vom System verwendete Datei zu benutzen,
  1931. ist es unter Linux/Unix/OSX auf /etc/hosts und unter Windows auf
  1932. C:\windows\system32\drivers\etc\hosts zu setzen. Achtung: es wird nur
  1933. IPv4 unterst&uuml;tzt.
  1934. </li><br>
  1935. <a name="dnsServer"></a>
  1936. <li>dnsServer<br>
  1937. Enth&auml;lt die IP Adresse des DNS Servers. Die von bestimmten Modulen
  1938. (oder eigenen Code) aufgerufene HttpUtils_NonblockingGet wird auch bei
  1939. der DNS Aufl&ouml;sung nicht mehr blockieren, falls dieses Attribut
  1940. gesetzt ist, da es in diesem Fall FHEM eigene Routinen aufgerufen
  1941. werden. Sonst werden die OS-eigenen, blockierenden Routinen inet_aton
  1942. bzw gethostbyname aufgerufen.
  1943. </li><br>
  1944. <a name="featurelevel"></a>
  1945. <li>featurelevel<br>
  1946. Aktiviere bzw. deaktiviere bestimmte alte oder neue Funktionen, basierend
  1947. auf die FHEM Version. Z.Bsp. das $value hash f&uuml;r notify wird nur bis featurelevel 5.6
  1948. bef&uuml;llt, da es unerw&uuml;nscht ist. Stattdessen sollte man die
  1949. Value() Funktion verwenden.
  1950. </li><br>
  1951. <a name="holiday2we"></a>
  1952. <li>holiday2we<br>
  1953. Wenn dieses Attribut gesetzt wurde, dann wird die <a
  1954. href="#perl">$we</a> Variable als &quot;true&quot; betrachtet, wenn der
  1955. Wert der <a href="#holiday">holiday</a> Variable zu diesem Attribut
  1956. nicht &quot;none&quot; ist.<br>
  1957. Falls es eine Komma getrennte Liste ist, dann ist es wahr, falls einer
  1958. der referenzierten Instanzen nicht &quot;none&quot; ist.<br>
  1959. Beispiel:<br>
  1960. <ul>
  1961. attr global holiday2we hessen
  1962. </ul>
  1963. </li><br>
  1964. <a name="httpcompress"></a>
  1965. <li>httpcompress<br>
  1966. das HttpUtils Modul wird von etlichen FHEM modulen verwendet und
  1967. aktiviert Komprimierung in der Voreinstellung. Falls man
  1968. httpcompress auf 0 setzt, wird die Komprimierung deaktiviert.
  1969. </li><br>
  1970. <a name="keyFileName"></a>
  1971. <li>keyFileName<br>
  1972. FHEM Module speichern Passw&ouml;rter und IDs in der Datei
  1973. FHEM/FhemUtils/uniqueID. Um mehrere FHEM-Instanzen im gleichen
  1974. Verzeichnis starten zu k&ouml;nnen, kann man dieses Attribut setzen,
  1975. dessen Wert an FHEM/FhemUtils/ angeh&auml;ngt wird.
  1976. </li><br>
  1977. <a name="logdir"></a>
  1978. <li>logdir<br>
  1979. Falls gesetzt, wird %L in dem logfile Attribut (oder in der Dateinamen
  1980. Spezifikation des FileLog Moduls) durch den Wert des Attributes ersetzt.
  1981. Achtung: &auml;ndern des Wertes bewirkt nicht das Verschieben bereits
  1982. erstellter Dateien, und kann zu diversen Problemen f&uuml;hren.
  1983. </li><br>
  1984. <a name="logfile"></a>
  1985. <li>logfile<br>
  1986. Gibt das Logfile an, in welches gespeichert werden soll.&nbsp; Sie
  1987. k&ouml;nnen "-" f&uuml;r die Ausgabe in das stdout-Ger&auml;t. In
  1988. diesem Fall stellt sich der Server nicht selbst in den Hintergrund.<br>
  1989. Der Name der Logdatei kann auch &quot;wildcards&quot; enthalten, um
  1990. eine einfachere Abfolge f&uuml;r die Dateien zu erreichen. Lesen Sie
  1991. bitte den Abschnitt <a href="#FileLog">FileLog</a>. F&uuml;gen Sie die
  1992. Attribute <code>archivecmd / archivedir / nrarchive</code> zum
  1993. <code>global</code> Ger&auml;t hinzu wie Sie es auch bei einem FileLog
  1994. device tun k&ouml;nnten.<br> Sie k&ouml;nnen den Namen der Logdatei
  1995. mit&nbsp; <code>{ $currlogfile }festlegen</code>.
  1996. </li><br>
  1997. <a name="modpath"></a>
  1998. <li>modpath<br>
  1999. Mit modpath geben Sie den Pfad zu dem Verzeichnis der <code>FHEM</code>
  2000. Module an. Der Pfad enth&auml;lt <b>nicht</b> das Verzeichnis FHEM.
  2001. Durch das setzen der Attribute, wird das Verzeichnis nach Dateinamen in
  2002. der Form NN_&lt;NAME&gt;.pm durchsucht, und sie werden f&uuml;r die
  2003. Definition von Ger&auml;ten unter dem Namen &lt;NAME&gt; verf&uuml;gbar
  2004. gemacht. Wenn das erste Ger&auml;t des Typs &lt;NAME&gt; definiert
  2005. wird, werden die entsprechenden Module geladen und in dem Modul die
  2006. entsprechende Funktion mit dem Namen &lt;NAME&gt;_Initialize wird
  2007. aufgerufen. Eine Ausnahme bilden Module die mit der Nummer 99 im
  2008. Dateinamen beginnen. Diese enthalten PERL-Hilfsfunktionen und
  2009. werden zur Startzeit geladen.
  2010. </li><br>
  2011. <a name="motd"></a>
  2012. <li>motd<br>
  2013. Nachricht des Tages. Wird im Begr&uuml;&szligungsbildschirm von FHEM
  2014. angezeigt, oder direkt beim Start einer &quot;telnet&quot; Sitzung,
  2015. bevor der fhem&gt; Prompt erscheint. Der SecurityCheck setzt motd wenn
  2016. es bisher nicht gesetzt ist. Um das zu verhindern, k&ouml;nnen sie den
  2017. Wert von motd auf &quot;none&quot; setzen.
  2018. motd wird auch verwendet, um Fehlermeldungen w&auml;hrend des
  2019. FHEM-Starts zu sammeln und anzuzeigen.
  2020. </li><br>
  2021. <a name="mseclog"></a>
  2022. <li>mseclog<br>
  2023. Wenn dieses Attribut gesetzt ist, enthalten Datums/Zeiteintr&auml;ge
  2024. (timestamp) in der Logdatei einen Millisekunden-Eintrag.
  2025. </li><br>
  2026. <a name="nofork"></a>
  2027. <li>nofork<br>
  2028. Wenn dieses Attribut oder "attr global logfile -" gesetzt ist,
  2029. dann wird FHEM nicht im Hintergrund abgearbeitet.
  2030. Dieses Attribut ist bei einigen FHEM Installationen auf FRITZ!-Boxen
  2031. notwendig, und wid fuer Windows automatisch gesetzt.
  2032. </li><br>
  2033. <a name="pidfilename="></a>
  2034. <li>pidfilename<br>
  2035. Schreibt die PERL Prozess-ID in die angegebene Datei. Der Server
  2036. l&auml;uft als Daemon und einige Distributionen wollen anhand der PID
  2037. testen, ob der FHEM Prozess l&auml;uft. Die Datei wird bei
  2038. Ausf&uuml;hrung des &quot;shutdown&quot;-Kommandos gel&ouml;scht.
  2039. </li><br>
  2040. <a name="proxy"></a>
  2041. <li>proxy<br>
  2042. IP:PORT des proxy Servers, wird von HttpUtils benutzt.
  2043. </li><br>
  2044. <a name="proxyAuth"></a>
  2045. <li>proxyAuth<br>
  2046. Base64 kodiertes Benutzername:Passwort
  2047. </li><br>
  2048. <a name="proxyExclude"></a>
  2049. <li>proxyExclude<br>
  2050. Regexp, um bestimmte Hosts nicht via proxy zu kontaktieren.
  2051. </li><br>
  2052. <a name="restoreDirs"></a>
  2053. <li><a name="restoreDirs">restoreDirs</a><br>
  2054. update sichert jede Datei vor dem &Uuml;berschreiben mit der neuen
  2055. Version aus dem Web. F&uuml;r diesen Zweck wird zuerst ein
  2056. restoreDir/update Verzeichnis in der global modpath Verzeichnis
  2057. angelegt, und danach ein Unterverzeichnis mit dem aktuellen Datum. In
  2058. diesem Verzeichnis werden vor dem &Uuml;berschreiben die alten
  2059. Versionen der Dateien gerettet. Die Voreinstellung ist 3, d.h. die
  2060. letzten 3 Datums-Verzeichnisse werden aufgehoben, und die &auml;lteren
  2061. entfernt.
  2062. <br>
  2063. Auch fhem.cfg und fhem.state wird auf diese Weise vor dem ausf&uuml;ren
  2064. von save gesichert, diesmal in das restoreDir/save Verzeichnis. Zum
  2065. restaurieren der alten Dateien kann man das restore Befehl
  2066. verwenden.<br>
  2067. Falls man den Wert auf 0 setzt, dann ist dieses Feature deaktiviert.
  2068. </li><br>
  2069. <li><a href="#fheminfo">sendStatistics</a><br>
  2070. <a name="statefile"></a>
  2071. <li>statefile<br>
  2072. Dieses Attribut legt den Namen der Datei fest, in die
  2073. Statusinformationen aller Ger&auml;te gespeichert werden&nbsp; bevor der
  2074. Server heruntergefahren wird. Falls diese Datei nicht angegeben wird, so
  2075. werden keinerlei Informationen gesichert.
  2076. </li><br>
  2077. <li><a href="#title">title</a><br>
  2078. <a name="useInet6"></a>
  2079. <li>useInet6<br>
  2080. Die HttpUtils Routinen verwenden IPv6 f&uuml;r die Kommunikation, falls
  2081. der Server eine IPv6 Adresse hat. Achtung: das Perl-Modul
  2082. IO::Socket::INET6 wird ben&ouml;tigt.
  2083. </li><br>
  2084. <a name="userattr"></a>
  2085. <li>userattr<br>
  2086. Enth&auml;lt eine durch Leerzeichen getrennte Liste in welcher die
  2087. Namen zus&auml;tzlicher Attribute aufgef&uuml;hrt sind. Diese
  2088. m&uuml;ssen zuerst in dieser Liste definiert werden, bevor sie
  2089. (bei allen Ger&auml;ten) angewendet werden k&ouml;nnen.<br>
  2090. userattr kann auch f&uuml;r einzelne Ger&auml;te spezifiziert werden,
  2091. um weitere Attribute f&uuml;r diese Ger&auml;te zu definieren.
  2092. </li><br>
  2093. <a name="dupTimeout"></a>
  2094. <li>dupTimeout<br>
  2095. Definert die Wartezeit, nach der 2 identische Ereignisse zweier
  2096. Empf&auml;nger als Duplikat angesehen werden. Voreingestellt sind 0,5
  2097. Sekunden.&nbsp;
  2098. </li><br>
  2099. <a name="showInternalValues"></a>
  2100. <li>showInternalValues<br>
  2101. Attribute/Ger&auml;te-Eintraege/Readings die mit Punkt (.) anfangen
  2102. werden nicht angezeigt, es sei denn das globale Attribut
  2103. showInternalValues ist gesetzt. Diese Variable wird bei dem list und
  2104. xmllist Befehl, und bei der FHEMWEB Raumansicht gepr&uuml;ft.
  2105. </li><br>
  2106. <a name="sslVersion"></a>
  2107. <li>sslVersion<br>
  2108. Setzt die akzeptierten Crypto-Algorithmen im TcpServices Hilfsmodul.
  2109. Die Voreinstellung TLSv12:!SSLv3 wird als sicherer erachtet als die
  2110. vorherige SSLv23:!SSLv3:!SSLv2, aber sie kann Probleme mit nicht
  2111. ausreichend aktualisierten Netzwerk-Diensten verursachen.
  2112. </li><br>
  2113. <a name="stacktrace"></a>
  2114. <li>stacktrace<br>
  2115. Falls gesetzt (auf 1), schreibt ins FHEM-Log zus&auml;tzlich zu jedem
  2116. "PERL WARNING" den stacktrace.
  2117. </li><br>
  2118. <a name="restartDelay"></a>
  2119. <li>restartDelay<br>
  2120. Setzt die Verz&ouml;gerung beim Neustart mit shutdown restart, die
  2121. Voreinstellung ist 2 (Sekunden).
  2122. </li><br>
  2123. <a name="autosave"></a>
  2124. <li>autosave<br>
  2125. Erlaubt manchen Modulen save auszuf&uuml;hren, nach einer automatischen
  2126. &Auml;nderung der Konfiguration, z.Bsp. nachdem ein Ger&auml;t angelegt
  2127. wurde. Die Voreinstellung ist 1 (wahr), man kann es ausschalten, indem
  2128. man den Wert auf 0 setzt.
  2129. </li>
  2130. </ul>
  2131. <br><br>
  2132. <b>Events</b>
  2133. <ul>
  2134. <li>INITIALIZED<br>sobald die Initialization vollst&auml;ndig ist.</li>
  2135. <li>REREADCFG<br>nachdem die Konfiguration erneut eingelesen wurde.</li>
  2136. <li>SAVE<br>bevor die Konfiguration gespeichert wird.</li>
  2137. <li>SHUTDOWN<br>bevor FHEM heruntergefahren wird.</li>
  2138. <li>DEFINED &lt;devname&gt;<br>nach dem Definieren eines
  2139. Ger&auml;tes.</li>
  2140. <li>DELETED &lt;devname&gt;<br>nach dem L&ouml;schen eines
  2141. Ger&auml;tes.</li>
  2142. <li>RENAMED &lt;old&gt; &lt;new&gt;<br>nach dem Umbenennen eines
  2143. Ger&auml;tes.</li>
  2144. <li>UNDEFINED &lt;defspec&gt;<br>beim Auftreten einer Nachricht f&uuml;r
  2145. ein undefiniertes Ger&auml;t.</li>
  2146. <li>MODIFIED &lt;defspec&gt;<br>nach &Auml;nderung einer
  2147. Ger&auml;tedefinition.</li>
  2148. <li>UPDATE<br>nach Abschluss eines Updates.</li>
  2149. </ul>
  2150. </ul>
  2151. <!-- global end - diese Zeile nicht entfernen! -->
  2152. <a name="ABFALL"></a>
  2153. <h3>ABFALL</h3>
  2154. <div class='langLinks'>[<a href='commandref.html#ABFALL'>EN</a> DE]</div>
  2155. <ul>
  2156. <br>
  2157. <a name="ABFALLdefine"></a>
  2158. <b>Define</b>
  2159. <ul>
  2160. <code>define &lt;name&gt; ABFALL &lt;Kalendername&gt;</code><br>
  2161. <code>define &lt;name&gt; ABFALL &lt;Kalendername&gt;,&lt;weiterer Kalendername&gt;</code><br>
  2162. <br>
  2163. Definiert ein Abfall-Device.<br><br>
  2164. Ein Abfall-Device ermittelt, basierend auf einem oder mehreren Kalender-Devices, Termine und stellt verschiedene 'Readings' hierfĂźr bereit.<br>
  2165. Das Perl Modul Date::Parse muss installiert sein!<br>
  2166. </ul>
  2167. <br>
  2168. <a name="ABFALLset"></a>
  2169. <b>Set</b>
  2170. <ul>
  2171. <code>set &lt;name&gt; update</code><br>
  2172. Erzwingt das Auslesen der Kalender-Devices und neuerstellen der Readings.<br><br>
  2173. <code>set &lt;name&gt; count &lt;abfallArt&gt;</code><br>
  2174. Steht nur zur VerfĂźgung wenn das Attribut <code>enable_counting_pickups</code> auf 1 steht.<br>
  2175. ErhĂśht das Reading <code>&lt;abfallArt&gt;_pickups_used</code> um 1, sofern die <code>AbfallArt</code> als Reading existiert.<br><br>
  2176. <code>set &lt;name&gt; clear</code><br>
  2177. Steht nur zur VerfĂźgung wenn das Attribut <code>enable_counting_pickups</code> auf 1 steht.<br>
  2178. LĂśscht alle Readings <code>*_pickups_used</code> und <code>*_pickups</code>
  2179. </ul>
  2180. <br>
  2181. <a name="ABFALLattr"></a>
  2182. <b>Attribute</b>
  2183. <ul>
  2184. <li><code>abfall_clear_reading_regex</code><br>
  2185. regulärer Ausdruck zum Entfernt eines Bestandteils des Terminnamens</li><p>
  2186. <li><code>weekday_mapping</code><br>
  2187. Mapping der Wochentag</li><p>
  2188. <li><code>calendarname_praefix</code><br>
  2189. soll der <code>calendarname</code> als Präfix im reading gefßhrt werden</li><p>
  2190. <li><code>delimiter_text_reading</code><br>
  2191. Trennzeichen(kette) zum Verbinden von Terminen, wenn sie auf den gleichen Tag fallen
  2192. gilt nur fĂźr die Readings next_text und now_text</li><p>
  2193. <li><code>delimiter_reading</code><br>
  2194. Trennzeichen(kette) zum Verbinden von Terminen, wenn sie auf den gleichen Tag fallen
  2195. gilt nur fĂźr die readings next und now</li><p>
  2196. <li><code>filter</code><br>
  2197. Zeichenkette zum Ausfiltern der Events aus den Kalendern, es sind auch regex mĂśglich</li><p>
  2198. <li><code>filter_type</code><br>
  2199. Sollen durch den angegebene Filter Termine entfernt werden, oder erhalten bleiben</li><p>
  2200. <li><code>date_style</code><br>
  2201. Soll das Datum mit Uhrzeit oder ohne Uhrzeit angezeigt werden</li><p>
  2202. <li><code>enable_old_readingnames</code><br>
  2203. Stellt die Readings *_wochtag, *_datum und *_tage zur VerfĂźgung, allerdings
  2204. ist dieses Attribut deprecated, wird also in einer der folgenden Version entfernt, so dass dann diese Readings nur noch
  2205. mit ihren englischen Varianten zur VerfĂźgung stehen.
  2206. </li><p>
  2207. <li><code>enable_counting_pickups</code><br>
  2208. Hiermit werden die Abholungen gezählt und es kann mit Milfe von <code>set &lt;name&gt; count &lt;abfallArt&gt;</code> die genutzte Abholung
  2209. gezählt werden. Mit Hilfe von <code>set &lt;name&gt; clear</code> kÜnnen die Abholungen wieder auf 0 gesetzt werden. Das ist sinnvoll bei Wechsel
  2210. eines Abrechnungszeitraum.
  2211. </li><p>
  2212. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  2213. </ul>
  2214. <br>
  2215. <b>Anwendungsbeispiele</b>
  2216. <ul>
  2217. siehe h<a href="https://wiki.fhem.de/wiki/ABFALL">FHEM Wiki</a>
  2218. <br>
  2219. </ul>
  2220. </ul>
  2221. <p><a name="ALL3076"></a>
  2222. <h3>ALL3076</h3>
  2223. <ul>
  2224. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  2225. hier: <a href='commandref.html#ALL3076'>ALL3076</a><br/>
  2226. </ul>
  2227. <a name="ALL4000T"></a>
  2228. <h3>ALL4000T</h3>
  2229. <ul>
  2230. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  2231. hier: <a href='commandref.html#ALL4000T'>ALL4000T</a><br/>
  2232. </ul>
  2233. <a name="ALL4027"></a>
  2234. <h3>ALL4027</h3>
  2235. <ul>
  2236. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  2237. hier: <a href='commandref.html#ALL4027'>ALL4027</a><br/>
  2238. </ul>
  2239. <a name="AMAD"></a>
  2240. <h3>AMAD</h3>
  2241. <div class='langLinks'>[<a href='commandref.html#AMAD'>EN</a> DE]</div>
  2242. <ul>
  2243. <u><b>AMAD - Automagic Android Device</b></u>
  2244. <br>
  2245. Dieses Modul liefert, <b><u>in Verbindung mit der Android APP Automagic</u></b>, diverse Informationen von Android Ger&auml;ten.
  2246. Die AndroidAPP Automagic (welche nicht von mir stammt und 2.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.
  2247. <br>
  2248. Mit etwas Einarbeitung k&ouml;nnen jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows welcher seine Daten an die AMADCommBridge sendet. Das Modul gibt auch die M&ouml;glichkeit Androidger&auml;te zu steuern.
  2249. <br>
  2250. F&uuml;r all diese Aktionen und Informationen wird auf dem Androidger&auml;t "Automagic" und ein so genannter Flow ben&ouml;tigt. Die App ist &uuml;ber den Google PlayStore zu beziehen. Das ben&ouml;tigte Flowset bekommt man aus dem FHEM Verzeichnis.
  2251. <br><br>
  2252. <b>Wie genau verwendet man nun AMAD?</b>
  2253. <ul>
  2254. <li>man installiert die App "Automagic Premium" aus dem PlayStore.</li>
  2255. <li>dann installiert man das Flowset 74_AMADautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidger&auml;t und aktiviert die Flows.</li>
  2256. </ul>
  2257. <br>
  2258. Es mu&szlig; noch ein Device in FHEM anlegt werden.
  2259. <br><br>
  2260. <a name="AMADdefine"></a>
  2261. <b>Define</b>
  2262. <ul><br>
  2263. <code>define &lt;name&gt; AMAD &lt;IP-ADRESSE&gt;</code>
  2264. <br><br>
  2265. Beispiel:
  2266. <ul><br>
  2267. <code>define WandTabletWohnzimmer AMAD 192.168.0.23</code><br>
  2268. </ul>
  2269. <br>
  2270. Diese Anweisung erstellt zwei neues AMAD-Device im Raum AMAD.Der Parameter &lt;IP-ADRESSE&gt; legt die IP Adresse des Android Ger&auml;tes fest.<br>
  2271. Das zweite Device ist die AMADCommBridge welche als Kommunikationsbr&uuml;cke vom Androidger&auml;t zu FHEM diehnt. !!!Comming Soon!!! Wer den Port &auml;ndern m&ouml;chte, kann dies &uuml;ber das Attribut "port" tun. <b>Ihr solltet aber wissen was Ihr tut, da dieser Port im HTTP Request Trigger der beiden Flows eingestellt ist. Demzufolge mu&szlig; der Port dort auch ge&auml;ndert werden. Der Port f&uuml;r die Bridge kann ohne Probleme im Bridge Device mittels dem Attribut "port" ver&auml;ndert werden.
  2272. <br>
  2273. Der Port f&uuml;r die Bridge kann ohne Probleme im Bridge Device mittels dem Attribut "port" ver&auml;ndert werden.</b>
  2274. </ul>
  2275. <br><a name="AMADCommBridge"></a>
  2276. <b>AMAD Communication Bridge</b>
  2277. <ul>
  2278. Beim ersten anlegen einer AMAD Deviceinstanz wird automatisch ein Ger&auml;t Namens AMADCommBridge im Raum AMAD mit angelegt. Dieses Ger&auml;t diehnt zur Kommunikation vom Androidger&auml;t zu FHEM ohne das zuvor eine Anfrage von FHEM aus ging. <b>Damit das Androidger&auml;t die IP von FHEM kennt, muss diese sofort nach dem anlegen der Bridge &uuml;ber den set Befehl in ein entsprechendes Reading in die Bridge geschrieben werden. DAS IST SUPER WICHTIG UND F&Uuml;R DIE FUNKTION DER BRIDGE NOTWENDIG.</b><br>
  2279. Hierf&uuml;r mu&szlig; folgender Befehl ausgef&uuml;hrt werden. <i>set AMADCommBridge fhemServerIP &lt;FHEM-IP&gt;.</i><br>
  2280. Als zweites Reading kann <i>expertMode</i> gesetzen werden. Mit diesem Reading wird eine unmittelbare Komminikation mit FHEM erreicht ohne die Einschr&auml;nkung &uuml;ber ein
  2281. Notify gehen zu m&uuml;ssen und nur reine set Befehle ausf&uuml;hren zu k&ouml;nnen.
  2282. </ul><br>
  2283. <b><u>NUN bitte die Flows AKTIVIEREN!!!</u></b><br>
  2284. <br>
  2285. <b><u>Fertig! Nach anlegen der Ger&auml;teinstanz und dem eintragen der fhemServerIP in der CommBridge sollten nach sp&auml;testens 15 Sekunden bereits die ersten Readings reinkommen. Nun wird alle 15 Sekunden probiert einen Status Request erfolgreich ab zu schlie&szlig;en. Wenn der Status sich &uuml;ber einen l&auml;ngeren Zeitraum nicht auf "active" &auml;ndert, sollte man im Log nach eventuellen Fehlern suchen.</u></b>
  2286. <br><br><br>
  2287. <a name="AMADreadings"></a>
  2288. <b>Readings</b>
  2289. <ul>
  2290. <li>airplanemode - Status des Flugmodus</li>
  2291. <li>androidVersion - aktuell installierte Androidversion</li>
  2292. <li>automagicState - Statusmeldungen von der AutomagicApp <b>(Voraussetzung Android >4.3). Ist Android gr&ouml;&szlig;er 4.3 vorhanden und im Reading steht "wird nicht unterst&uuml;tzt", mu&szlig; in den Androideinstellungen unter Ton und Benachrichtigungen -> Benachrichtigungszugriff ein Haken f&uuml;r Automagic gesetzt werden</b></li>
  2293. <li>batteryHealth - Zustand der Battery (1=unbekannt, 2=gut, 3=&Uuml;berhitzt, 4=tot, 5=&Uumlberspannung, 6=unbekannter Fehler, 7=kalt)</li>
  2294. <li>batterytemperature - Temperatur der Batterie</li>
  2295. <li>bluetooth - on/off, Bluetooth Status an oder aus</li>
  2296. <li>checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, <b>siehe Hinweis unten</b></li>
  2297. <li>connectedBTdevices - eine Liste der verbundenen Ger&auml;t</li>
  2298. <li>connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Ger&auml;te</li>
  2299. <li>currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers</li>
  2300. <li>currentMusicApp - aktuell verwendeter Mediaplayer (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music)</li>
  2301. <li>currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers</li>
  2302. <li>currentMusicIcon - Cover vom aktuell abgespielten Album <b>Noch nicht fertig implementiert</b></li>
  2303. <li>currentMusicState - Status des aktuellen/zuletzt verwendeten Mediaplayers</li>
  2304. <li>currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers</li>
  2305. <li>daydream - on/off, Daydream gestartet oder nicht</li>
  2306. <li>deviceState - Status des Androidger&auml;tes. unknown, online, offline.</li>
  2307. <li>doNotDisturb - aktueller Status des nicht st&ouml;ren Modus</li>
  2308. <li>dockingState - undocked/docked Status ob sich das Ger&auml;t in einer Dockinstation befindet.</li>
  2309. <li>flow_SetCommands - active/inactive, Status des SetCommands Flow</li>
  2310. <li>flow_informations - active/inactive, Status des Informations Flow</li>
  2311. <li>flowsetVersionAtDevice - aktuell installierte Flowsetversion auf dem Device</li>
  2312. <li>incomingCallerName - Anrufername des eingehenden Anrufes</li>
  2313. <li>incomingCallerNumber - Anrufernummer des eingehenden Anrufes</li>
  2314. <li>incommingWhatsAppMessageFrom - letzte WhatsApp Nachricht</li>
  2315. <li>incommingWhatsTelegramMessageFrom - letzte Telegram Nachricht</li>
  2316. <li>intentRadioName - zuletzt gesrreamter Intent Radio Name</li>
  2317. <li>intentRadioState - Status des IntentRadio Players</li>
  2318. <li>keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist</li>
  2319. <li>lastSetCommandError - letzte Fehlermeldung vom set Befehl</li>
  2320. <li>lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet</li>
  2321. <li>lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl</li>
  2322. <li>lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet</li>
  2323. <li>nextAlarmDay - aktiver Alarmtag</li>
  2324. <li>nextAlarmState - aktueller Status des <i>"Androidinternen"</i> Weckers</li>
  2325. <li>nextAlarmTime - aktive Alarmzeit</li>
  2326. <li>powerLevel - Status der Batterie in %</li>
  2327. <li>powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA</li>
  2328. <li>screen - on locked/unlocked, off locked/unlocked gibt an ob der Bildschirm an oder aus ist und gleichzeitig gesperrt oder nicht gesperrt</li>
  2329. <li>screenBrightness - Bildschirmhelligkeit von 0-255</li>
  2330. <li>screenFullscreen - on/off, Vollbildmodus (An,Aus)</li>
  2331. <li>screenOrientation - Landscape,Portrait, Bildschirmausrichtung (Horizontal,Vertikal)</li>
  2332. <li>screenOrientationMode - auto/manual, Modus f&uuml;r die Ausrichtung (Automatisch, Manuell)</li>
  2333. <li>state - aktueller Status</li>
  2334. <li>userFlowState - aktueller Status eines Flows, festgelegt unter dem setUserFlowState Attribut</li>
  2335. <li>volume - Media Lautst&auml;rkewert</li>
  2336. <li>volumeNotification - Benachrichtigungs Lautst&auml;rke</li>
  2337. <br>
  2338. Beim Reading checkActivTask mu&szlig; zuvor der Packagename der zu pr&uuml;fenden App als Attribut <i>checkActiveTask</i> angegeben werden. Beispiel: <i>attr Nexus10Wohnzimmer
  2339. checkActiveTask com.android.chrome</i> f&uuml;r den Chrome Browser.
  2340. <br><br>
  2341. </ul>
  2342. <br><br>
  2343. <a name="AMADset"></a>
  2344. <b>Set</b>
  2345. <ul>
  2346. <li>activateVoiceInput - aktiviert die Spracheingabe</li>
  2347. <li>bluetooth - on/off, aktiviert/deaktiviert Bluetooth</li>
  2348. <li>clearNotificationBar - All,Automagic, l&ouml;scht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste</li>
  2349. <li>closeCall - beendet einen laufenden Anruf</li>
  2350. <li>currentFlowsetUpdate - f&uuml;rt ein Flowsetupdate auf dem Device durch</li>
  2351. <li>doNotDisturb - schaltet den nicht st&ouml;ren Modus, always immer st&ouml;ren, never niemals st&ouml;ren, alarmClockOnly nur Wecker darf st&ouml;ren, onlyImportant nur wichtige St&ouml;rungen</li>
  2352. <li>installFlowSource - installiert einen Flow auf dem Device, <u>das XML File muss unter /tmp/ liegen und die Endung xml haben</u>. <b>Bsp:</b> <i>set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml</i></li>
  2353. <li>mediaAmazonMusic - play, stop, next, back ,steuert den Amazon Musik Mediaplayer</li>
  2354. <li>mediaGoogleMusic - play, stop, next, back ,steuert den Google Play Musik Mediaplayer</li>
  2355. <li>mediaSpotifyMusic - play, stop, next, back ,steuert den Spotify Mediaplayer</li>
  2356. <li>nextAlarmTime - setzt die Alarmzeit. gilt aber nur innerhalb der n&auml;chsten 24Std.</li>
  2357. <li>openCall - ruft eine Nummer an und legt optional nach X Sekunden auf / set DEVICE openCall 01736458 10 / ruft die Nummer an und beendet den Anruf nach 10s</li>
  2358. <li>screenBrightness - setzt die Bildschirmhelligkeit, von 0-255.</li>
  2359. <li>screenMsg - versendet eine Bildschirmnachricht</li>
  2360. <li>sendintent - sendet einen Intentstring <u>Bsp:</u><i> set $AMADDEVICE sendIntent org.smblott.intentradio.PLAY url http://stream.klassikradio.de/live/mp3-192/stream.klassikradio.de/play.m3u name Klassikradio</i>, der erste Befehl ist die Aktion und der zweite das Extra. Es k&ouml;nnen immer zwei Extras mitgegeben werden.</li>
  2361. <li>sendSMS - sendet eine SMS an eine bestimmte Telefonnummer. Bsp.: sendSMS Dies ist ein Test|555487263</li>
  2362. <li>statusRequest - Fordert einen neuen Statusreport beim Device an. Es k&ouml;nnen nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Status&auml;nderung ihren Status wieder.</li>
  2363. <li>timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es k&ouml;nnen nur Sekunden angegeben werden.</li>
  2364. <li>ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird</li>
  2365. <li>userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows,<b><i>set Nexus7Wohnzimmer Badezimmer vorheizen:inactive</i> oder <i>set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive</i></b></li>
  2366. <li>vibrate - l&auml;sst das Androidger&auml;t vibrieren</li>
  2367. <li>volume - setzt die Medialautst&auml;rke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautst&auml;rke um den Wert</li>
  2368. <li>volumeNotification - setzt die Benachrichtigungslautst&auml;rke.</li>
  2369. </ul>
  2370. <br>
  2371. <b>Set abh&auml;ngig von gesetzten Attributen</b>
  2372. <ul>
  2373. <li>changetoBtDevice - wechselt zu einem anderen Bluetooth Ger&auml;t. <b>Attribut setBluetoothDevice mu&szlig; gesetzt sein. Siehe Hinweis unten!</b></li>
  2374. <li>notifySndFile - spielt die angegebene Mediadatei auf dem Androidger&auml;t ab. <b>Die aufzurufende Mediadatei sollte sich im Ordner /storage/emulated/0/Notifications/ befinden. Ist dies nicht der Fall kann man &uuml;ber das Attribut setNotifySndFilePath einen Pfad vorgeben.</b></li>
  2375. <li>openApp - &ouml;ffnet eine ausgew&auml;hlte App. <b>Attribut setOpenApp</b></li>
  2376. <li>openURL - &ouml;ffnet eine URL im Standardbrowser, sofern kein anderer Browser &uuml;ber das <b>Attribut setOpenUrlBrowser</b> ausgew&auml;hlt wurde.<b> Bsp:</b><i> attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity, das erste ist der Package Name und das zweite der Class Name</i></li>
  2377. <li>setAPSSID - setzt die AccessPoint SSID um ein WLAN sleep zu verhindern</li>
  2378. <li>screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn, in den Automagic Einstellungen muss "Admin Funktion" gesetzt werden sonst funktioniert "Screen off" nicht. <b>Attribut setScreenOnForTimer</b> &auml;ndert die Zeit wie lange das Display an bleiben soll!</li>
  2379. <li>screenFullscreen - on/off, (aktiviert/deaktiviert) den Vollbildmodus. <b>Attribut setFullscreen</b></li>
  2380. <li>screenLock - Sperrt den Bildschirm mit Pinabfrage. <b>Attribut setScreenlockPIN - hier die Pin daf&uuml;r eingeben. Erlaubt sind nur Zahlen. Es m&uuml;&szlig;en mindestens 4, bis max 16 Zeichen verwendet werden.</b></li>
  2381. <li>screenOrientation - Auto,Landscape,Portait, aktiviert die Bildschirmausrichtung (Automatisch,Horizontal,Vertikal). <b>Attribut setScreenOrientation</b></li>
  2382. <li>system - setzt Systembefehle ab (nur bei gerootetet Ger&auml;en). reboot,shutdown,airplanemodeON (kann nur aktiviert werden) <b>Attribut root</b>, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden</li>
  2383. <li>setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/</li>
  2384. <li>setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0</li>
  2385. <li>setTtsMsgSpeed - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de)</li>
  2386. <br>
  2387. Um openApp verwenden zu k&ouml;nnen, muss als Attribut der Package Name der App angegeben werden.
  2388. <br><br>
  2389. Um zwischen Bluetoothger&auml;ten wechseln zu k&ouml;nnen, mu&szlig; das Attribut setBluetoothDevice mit folgender Syntax gesetzt werden. <b>attr &lt;DEVICE&gt; BTdeviceName1|MAC,BTDeviceName2|MAC</b> Es muss
  2390. zwingend darauf geachtet werden das beim BTdeviceName kein Leerzeichen vorhanden ist. Am besten zusammen oder mit Unterstrich. Achtet bei der MAC darauf das Ihr wirklich nach jeder zweiten Zahl auch
  2391. einen : drin habt<br>
  2392. Beispiel: <i>attr Nexus10Wohnzimmer setBluetoothDevice Logitech_BT_Adapter|AB:12:CD:34:EF:32,Anker_A3565|GH:56:IJ:78:KL:76</i>
  2393. </ul>
  2394. <br><br>
  2395. <a name="AMADstate"></a>
  2396. <b>state</b>
  2397. <ul>
  2398. <li>initialized - Ist der Status kurz nach einem define.</li>
  2399. <li>active - die Ger&auml;teinstanz ist im aktiven Status.</li>
  2400. <li>disabled - die Ger&auml;teinstanz wurde &uuml;ber das Attribut disable deaktiviert</li>
  2401. </ul>
  2402. <br><br><br>
  2403. <u><b>Anwendungsbeispiele:</b></u>
  2404. <ul><br>
  2405. <a href="http://www.fhemwiki.de/wiki/AMAD#Anwendungsbeispiele">Hier verweise ich auf den gut gepflegten Wikieintrag</a>
  2406. </ul>
  2407. <br><br><br>
  2408. </ul>
  2409. <p><a name="AMADCommBridge"></a>
  2410. <h3>AMADCommBridge</h3>
  2411. <div class='langLinks'>[<a href='commandref.html#AMADCommBridge'>EN</a> DE]</div>
  2412. <ul>
  2413. <u><b>AMAD - Automagic Android Device</b></u></p>
  2414. <b>AMADCommBridge - Kommunikationsbr&uuml;cke fĂźr alle AMAD Ger&auml;te</b>
  2415. </br>
  2416. Dieses Modul ist das Ausgangsmodul zur erfolgreichen Integration von Androidger&auml;ten in FHEM. Es stellt ferner eine Verbindungsebene zwischen AMAD unterst&uuml;tzten Ger&auml;ten und FHEM zur Verf&uuml;gung. Alle Kommunikation zwischen AMAD Android und FHEM l&auml;uft &uuml;ber diese Schnittstelle.</br>
  2417. Daher erfolgt die Ersteinrichtung eines AMAD Devices auch genau &uuml;ber diese Modulinstanz.
  2418. </br></br>
  2419. Damit erfolgreich ein Androidger&auml;t in FHEM eingerichtet werden kann, muss im ersten Schritt ein AMADCommBridge Device angelegt werden.
  2420. <br><br>
  2421. <a name="AMADCommBridgedefine"></a>
  2422. <b>Define</b>
  2423. <ul><br>
  2424. <code>define &lt;name&gt; AMADCommBridge</code>
  2425. <br><br>
  2426. Beispiel:
  2427. <ul><br>
  2428. <code>define AMADBridge AMADCommBridge</code><br>
  2429. </ul>
  2430. <br>
  2431. Diese Anweisung erstellt ein neues AMADCommBridge Device Namens AMADBridge.
  2432. </ul></br>
  2433. Es kann wahlweise die APP Automagic oder Tasker auf dem Android Ger&auml;t verwendet werden.
  2434. <br>
  2435. <b>F&uuml;r Autoremote:</b><br>
  2436. Im folgenden mu&szlig; lediglich das Flowset auf dem Android Ger&auml;t installiert werden und der Flow 'First Run Assistent' ausgef&uuml;hrt werden. (einfach den Homebutton drĂźcken)</br>
  2437. Der Assistent geleitet Dich dann durch die Einrichtung Deines AMAD Ger&auml;tes und sorgt daf&uuml;r das am Ende des Installationsprozess das Androidger&auml;t als AMAD Device in FHEM angelegt wird.</br>
  2438. <br>
  2439. <b>F&uuml;r Tasker:</b><br>
  2440. Bei Verwendung von Tasker muss das Tasker-Projekt auf das Android Ger&auml;t geladen und in Tasker &uuml;ber die Import Funktion importiert werden.<br>
  2441. F&uuml;r die Ersteinrichtung auf dem Android Ger&auml;t gibt es eine Eingabemaske (Scene), in der die ben&ouml;tigten Parameter (Device Name, Device IP, Bridgeport usw.)</br>
  2442. eingegeben werden k&ouml;nnen, diese Felder werden (soweit m&ouml;glich) automatisch bef&uuml;llt, k&ouml;nnen aber auch manuell angepasst werden.</br>
  2443. Hierf&uuml;r den Task &quot;AMAD&quot; ausf&uuml;hren.</br>
  2444. F&uuml;r schnellen Zugriff kann f&uuml;r diesen Task auch ein Tasker-Shortcut auf dem Homescreen angelegt werden.</br>
  2445. Infos zu den einzelnen Einstellungen erh&auml;lt man durch einen Touch auf das jeweiligen Textfeld.</br>
  2446. Sind alle Eingaben vollst&auml;ndig, kann das AMAD Device &uuml;ber die Schaltfl&auml;che &quot;create Device&quot; erstellt werden.</br>
  2447. Damit Steuerbefehle von FHEM zu Tasker funktionieren wird zus&auml;tzlich noch die APP "Autoremote" oder "Tasker Network Event Server (TNES)" ben&ouml;tigt.
  2448. <br><br>
  2449. <a name="AMADCommBridgereadings"></a>
  2450. <b>Readings</b>
  2451. <ul><br>
  2452. <li>JSON_ERROR - JSON Fehlermeldung welche von Perl gemeldet wird</li>
  2453. <li>JSON_ERROR_STRING - der String welcher die JSON Fehlermeldung verursacht hat</li>
  2454. <li>fhemServerIP - die Ip-Adresse des FHEM Servers, wird vom Modul auf Basis des JSON Strings vom Installationsassistenten gesetzt. Kann aber auch mittels set Befehles vom User gesetzt werden</li>
  2455. <li>receiveFhemCommand - ist das Attribut fhemControlMode auf trigger gestellt, wird das Reading gesetzt sobald ein FHEM Befehl Ăźbersendet wird. Hierauf kann dann ein Notify triggern.</br>
  2456. Wird anstelle von trigger setControl als Wert fĂźr fhemControlMode eingestellt, wird das Reading nicht gestzt sondern der set Befehl sofort ausgefĂźhrt.</li>
  2457. <li>receiveVoiceCommand - wird die Sprachsteuerung von AMAD aktiviert (set DEVICE activateVoiceInput) so wird der letzte erkannten Sprachbefehle in dieses Reading geschrieben.</li>
  2458. <li>receiveVoiceDevice - Name des Devices von wo aus der letzte erkannte Sprachbefehl gesendet wurde</li>
  2459. <li>state - Status der Bridge, open, closed</li>
  2460. </ul>
  2461. <br><br>
  2462. <a name="AMADCommBridgeattribute"></a>
  2463. <b>Attribute</b>
  2464. <ul><br>
  2465. <li>allowFrom - Regexp der erlaubten IP-Adressen oder Hostnamen. Wenn dieses Attribut gesetzt wurde, werden ausschlie�lich Verbindungen von diesen Adressen akzeptiert.</br>
  2466. Achtung: falls allowfrom nicht gesetzt ist, und keine gĂźtige allowed Instanz definiert ist, und die Gegenstelle eine nicht lokale Adresse hat, dann wird die Verbindung abgewiesen. Folgende Adressen werden als local betrachtet:</br>
  2467. IPV4: 127/8, 10/8, 192.168/16, 172.16/10, 169.254/16</br>
  2468. IPV6: ::1, fe80/10</li>
  2469. <li>debugJSON - wenn auf 1 gesetzt, werden JSON Fehlermeldungen in Readings geschrieben. Siehe hierzu JSON_ERROR* unter Readings</li>
  2470. <li>fhemControlMode - steuert die zulässige Art der Kontrolle von FHEM Devices. Du kannst ßber die Bridge auf 2 Arten FHEM Devices steuern. Entweder per direktem FHEM Befehl aus einem Flow heraus, oder als Sprachbefehl mittels Sprachsteuerung (set DEVICE activateVoiceInput)
  2471. <ul><li>trigger - ist der Wert trigger gesetzt, werden alle an die Bridge gesendeten FHEM set Befehle in das Reading receiveFhemCommand geschrieben und kÜnnen so mittels notify ausgefßhrt werden. Sprachsteuerung ist mÜglich, es werden Readings receiveVoice* gesetzt. Auf dem Androidgerät kÜnnen bei Sprachsteuerung mehrere Sprachbefehle mittels "und" verknßpft/aneinander gereiht werden. Bsp: schalte die Lichtszene Abends an und schalte den Fernsehr an</li>
  2472. <li>setControl - alle set Befehle welche mittels eines Flows ßber die Bridge gesendet werden, werden automatisch ausgefßhrt. Das triggern eines Readings ist nicht nÜtig. Die Steuerung mittels Sprache verhält sich wie beim Wert trigger</li>
  2473. <li>thirdPartControl - verhält sich wie trigger, bei der Sprachsteuerung ist jedoch ein anreihen von Sprachbefehlen mittels "und" nicht mÜglich. Dient der Sprachsteuerung ßber Module anderer Modulautoren ((z.B. 39_TEERKO.pm)</li></ul>
  2474. </li>
  2475. </ul>
  2476. </br></br>
  2477. Wie man bei Problemen mit dem Assistenten ein Androidger&auml;t auch von Hand anlegen kann, erf&auml;hrst Du in der Commandref zum AMADDevice Modul.
  2478. </ul>
  2479. <p><a name="AMADDevice"></a>
  2480. <h3>AMADDevice</h3>
  2481. <div class='langLinks'>[<a href='commandref.html#AMADDevice'>EN</a> DE]</div>
  2482. <ul>
  2483. <u><b>AMADDevice - Automagic Android Device</b></u>
  2484. <br>
  2485. Dieses Modul liefert, <b><u>in Verbindung mit der Android APP Automagic oder Tasker</u></b>, diverse Informationen von Android Ger&auml;ten.
  2486. Die Android APP Automagic (welche nicht von mir stammt und 2.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.
  2487. <br>
  2488. Mit etwas Einarbeitung k&ouml;nnen jegliche Informationen welche Automagic/Tasker bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows/Task welcher seine Daten an die AMADDeviceCommBridge sendet. Das Modul gibt auch die M&ouml;glichkeit Androidger&auml;te zu steuern.
  2489. <br>
  2490. F&uuml;r all diese Aktionen und Informationen wird auf dem Androidger&auml;t "Automagic/Tasker" und ein so genannter Flow/Task ben&ouml;tigt. Die App ist &uuml;ber den Google PlayStore zu beziehen. Das ben&ouml;tigte Flowset/Tasker-Projekt bekommt man aus dem FHEM Verzeichnis.
  2491. <br><br>
  2492. <b>Wie genau verwendet man nun AMADDevice?</b>
  2493. <ul>
  2494. <li>stelle sicher das als aller erstes die AMADCommBridge in FHEM definiert wurde</li>
  2495. <li><b>Bei verwendung von Automagic</b></li>
  2496. <ul>
  2497. <li>installiere die App "Automagic Premium" aus dem PlayStore.</li>
  2498. <li>installiere das Flowset 74_AMADDeviceautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidger&auml;t</li>
  2499. <li>aktiviere den Installationsassistanten Flow in Automagic. Wenn man nun Automagic in den Hintergrund schickt, z.B. Hometaste dr&uuml;cken, startet der Assistant und legt automatisch ein Device fĂźr das Androidger&auml;t an.</li>
  2500. </ul>
  2501. <li><b>Bei verwendung von Tasker</b></li>
  2502. <ul>
  2503. <li>installiere die App "Tasker" aus dem PlayStore.</li>
  2504. <li>installiere das Tasker Projekt 74_AMADtaskerset_$VERSION.prj.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf dem Androidger&auml;t</li>
  2505. <li>Starte den Task "AMAD", es erscheint eine Eingabemaske in der alle Einstellungen vorgenommen werden k&ouml;nnen, durch einen Klick auf "create Device" wird das Ger&auml;t in FHEM erstellt.</li>
  2506. </ul>
  2507. </ul>
  2508. <br><br>
  2509. <u><b>Ein AMADDevice Ger&auml;t von Hand anlegen.</b></u>
  2510. <br><br>
  2511. <a name="AMADDevicedefine"></a>
  2512. <b>Define</b>
  2513. <ul><br>
  2514. <code>define &lt;name&gt; AMADDevice &lt;IP-ADRESSE&gt; &lt;AMAD_ID&gt; &lt;REMOTESERVER&gt;</code>
  2515. <br><br>
  2516. Beispiel:
  2517. <ul><br>
  2518. <code>define WandTabletWohnzimmer AMADDevice 192.168.0.23 123456 Automagic</code><br>
  2519. </ul>
  2520. <br>
  2521. In diesem Fall wird ein AMADDevice von Hand angelegt. Die AMAD_ID, hier 123456, mu&szlig; auch exakt so als globale Variable in Automagic/Tasker eingetragen sein.
  2522. </ul>
  2523. <br><br><br>
  2524. <a name="AMADDevicereadings"></a>
  2525. <b>Readings</b>
  2526. <ul>
  2527. <li>airplanemode - Status des Flugmodus</li>
  2528. <li>androidVersion - aktuell installierte Androidversion</li>
  2529. <li>automagicState - Statusmeldungen von der Automagic oder Tasker App <b>(Voraussetzung Android >4.3). Ist Android gr&ouml;&szlig;er 4.3 vorhanden und im Reading steht "wird nicht unterst&uuml;tzt", mu&szlig; in den Androideinstellungen unter Ton und Benachrichtigungen -> Benachrichtigungszugriff ein Haken f&uuml;r Automagic/Tasker gesetzt werden</b></li>
  2530. <li>batteryHealth - Zustand der Battery (1=unbekannt, 2=gut, 3=&Uuml;berhitzt, 4=tot, 5=&Uuml;berspannung, 6=unbekannter Fehler, 7=kalt) (nur Automagic)</li>
  2531. <li>powerPercent - Status der Batterie in %</li>
  2532. <li>batterytemperature - Temperatur der Batterie (nur Automagic)</li>
  2533. <li>bluetooth - on/off, Bluetooth Status an oder aus</li>
  2534. <li>checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, <b>siehe Hinweis unten</b> (nur Automagic)</li>
  2535. <li>connectedBTdevices - eine Liste der verbundenen Ger&auml;t (nur Automagic)</li>
  2536. <li>connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Ger&auml;te (nur Automagic)</li>
  2537. <li>currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers (nur Automagic)</li>
  2538. <li>currentMusicApp - aktuell verwendeter Mediaplayer (Amazon Music, Google Play Music, Google Play Video, Spotify, YouTube, TuneIn Player, Aldi Life Music) (nur Automagic)</li>
  2539. <li>currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers (nur Automagic)</li>
  2540. <li>currentMusicIcon - Cover vom aktuell abgespielten Album <b>Noch nicht fertig implementiert</b> (nur Automagic)</li>
  2541. <li>currentMusicState - Status des aktuellen/zuletzt verwendeten Mediaplayers (nur Automagic)</li>
  2542. <li>currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers (nur Automagic)</li>
  2543. <li>daydream - on/off, Daydream gestartet oder nicht</li>
  2544. <li>deviceState - Status des Androidger&auml;tes. unknown, online, offline.</li>
  2545. <li>doNotDisturb - aktueller Status des nicht st&ouml;ren Modus</li>
  2546. <li>dockingState - undocked/docked Status ob sich das Ger&auml;t in einer Dockinstation befindet.</li>
  2547. <li>flow_SetCommands - active/inactive, Status des SetCommands Flow</li>
  2548. <li>flow_informations - active/inactive, Status des Informations Flow</li>
  2549. <li>flowsetVersionAtDevice - aktuell installierte Flowsetversion auf dem Device</li>
  2550. <li>incomingCallerName - Anrufername des eingehenden Anrufes</li>
  2551. <li>incomingCallerNumber - Anrufernummer des eingehenden Anrufes</li>
  2552. <li>incomingWhatsAppMessage - letzte WhatsApp Nachricht</li>
  2553. <li>incomingTelegramMessage - letzte Telegram Nachricht</li>
  2554. <li>incomingSmsMessage - letzte SMS Nachricht</li>
  2555. <li>intentRadioName - zuletzt gesrreamter Intent Radio Name</li>
  2556. <li>intentRadioState - Status des IntentRadio Players</li>
  2557. <li>keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist</li>
  2558. <li>lastSetCommandError - letzte Fehlermeldung vom set Befehl</li>
  2559. <li>lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet</li>
  2560. <li>lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl</li>
  2561. <li>lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet</li>
  2562. <li>nextAlarmDay - aktiver Alarmtag</li>
  2563. <li>nextAlarmState - aktueller Status des <i>"Androidinternen"</i> Weckers</li>
  2564. <li>nextAlarmTime - aktive Alarmzeit</li>
  2565. <li>nfc - Status des NFC on/off</li>
  2566. <li>nfcLastTagID - nfc_id des zu letzt gescannten Tag's / Damit die ID korrekt erkannt wird muss im Flow NFC Tag Support der Trigger NFC TagIDs bearbeitet werden und die TagId's Kommasepariert eingetragen werden. (nur Automagic)</li>
  2567. <li>powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA</li>
  2568. <li>screen - on locked/unlocked, off locked/unlocked gibt an ob der Bildschirm an oder aus ist und gleichzeitig gesperrt oder nicht gesperrt</li>
  2569. <li>screenBrightness - Bildschirmhelligkeit von 0-255</li>
  2570. <li>screenBrightnessMode - Adaptive Helligkeit on,off</li>
  2571. <li>screenFullscreen - on/off, Vollbildmodus (An,Aus)</li>
  2572. <li>screenOrientation - Landscape,Portrait, Bildschirmausrichtung (Horizontal,Vertikal)</li>
  2573. <li>screenOrientationMode - auto/manual, Modus f&uuml;r die Ausrichtung (Automatisch, Manuell)</li>
  2574. <li>state - aktueller Status</li>
  2575. <li>userFlowState - aktueller Status eines Flows, festgelegt unter dem setUserFlowState Attribut (nur Automagic)</li>
  2576. <li>volume - Media Lautst&auml;rkewert</li>
  2577. <li>volumeNotification - Benachrichtigungs Lautst&auml;rke</li>
  2578. <li>wiredHeadsetPlugged - 0/1 gibt an ob ein Headset eingesteckt ist oder nicht</li>
  2579. <br>
  2580. Beim Reading checkActivTask mu&szlig; zuvor der Packagename der zu pr&uuml;fenden App als Attribut <i>checkActiveTask</i> angegeben werden. Beispiel: <i>attr Nexus10Wohnzimmer
  2581. checkActiveTask com.android.chrome</i> f&uuml;r den Chrome Browser.
  2582. <br><br>
  2583. </ul>
  2584. <br><br>
  2585. <a name="AMADDeviceset"></a>
  2586. <b>Set</b>
  2587. <ul>
  2588. <li>activateVoiceInput - aktiviert die Spracheingabe</li>
  2589. <li>bluetooth - on/off, aktiviert/deaktiviert Bluetooth</li>
  2590. <li>clearNotificationBar - All,Automagic, l&ouml;scht alle Meldungen oder nur die Automagic/Tasker Meldungen in der Statusleiste</li>
  2591. <li>closeCall - beendet einen laufenden Anruf</li>
  2592. <li>currentFlowsetUpdate - f&uuml;rt ein Flowset/Tasker-Projekt update auf dem Device durch</li>
  2593. <li>doNotDisturb - schaltet den nicht st&ouml;ren Modus, always immer st&ouml;ren, never niemals st&ouml;ren, alarmClockOnly nur Wecker darf st&ouml;ren, onlyImportant nur wichtige St&ouml;rungen</li>
  2594. <li>installFlowSource - installiert einen Flow auf dem Device, <u>das XML File muss unter /tmp/ liegen und die Endung xml haben</u>. <b>Bsp:</b> <i>set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml</i> (nur Automagic)</li>
  2595. <li>mediaPlay - play Befehl zur Media App</li>
  2596. <li>mediaStop - stop Befehl zur Media App</li>
  2597. <li>mediaNext - nächster Titel Befehl zur Media App</li>
  2598. <li>mediaBack - vorheriger Titel zur Media App</li>
  2599. <li>nextAlarmTime - setzt die Alarmzeit. gilt aber nur innerhalb der n&auml;chsten 24Std.</li>
  2600. <li>openCall - ruft eine Nummer an und legt optional nach X Sekunden auf / set DEVICE openCall 01736458 10 / ruft die Nummer an und beendet den Anruf nach 10s</li>
  2601. <li>screenBrightness - setzt die Bildschirmhelligkeit, von 0-255.</li>
  2602. <li>screenBrightnessMode - schaltet die Adaptive Helligkeit on,off</li>
  2603. <li>screenMsg - versendet eine Bildschirmnachricht</li>
  2604. <li>sendintent - sendet einen Intentstring <u>Bsp:</u><i> set $AMADDeviceDEVICE sendIntent org.smblott.intentradio.PLAY url http://stream.klassikradio.de/live/mp3-192/stream.klassikradio.de/play.m3u name Klassikradio</i>, der erste Befehl ist die Aktion und der zweite das Extra. Es k&ouml;nnen immer zwei Extras mitgegeben werden.</li>
  2605. <li>sendSMS - sendet eine SMS an eine bestimmte Telefonnummer. Bsp.: sendSMS Dies ist ein Test|555487263</li>
  2606. <li>startDaydream - startet den Daydream</li>
  2607. <li>statusRequest - Fordert einen neuen Statusreport beim Device an. Es k&ouml;nnen nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Status&auml;nderung ihren Status wieder.</li>
  2608. <li>timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es k&ouml;nnen nur Minuten angegeben werden.</li>
  2609. <li>ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird (um die Sprache fßr diese eine Durchsage zu ändern setze vor Deinem eigentlichen Text &en; oder &de;)</li>
  2610. <li>userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows/Tasker-Profile,<b><i>set Nexus7Wohnzimmer Badezimmer vorheizen:inactive</i> oder <i>set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive</i></b></li>
  2611. <li>userFlowRun - fĂźhrt den angegebenen Flow/Task aus</li>
  2612. <li>vibrate - l&auml;sst das Androidger&auml;t vibrieren</li>
  2613. <li>volume - setzt die Medialautst&auml;rke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautst&auml;rke um den Wert. Der maximale Sliderwert kann &uuml;ber das Attribut setVolMax geregelt werden.</li>
  2614. <li>volumeUp - erh&ouml;ht die Lautst&auml;rke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.</li>
  2615. <li>volumeDown - reduziert die Lautst&auml;rke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.</li>
  2616. <li>volumeNotification - setzt die Benachrichtigungslautst&auml;rke.</li>
  2617. </ul>
  2618. <br>
  2619. <b>Set abh&auml;ngig von gesetzten Attributen</b>
  2620. <ul>
  2621. <li>changetoBtDevice - wechselt zu einem anderen Bluetooth Ger&auml;t. <b>Attribut setBluetoothDevice mu&szlig; gesetzt sein. Siehe Hinweis unten!</b> (nur Automagic)</li>
  2622. <li>notifySndFile - spielt die angegebene Mediadatei auf dem Androidger&auml;t ab. <b>Die aufzurufende Mediadatei sollte sich im Ordner /storage/emulated/0/Notifications/ befinden. Ist dies nicht der Fall kann man &uuml;ber das Attribut setNotifySndFilePath einen Pfad vorgeben.</b></li>
  2623. <li>nfc - schaltet nfc an oder aus /on/off<b>Attribut root</b></li>
  2624. <li>openApp - &ouml;ffnet eine ausgew&auml;hlte App. <b>Attribut setOpenApp</b></li>
  2625. <li>openURL - &ouml;ffnet eine URL im Standardbrowser, sofern kein anderer Browser &uuml;ber das <b>Attribut setOpenUrlBrowser</b> ausgew&auml;hlt wurde.<b> Bsp:</b><i> attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity, das erste ist der Package Name und das zweite der Class Name</i></li>
  2626. <li>screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn, in den Automagic Einstellungen muss "Admin Funktion" gesetzt werden sonst funktioniert "Screen off" nicht. <b>Attribut setScreenOnForTimer</b> &auml;ndert die Zeit wie lange das Display an bleiben soll! (Tasker unterst&uuml;tzt nur "screen on/off")</li>
  2627. <li>screenFullscreen - on/off, (aktiviert/deaktiviert) den Vollbildmodus. <b>Attribut setFullscreen</b></li>
  2628. <li>screenLock - Sperrt den Bildschirm mit Pinabfrage. <b>Attribut setScreenlockPIN - hier die Pin daf&uuml;r eingeben. Erlaubt sind nur Zahlen. Es m&uuml;&szlig;en mindestens 4, bis max 16 Zeichen verwendet werden.</b></li>
  2629. <li>screenOrientation - Auto,Landscape,Portait, aktiviert die Bildschirmausrichtung (Automatisch,Horizontal,Vertikal). <b>Attribut setScreenOrientation</b></li>
  2630. <li>system - setzt Systembefehle ab (nur bei gerootetet Ger&auml;en). reboot,shutdown,airplanemodeON (kann nur aktiviert werden) <b>Attribut root</b>, in den Automagic Einstellungen muss "Root Funktion" gesetzt werden</li>
  2631. <li>takePicture - lĂśst die Kamera aus fĂźr ein Foto <b>Attribut setTakePictureResolution</b></li>
  2632. <li>takeScreenshot - macht ein Screenshot <b>Attribut setTakeScreenshotResolution</b></li>
  2633. </ul>
  2634. <br><br>
  2635. <a name="AMADDeviceattribute"></a>
  2636. <b>Attribute</b>
  2637. <ul>
  2638. <li>setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/</li>
  2639. <li>setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(FĂźr Automagic: Werte zwischen 0.5 bis 4.0 in 0.5er Schritten, default:1.0)(FĂźr Tasker: Werte zwischen 1 bis 10 in 1er Schritten, default:5)</li>
  2640. <li>setTtsMsgLang - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de)</li>
  2641. <li>setTtsMsgVol - wenn gesetzt wird der Wert als neues Media Volume f&uuml; die Sprachansage verwendet und danach wieder der alte Wert eingestellt</li>
  2642. <li>setVolUpDownStep - setzt den Step f&uuml;r volumeUp und volumeDown</li>
  2643. <li>setVolMax - setzt die maximale Volume Gr&uoml;e f&uuml;r den Slider</li>
  2644. <li>setNotifyVolMax - setzt den maximalen Lautst&auml;rkewert fĂźr Benachrichtigungslautst&auml;rke f&uuml;r den Slider</li>
  2645. <li>setRingSoundVolMax - setzt den maximalen Lautst&auml;rkewert fĂźr Klingellautst&auml;rke f&uuml;r den Slider</li>
  2646. <li>setAPSSID - setzt die AccessPoint SSID um ein WLAN sleep zu verhindern (nur Automagic)</li>
  2647. <li>setTakePictureResolution - welche KameraauflĂśsung soll verwendet werden? (800x600,1024x768,1280x720,1600x1200,1920x1080)</li>
  2648. <li>setTakePictureCamera - welche Kamera soll verwendet werden (Back,Front).</li>
  2649. <br>
  2650. Um openApp verwenden zu k&ouml;nnen, muss als Attribut der Package Name der App angegeben werden.
  2651. <br><br>
  2652. Um zwischen Bluetoothger&auml;ten wechseln zu k&ouml;nnen, mu&szlig; das Attribut setBluetoothDevice mit folgender Syntax gesetzt werden. <b>attr &lt;DEVICE&gt; BTdeviceName1|MAC,BTDeviceName2|MAC</b> Es muss
  2653. zwingend darauf geachtet werden das beim BTdeviceName kein Leerzeichen vorhanden ist. Am besten zusammen oder mit Unterstrich. Achtet bei der MAC darauf das Ihr wirklich nach jeder zweiten Zahl auch
  2654. einen : drin habt<br>
  2655. Beispiel: <i>attr Nexus10Wohnzimmer setBluetoothDevice Logitech_BT_Adapter|AB:12:CD:34:EF:32,Anker_A3565|GH:56:IJ:78:KL:76</i>
  2656. </ul>
  2657. <br><br>
  2658. <a name="AMADDevicestate"></a>
  2659. <b>state</b>
  2660. <ul>
  2661. <li>initialized - Ist der Status kurz nach einem define.</li>
  2662. <li>active - die Ger&auml;teinstanz ist im aktiven Status.</li>
  2663. <li>disabled - die Ger&auml;teinstanz wurde &uuml;ber das Attribut disable deaktiviert</li>
  2664. </ul>
  2665. <br><br><br>
  2666. <u><b>Anwendungsbeispiele:</b></u>
  2667. <ul><br>
  2668. <a href="http://www.fhemwiki.de/wiki/AMADDevice#Anwendungsbeispiele">Hier verweise ich auf den gut gepflegten Wikieintrag</a>
  2669. </ul>
  2670. <br><br><br>
  2671. </ul>
  2672. <p><a name="Alarm"></a>
  2673. <h3>Alarm</h3>
  2674. <div class='langLinks'>[<a href='commandref.html#Alarm'>EN</a> DE]</div>
  2675. <ul>
  2676. <a href="https://wiki.fhem.de/wiki/Modul_Alarm">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#Alarm">Alarm</a>
  2677. </ul>
  2678. <p><a name="AptToDate"></a>
  2679. <h3>Apt Update Information</h3>
  2680. <div class='langLinks'>[<a href='commandref.html#AptToDate'>EN</a> DE]</div>
  2681. <ul>
  2682. <u><b>AptToDate - Stellt aktuelle Update Informationen von apt Debian Systemen bereit</b></u>
  2683. <br>
  2684. Das Modul synct alle Repositotys und stellt dann Informationen &uuml;ber zu aktualisierende Packete bereit.</br>
  2685. Es ist Voraussetzung das folgende Zeile via "visudo" eingef&uuml;gt wird: "fhem ALL=NOPASSWD: /usr/bin/apt-get".
  2686. <br><br>
  2687. <a name="AptToDatedefine"></a>
  2688. <b>Define</b>
  2689. <ul><br>
  2690. <code>define &lt;name&gt; AptToDate &lt;HOST&gt;</code>
  2691. <br><br>
  2692. Beispiel:
  2693. <ul><br>
  2694. <code>define fhemServer AptToDate localhost</code><br>
  2695. </ul>
  2696. <br>
  2697. Der Befehl erstellt eine AptToDate Instanz mit dem Namen fhemServer und dem Host localhost.<br>
  2698. Nachdem die Instanz erstellt wurde werden die ben&ouml;tigten Informationen geholt und als Readings angezeigt.
  2699. Dies kann einen Moment dauern.
  2700. </ul>
  2701. <br><br>
  2702. <a name="AptToDatereadings"></a>
  2703. <b>Readings</b>
  2704. <ul>
  2705. <li>state - update Status des Servers, liegen neue Updates an oder nicht</li>
  2706. <li>os-release_ - alle Informationen aus /etc/os-release</li>
  2707. <li>repoSync - status des letzten repository sync.</li>
  2708. <li>toUpgrade - status des letzten upgrade Befehles</li>
  2709. <li>updatesAvailable - Anzahl der verf&uuml;gbaren Paketupdates</li>
  2710. </ul>
  2711. <br><br>
  2712. <a name="AptToDateset"></a>
  2713. <b>Set</b>
  2714. <ul>
  2715. <li>repoSync - holt aktuelle Informationen &uuml;ber den Updatestatus</li>
  2716. <li>toUpgrade - f&uuml;hrt den upgrade prozess aus.</li>
  2717. <br>
  2718. </ul>
  2719. <br><br>
  2720. <a name="AptToDateget"></a>
  2721. <b>Get</b>
  2722. <ul>
  2723. <li>showUpgradeList - Paketiste aller zur Verf&uuml;gung stehender Updates</li>
  2724. <li>showUpdatedList - Liste aller als letztes aktualisierter Pakete, von der alten Version zur neuen Version</li>
  2725. <li>showWarningList - Liste der letzten Warnings</li>
  2726. <li>showErrorList - Liste der letzten Fehler</li>
  2727. <br>
  2728. </ul>
  2729. <br><br>
  2730. <a name="AptToDate attribut"></a>
  2731. <b>Attributes</b>
  2732. <ul>
  2733. <li>disable - Deaktiviert das Device</li>
  2734. <li>upgradeListReading - f&uuml;gt die Upgrade Liste als ein zus&auml;iches Reading im JSON Format ein.</li>
  2735. <li>distupgrade - wechselt den upgrade Prozess nach dist-upgrade</li>
  2736. <li>disabledForIntervals - Deaktiviert das Device f&uuml;r eine bestimmte Zeit (13:00-18:30 or 13:00-18:30 22:00-23:00)</li>
  2737. </ul>
  2738. </ul>
  2739. <p><a name="Aqicn"></a>
  2740. <h3>Air Quality Index</h3>
  2741. <div class='langLinks'>[<a href='commandref.html#Aqicn'>EN</a> DE]</div>
  2742. <p><a name="ArduCounter"></a>
  2743. <h3>ArduCounter</h3>
  2744. <ul>
  2745. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  2746. hier: <a href='commandref.html#ArduCounter'>ArduCounter</a><br/>
  2747. </ul>
  2748. <a name="Astro"></a>
  2749. <h3>Astro</h3>
  2750. <div class='langLinks'>[<a href='commandref.html#Astro'>EN</a> DE]</div>
  2751. <ul>
  2752. <a href="https://wiki.fhem.de/wiki/Modul_Astro">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#Astro">Astro</a>
  2753. </ul>
  2754. <p><a name="Aurora"></a>
  2755. <h3>Aurora</h3>
  2756. <ul>
  2757. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  2758. hier: <a href='commandref.html#Aurora'>Aurora</a><br/>
  2759. </ul>
  2760. <a name="AutoShuttersControl"></a>
  2761. <h3>Automatische Rolladensteuerung - ASC</h3>
  2762. <div class='langLinks'>[<a href='commandref.html#AutoShuttersControl'>EN</a> DE]</div>
  2763. <ul>
  2764. <u><b>AutoShuttersControl oder kurz ASC,steuert automatisch Deine Rolladen nach bestimmten Vorgaben. Zum Beispiel Sonnenaufgang und Sonnenuntergang oder je nach Fenstervent</b></u>
  2765. <br>
  2766. Dieses Modul soll alle vom Modul &uuml;berwachten Roll&auml;den entsprechend der Konfiguration &uuml;ber die Attribute im Rolladen Device steuern. Es wird bei entsprechender Konfiguration zum Beispiel die Roll&auml;den hochfahren wenn ein Bewohner erwacht ist und draussen bereits die Sonne aufgegangen ist. Auch ist es m&ouml;glich das bei ankippen eines Fensters der geschlossene Rolladen in eine L&uuml;ftungsposition f&auml;hrt.
  2767. <br><br>
  2768. <a name="AutoShuttersControlDefine"></a>
  2769. <b>Define</b>
  2770. <ul><br>
  2771. <code>define &lt;name&gt; AutoShuttersControl</code>
  2772. <br><br>
  2773. Example:
  2774. <ul><br>
  2775. <code>define Rolladensteuerung AutoShuttersControl</code><br>
  2776. </ul>
  2777. <br>
  2778. Der Befehl erstellt ein AutoShuttersControl Device mit Namen Rolladen.<br>
  2779. Nachdem das Device angelegt wurde,m&uuml;ssen in allen Roll&auml;den Devices welche gesteuert werden sollen das Attribut ASC mit Wert 1 oder 2 gesetzt werden.<br>
  2780. Dabei bedeutet 1 = "Inverse oder Rollo Bsp.: Rollo Oben 0,Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position",2 = "Homematic Style Bsp.: Rollo Oben 100,Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct.<br>
  2781. Habt Ihr das Attribut gesetzt,k&ouml;nnt Ihr den automatischen Scan nach den Devices anstossen.
  2782. </ul>
  2783. <br><br>
  2784. <a name="AutoShuttersControlReadings"></a>
  2785. <b>Readings</b>
  2786. <ul>
  2787. Im Modul Device
  2788. <ul>
  2789. <li>..._nextAstroTimeEvent - Uhrzeit des n&auml;chsten Astro Events,Sonnenauf,Sonnenuntergang oder feste Zeit pro Rollonamen</li>
  2790. <li>..._PosValue - aktuelle Position des Rolladen</li>
  2791. <li>..._lastPosValue - letzte Position des Rolladen</li>
  2792. <li>..._lastDelayPosValue - letzter abgesetzter Fahrbefehl welcher beim n&auml;chsten zul&auml;ssigen Event ausgef&uuml;hrt wird.</li>
  2793. <li>partyMode - on/off aktiviert den globalen Partymodus,alle Roll&auml;den welche das Attribut ASC_Partymode bei sich auf on gestellt haben werden nicht mehr gesteuert. Der letzte Schaltbefehle welcher durch ein Fensterevent oder Bewohnerstatus an die Roll&auml;den gesendet wurde,wird beim off setzen durch set ASC-Device partyMode off ausgef&uuml;hrt</li>
  2794. <li>lockOut - on/off f&uuml;r das aktivieren des Aussperrschutzes gem&auml;&szlig; dem entsprechenden Attribut ASC_lock-out im jeweiligen Rolladen. (siehe Beschreibung bei den Attributen f&uuml;r die Rolladendevices)</li>
  2795. <li>room_... - Auflistung aller Roll&auml;den welche in den jeweiligen R&auml;men gefunden wurde,Bsp.: room_Schlafzimmer,Terrasse</li>
  2796. <li>state - Status des Devices active,enabled,disabled</li>
  2797. <li>sunriseTimeWeHoliday - on/off wird das Rolladen Device Attribut Attributes ASC_Time_Up_WE_Holiday Beachtet oder nicht</li>
  2798. <li>userAttrList - Status der UserAttribute welche an die Roll&auml;den gesendet werden</li>
  2799. </ul><br>
  2800. In den Roll&auml;den Devices
  2801. <ul>
  2802. <li>ASC_Time_DriveUp - Sonnenaufgangszei f&uuml;r das Rollo</li>
  2803. <li>ASC_Time_DriveDown - Sonnenuntergangszeit f&uuml;r das Rollo</li>
  2804. <li>ASC_ShuttersLastDrive - Grund des letzten fahrens vom Rolladen</li>
  2805. </ul>
  2806. </ul>
  2807. <br><br>
  2808. <a name="AutoShuttersControlSet"></a>
  2809. <b>Set</b>
  2810. <ul>
  2811. <li>partyMode - on/off aktiviert den globalen Partymodus. Siehe Reading partyMode</li>
  2812. <li>lockOut - on/off aktiviert den globalen Aussperrschutz. Siehe Reading partyMode</li>
  2813. <li>renewSetSunriseSunsetTimer - erneuert bei allen Roll&auml;den die Zeiten f&uuml;r Sunset und Sunrise und setzt die internen Timer neu.</li>
  2814. <li>scanForShutters - sucht alle FHEM Devices mit dem Attribut "AutoShuttersControl" 1/2</li>
  2815. <li>sunriseTimeWeHoliday - on/off aktiviert/deaktiviert die Beachtung des Rolladen Device Attributes ASC_Time_Up_WE_Holiday</li>
  2816. <li>createNewNotifyDev - Legt die interne Struktur f&uuml;r NOTIFYDEV neu an - Attribut verbose muss gr&ouml;$szlig;er 3 sein.</li>
  2817. <li>selfDefense - on/off,aktiviert/deaktiviert den Selbstschutz,wenn das Residents Device absent meldet und selfDefense aktiv ist und ein Fenster im Haus steht noch offen,wird an diesem Fenster das Rollo runter gefahren</li>
  2818. <li>wiggle - bewegt einen Rollladen oder alle Rolll&auml;den (f&uuml;r Abschreckungszwecke bei der Alarmierung) um 5%, und nach 1 Minute wieder zur&uuml;ck zur Ursprungsposition</li>
  2819. </ul>
  2820. <br><br>
  2821. <a name="AutoShuttersControlGet"></a>
  2822. <b>Get</b>
  2823. <ul>
  2824. <li>showShuttersInformations - zeigt eine &Uuml;bersicht der Autofahrzeiten</li>
  2825. <li>showNotifyDevsInformations - zeigt eine &Uuml;bersicht der abgelegten NOTIFYDEV Struktur. Diehnt zur Kontrolle</li>
  2826. </ul>
  2827. <br><br>
  2828. <a name="AutoShuttersControlAttributes"></a>
  2829. <b>Attributes</b>
  2830. <ul>
  2831. Im Modul Device
  2832. <ul>
  2833. <li>ASC_antifreezeTemp - Temperatur ab welcher der Frostschutz greifen soll und das Rollo nicht mehr f&auml;hrt. Der letzte Fahrbefehl wird gespeichert.</li>
  2834. <li>ASC_autoAstroModeEvening - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
  2835. <li>ASC_autoAstroModeEveningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgew&auml;hlt</li>
  2836. <li>ASC_autoAstroModeMorning - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
  2837. <li>ASC_autoAstroModeMorningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgew&auml;hlt</li>
  2838. <li>ASC_autoShuttersControlComfort - on/off schaltet die Komfortfunktion an. Bedeutet das ein Rolladen mit einem threestate Sensor am Fenster beim &ouml;ffnen in eine weit offen Position f&auml;hrt. Die Offenposition wird beim Rolladen &uuml;ber das Attribut ASC_Pos_after_ComfortOpen eingestellt.</li>
  2839. <li>ASC_autoShuttersControlEvening - on/off,ob Abends die Roll&auml;den automatisch nach Zeit gesteuert werden sollen</li>
  2840. <li>ASC_autoShuttersControlMorning - on/off,ob Morgens die Roll&auml;den automatisch nach Zeit gesteuert werden sollen</li>
  2841. <li>ASC_temperatureReading - Reading f&uuml;r die Aussentemperatur</li>
  2842. <li>ASC_temperatureSensor - Device f&uuml;r die Aussentemperatur</li>
  2843. <li>ASC_timeUpHolidayDevice - Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading beinhalten.</li>
  2844. <li>ASC_timeUpHolidayReading - passendes Reading zum ASC_timeUpHolidayDevice zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 beinhalten.</li>
  2845. <li>ASC_residentsDevice - Devicenamen vom Residents Device der obersten Ebene</li>
  2846. <li>ASC_residentsDeviceReading - Status Reading vom Residents Device der obersten Ebene</li>
  2847. <li>ASC_brightnessMinVal - minimaler Lichtwert ab welchen Schaltbedingungen gepr&uuml;ft werden sollen</li>
  2848. <li>ASC_brightnessMaxVal - maximaler Lichtwert ab welchen Schaltbedingungen gepr&uuml;ft werden sollen</li>
  2849. <li>ASC_rainSensorDevice - Device welches bei Regen getriggert werden soll</li>
  2850. <li>ASC_rainSensorReading - das ensprechende Reading zum Regendevice</li>
  2851. <li>ASC_rainSensorShuttersClosedPos - Position n welche der Rolladen fahren soll wenn es Regnet</li>
  2852. <li>ASC_shuttersDriveOffset - maximale zuf&auml;llige Verz&ouml;gerung in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet sofort</li>
  2853. </ul><br>
  2854. In den Roll&auml;den Devices
  2855. <ul>
  2856. <li>ASC - 0/1/2 1 = "Inverse oder Rollo Bsp.: Rollo Oben 0,Rollo Unten 100 und der Befehl zum Prozentualen fahren ist position",2 = "Homematic Style Bsp.: Rollo Oben 100,Rollo Unten 0 und der Befehl zum Prozentualen fahren ist pct</li>
  2857. <li>ASC_Antifreeze - on/off Frostschutz an oder aus</li>
  2858. <li>ASC_AutoAstroModeEvening - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
  2859. <li>ASC_AutoAstroModeEveningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeEvening HORIZON ausgew&auml;hlt</li>
  2860. <li>ASC_AutoAstroModeMorning - aktuell REAL,CIVIL,NAUTIC,ASTRONOMIC</li>
  2861. <li>ASC_AutoAstroModeMorningHorizon - H&ouml;he &uuml;ber Horizont wenn beim Attribut ASC_autoAstroModeMorning HORIZON ausgew&auml;hlt</li>
  2862. <li>ASC_Closed_Pos - in 10 Schritten von 0 bis 100,default Vorgabe ist abh&auml;ngig vom Attribut AutoShuttersControl</li>
  2863. <li>ASC_Down - astro/time/brightness bei Astro wird Sonnenuntergang berechnet,bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Down_Early und ASC_Time_Down_Late korrekt gesetzt werden. Der Timer l&auml;uft dann nach ASC_Time_Down_Late Zeit,es wird aber in der Zeit zwischen ASC_Time_Down_Early und ASC_Time_Down_Late geschaut ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde,wenn ja wird der Rolladen runter gefahren</li>
  2864. <li>ASC_Mode_Down - always/home/absent/off wann darf die Automatik steuern. immer,niemals,bei abwesenheit des Roommate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)</li>
  2865. <li>ASC_Mode_Up - always/home/absent/off wann darf die Automatik steuern. immer,niemals,bei abwesenheit des Roommate (ist kein Roommate und absent eingestellt wird gar nicht gesteuert)</li>
  2866. <li>ASC_Drive_Offset - maximale zuf&auml;llige Verz&ouml;gerung in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet sofort, -1 bedeutet das das gleichwertige Attribut aus dem ASC Device ausgewertet werden soll.</li>
  2867. <li>ASC_Open_Pos - in 10 Schritten von 0 bis 100,default Vorgabe ist abh&auml;ngig vom Attribut AutoShuttersControl</li>
  2868. <li>ASC_Partymode - on/off schaltet den Partymodus an oder aus,Wird dann am ASC Device set ASC-DEVICE partyMode on geschalten,werden alle Fahrbefehle an den Roll&auml;den welche das Attribut auf on haben zwischen gespeichert und sp&auml;ter erst ausgef&uuml;hrt</li>
  2869. <li>ASC_Pos_Reading - Name des Readings welches die Position des Rolladen in Prozent an gibt, wird bei unbekannten Device Typen auch als set Befehl zum fahren verwendet</li>
  2870. <li>ASC_Pos_after_ComfortOpen - in 10 Schritten von 0 bis 100,default Vorgabe ist abh&auml;ngig vom Attribut AutoShuttersControl</li>
  2871. <li>ASC_Roommate_Reading - das Reading zum Roommate Device welches den Status wieder gibt</li>
  2872. <li>ASC_Roommate_Device - mit Komma getrennte Namen des/der Roommate Device/s welche den/die Bewohner des Raumes vom Rolladen wieder gibt. Es macht nur Sinn in Schlaf- oder Kinderzimmern</li>
  2873. <li>ASC_Time_Down_Early - Sunset fr&uuml;hste Zeit zum runter fahren</li>
  2874. <li>ASC_Time_Down_Late - Sunset sp&auml;teste Zeit zum runter fahren</li>
  2875. <li>ASC_Time_Up_Early - Sunrise fr&uuml;hste Zeit zum hoch fahren</li>
  2876. <li>ASC_Time_Up_Late - Sunrise sp&auml;teste Zeit zum hoch fahren</li>
  2877. <li>ASC_Time_Up_WE_Holiday - Sunrise fr&uuml;hste Zeit zum hochfahren am Wochenende und/oder Urlaub (we2holiday wird beachtet),Achtung sollte nicht gr&ouml;&szlig;er sein wie ASC_Time_Up_Late sonst wird ASC_Time_Up_Late verwendet</li>
  2878. <li>ASC_Up - astro/time/brightness bei Astro wird Sonnenaufgang berechnet,bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Up_Early und ASC_Time_Up_Late korrekt gesetzt werden. Der Timer l&auml;uft dann nach ASC_Time_Up_Late Zeit,es wird aber in der Zeit zwischen ASC_Time_Up_Early und ASC_Time_Up_Late geschaut ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde,wenn ja wird der Rolladen runter gefahren</li>
  2879. <li>ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100,default Vorgabe ist abh&auml;ngig vom Attribut AutoShuttersControl</li>
  2880. <li>ASC_Ventilate_Window_Open - auf l&uuml;ften,wenn das Fenster gekippt/ge&ouml;ffnet wird und aktuelle Position unterhalb der L&uuml;ften-Position ist</li>
  2881. <li>ASC_WindowRec - Name des Fensterkontaktes an welchen Fenster der Rolladen angebracht ist</li>
  2882. <li>ASC_WindowRec_subType - Typ des verwendeten Fensterkontakts: twostate (optisch oder magnetisch) oder threestate (Drehgriffkontakt)</li>
  2883. <li>ASC_lock-out - soft/hard stellt entsprechend den Aussperrschutz ein. Bei global aktiven Aussperrschutz (set ASC-Device lockOut soft) und einem Fensterkontakt open bleibt dann der Rolladen oben. Dies gilt nur bei Steuerbefehle Ăźber das ASC Modul. Stellt man global auf hard,wird bei entsprechender M&ouml;glichkeit versucht den Rolladen Hardwareseitig zu blockieren. Dann ist auch ein fahren &uuml;ber die Taster nicht mehr m&ouml;glich.</li>
  2884. <li>ASC_lock-outCmd - inhibit/blocked set Befehl f&uuml;r das Rolladen-Device zum Hardware sperren. Zum gesetzt werden wenn man "ASC_lock-out" auf hard setzt</li>
  2885. <li>ASC_Self_Defense_Exclude - on/off bei on Wert wird dieser Rolladen bei aktiven Self Defense und offenen Fenster nicht runter gefahren wenn Residents absent ist.</li>
  2886. <li>ASC_Shading_Brightness_Sensor - Sensor Device welches f&uuml;r die Lichtwerte verwendet wird. ACHTUNG! Findet auch Verwendung bei ASC_Down - brightness</li>
  2887. <li>ASC_BrightnessMinVal - minimaler Lichtwert ab welchen Schaltbedingungen gepr&uuml;ft werden sollen / wird der Wert von -1 nicht ge&auml;ndert, so wird automatisch der Wert aus dem Moduldevice genommen</li>
  2888. <li>ASC_BrightnessMaxVal - maximaler Lichtwert ab welchen Schaltbedingungen gepr&uuml;ft werden sollen / wird der Wert von -1 nicht ge&auml;ndert, so wird automatisch der Wert aus dem Moduldevice genommen</li>
  2889. <li>ASC_ShuttersPlace - window/terrace, wenn dieses Attribut auf terrace gesetzt ist und das Residence Device in den Status "done" geht und SelfDefence aktiv ist wird das Rollo geschlossen</li>
  2890. </ul>
  2891. </ul>
  2892. </ul>
  2893. <p><a name="BDKM"></a>
  2894. <h3>BDKM</h3>
  2895. <ul>
  2896. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  2897. hier: <a href='commandref.html#BDKM'>BDKM</a><br/>
  2898. </ul>
  2899. <a name="BOSEST"></a>
  2900. <h3>BOSEST</h3>
  2901. <ul>
  2902. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  2903. hier: <a href='commandref.html#BOSEST'>BOSEST</a><br/>
  2904. </ul>
  2905. <a name="BRAVIA"></a>
  2906. <h3>BRAVIA</h3>
  2907. <div class='langLinks'>[<a href='commandref.html#BRAVIA'>EN</a> DE]</div>
  2908. <ul>
  2909. Diese Module dient zur Steuerung von Sony TVs der BRAVIA-Serien beginnend mit dem Modelljahr 2011.
  2910. <br><br>
  2911. <b>Define</b>
  2912. <ul>
  2913. <code>define &lt;name&gt; BRAVIA &lt;ip-or-hostname&gt; [&lt;poll-interval&gt;]</code>
  2914. <br><br>
  2915. Bei der Definition eines BRAVIA Gerätes wird ein interner Task eingeplant,
  2916. der regelmä�ig den Status des TV prßft und weitere Informationen abruft.<br>
  2917. Das Intervall des Tasks kann durch den optionalen Parameter &lt;poll-intervall&gt; in Sekunden gesetzt werden.
  2918. Ansonsten wird der Task mit 45 Sekunden als Intervall definiert.
  2919. <br><br>
  2920. Nach der Definition eines Gerätes muss dieses einmalig im TV als Fernbedienung
  2921. registriert werden (<a href=#BRAVIAregister><code>set register</code></a>).
  2922. <br><br>
  2923. Soweit die Readings nicht den allgemeinen AV Readings entsprechen, sind sie gruppiert:
  2924. <table>
  2925. <tr><td>s_*</td><td>: Status</td></tr>
  2926. <tr><td>ci_*</td><td>: Inhaltsinfo</td></tr>
  2927. </table>
  2928. <br><br>
  2929. Das Modul enthält vorgefertigte Layouts fßr <a href=#remotecontrol>remotecontrol</a> mit PNG und SVG.
  2930. <br><br>
  2931. </ul>
  2932. <a name="BRAVIAset"></a>
  2933. <b>Set</b>
  2934. <ul>
  2935. <code>set &lt;name&gt; &lt;option&gt; &lt;value&gt;</code>
  2936. <br><br>
  2937. Optionen:
  2938. <ul>
  2939. <li><i>application</i><br>
  2940. Liste der Anwendungen.
  2941. Anwenungen sind ab Modelljahr 2013 verfĂźgbar.</li>
  2942. <li><i>channel</i><br>
  2943. Liste aller bekannten Kanäle. Das Modul merkt sich alle aufgerufenen Kanäle.
  2944. Ab Modelljahr 2013 werden die Kanäle automatisch geladen
  2945. (Anzahl siehe <a href=#BRAVIAchannelsMax>channelsMax</a>).</li>
  2946. <li><i>channelDown</i><br>
  2947. Einen Kanal zurĂźck schalten.</li>
  2948. <li><i>channelUp</i><br>
  2949. Einen Kanal weiter schalten.</li>
  2950. <li><i>input</i><br>
  2951. Liste der Eingänge.
  2952. Eingänge sind ab Modelljahr 2013 verfßgbar.</li>
  2953. <li><i>mute</i><br>
  2954. Direkte Stummschaltung erfolgt nur per aktiviertem <a href=#BRAVIAupnp>Upnp</a>.</li>
  2955. <li><i>off</i><br>
  2956. Schaltet den TV aus. Der State des Gerätes wird auf "set_off" gesetzt. Dieser Wert wird nach 60 Sekunden wieder ßberschrieben oder sobald der TV entsprechend "off" meldet.</li>
  2957. <li><a name="BRAVIAon"></a><i>on</i><br>
  2958. Einschalten des TV, ab Modelljahr 2013 per WOL. Der State des Gerätes wird auf "set_on" gesetzt. Dieser Wert wird nach 60 Sekunden wieder ßberschrieben oder sobald der TV entsprechend "on" meldet.</li>
  2959. <li><i>pause</i><br>
  2960. Pausiert die Wiedergabe einer Aufnahme, einer internen App, etc.</li>
  2961. <li><i>play</i><br>
  2962. Startet die Wiedergabe einer Aufnahme, einer internen App, etc.</li>
  2963. <li><i>record</i><br>
  2964. Startet die Aufnahme des aktuellen Inhalts.</li>
  2965. <li><a name="BRAVIAregister"></a><i>register</i><br>
  2966. Einmalige Registrierung von FHEM als Fernbedienung im TV.<br>
  2967. Bei <a href=#BRAVIArequestFormat>requestFormat</a> = "xml" erfolgt die Registrierung ohne Parameter.<br>
  2968. Bei <a href=#BRAVIArequestFormat>requestFormat</a> = "json" ist die Registrierung zweistufig.<br>
  2969. Beim Aufruf des Setter gibt es ein Eingabefeld:
  2970. <ol>
  2971. <li>Aufruf mit leerem Eingabefeld. Auf dem TV sollte eine PIN zur Registrierung erscheinen.</li>
  2972. <li>PIN im Eingabefeld eintragen und Registrierung noch mal ausfĂźhren</li></ol></li>
  2973. <li><a name="BRAVIArequestFormat"></a><i>requestFormat</i><br>
  2974. "xml" fßr xml-basierte Kommunikation 2011er/2012er Geräte<br>
  2975. "json" fĂźr die Kommunikation seit der 2013er Generation</li>
  2976. <li><i>remoteControl</i><br>
  2977. Direktes Senden von Kommandos an den TV.</li>
  2978. <li><i>statusRequest</i><br>
  2979. Ruft die aktuellen Statusinformationen vom TV ab.</li>
  2980. <li><i>stop</i><br>
  2981. Stoppt die Wiedergabe einer Aufnahme, einer internen App, etc.</li>
  2982. <li><i>text</i><br>
  2983. �berträgt den eingegebenen Text in ein Textfeld der Anzeige.</li>
  2984. <li><i>toggle</i><br>
  2985. Wechselt den Einschaltstatus des TV.</li>
  2986. <li><i>tvpause</i><br>
  2987. Aktiviert den Timeshift-Modus.</li>
  2988. <li><a name="BRAVIAupnp"></a><i>upnp</i><br>
  2989. Aktiviert Upnp zum Abfragen und Einstellen der Lautstärke.</li>
  2990. <li><i>volume</i><br>
  2991. Direktes Setzen der Lautstärke erfolgt nur per aktiviertem <a href=#BRAVIAupnp>Upnp</a>.</li>
  2992. <li><i>volumeDown</i><br>
  2993. Verringert die Lautstärke.</li>
  2994. <li><i>volumeUp</i><br>
  2995. ErhÜht die Lautstärke.</li>
  2996. </ul>
  2997. </ul>
  2998. <br>
  2999. <a name="BRAVIAattr"></a>
  3000. <b>Attributes</b>
  3001. <ul>
  3002. <code>attr &lt;name&gt; &lt;attribute&gt; &lt;value&gt;</code>
  3003. <br><br>
  3004. Attribute:
  3005. <ul>
  3006. <li><a name="BRAVIAchannelsMax"></a><i>channelsMax</i><br>
  3007. Maximale Anzahl der im FHEMWEB angezeigten Kanäle. Der Standartwert ist 50.</li>
  3008. <li><a name="BRAVIAmacaddr"></a><i>macaddr</i><br>
  3009. ErmĂśglicht das Einschalten des TV per WOL.</li>
  3010. </ul>
  3011. </ul>
  3012. </ul>
  3013. <p><a name="BS"></a>
  3014. <h3>BS</h3>
  3015. <ul>
  3016. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  3017. hier: <a href='commandref.html#BS'>BS</a><br/>
  3018. </ul>
  3019. <a name="Babble"></a>
  3020. <h3>Babble</h3>
  3021. <div class='langLinks'>[<a href='commandref.html#Babble'>EN</a> DE]</div>
  3022. <ul>
  3023. <a href="https://wiki.fhem.de/wiki/Modul_Babble">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#babble">babble</a>
  3024. </ul>
  3025. <p><a name="Broadlink"></a>
  3026. <h3>Broadlink</h3>
  3027. <div class='langLinks'>[<a href='commandref.html#Broadlink'>EN</a> DE]</div>
  3028. <ul>
  3029. <i>Broadlink</i> implementiert die Verbindung zu Broadlink Geräten - aktuell mit Broadlink RM Pro, welcher sowohl Infrarot als auch 433MHz aufnehmen und anschlie�end versenden kann.
  3030. Zusätzlich werden RMMinis und die Wlan Steckdosen SP3 und SP3S unterstßtzt
  3031. <br>
  3032. Das Modul benĂśtigt AES-VerschlĂźsslung.<br>
  3033. In Windows installiert man die UntersĂźtzung mit:<br>
  3034. <code>ppm install Crypt-CBC</code><br>
  3035. <code>ppm install Crypt-OpenSSL-AES</code><br><br>
  3036. Auf Linux/Raspberry:
  3037. <code>sudo apt-get install libcrypt-cbc-perl</code><br>
  3038. <code>sudo apt-get install libcrypt-rijndael-perl</code><br>
  3039. <code>sudo cpan Crypt/OpenSSL/AES.pm</code><br>
  3040. <br><br>
  3041. <a name="Broadlinkdefine"></a>
  3042. <b>Define</b>
  3043. <ul>
  3044. <code>define &lt;name&gt; Broadlink &lt;ip/host&gt; &lt;mac&gt; &lt;type=rmpro or rmmini or sp3 or sp3s&gt;</code>
  3045. <br><br>
  3046. Beispiel: <code>define broadlinkWZ Broadlink 10.23.11.85 34:EA:34:F4:77:7B rmpro</code>
  3047. <br><br>
  3048. Die <i>mac</i>-Adresse des Gerätes muss im folgenden Format eingegeben werden: xx:xx:xx:xx:xx<br>
  3049. Der Typ <i>sp3</i> wird fßr schaltbare Steckdosen genutzt. <i>rmpro</i> fßr alle anderen Geräte.
  3050. </ul>
  3051. <br>
  3052. <a name="Broadlinkset"></a>
  3053. <b>Set f&uuml;r rmpro</b><br>
  3054. <ul>
  3055. <li><code>set &lt;name&gt; &lt;commandSend&gt; &lt;command name&gt;</code>
  3056. <br><br>
  3057. Sendet ein vorher aufgenommenen Befehl
  3058. </li>
  3059. <li><code>set &lt;name&gt; recordNewCommand &lt;command name&gt;</code>
  3060. <br><br>
  3061. Nimmt ein neuen Befehl auf. Man muss einen Befehlnamen angeben.
  3062. </li>
  3063. <li>
  3064. <code>set &lt;name&gt; remove &lt;command name&gt;</code>
  3065. <br><br>
  3066. LĂśscht einen vorher aufgezeichneten Befehl.
  3067. </li>
  3068. <li>
  3069. <code>set &lt;name&gt; rename &lt;old command name&gt; &lt;new command name&gt;</code>
  3070. <br><br>
  3071. Benennt einen vorher aufgezeichneten Befehl um.
  3072. </li>
  3073. <li><code>set &lt;name&gt; getTemperature</code>
  3074. <br><br>
  3075. Ermittelt die aktuelle Temperatur die am Gerät gemessen wird.
  3076. </li>
  3077. </ul>
  3078. <br>
  3079. <b>Set f&uuml;r rmmini</b><br>
  3080. <ul>
  3081. <li><code>set &lt;name&gt; &lt;commandSend&gt; &lt;command name&gt;</code>
  3082. <br><br>
  3083. Sendet ein vorher aufgenommenen Befehl
  3084. </li>
  3085. <li><code>set &lt;name&gt; recordNewCommand &lt;command name&gt;</code>
  3086. <br><br>
  3087. Nimmt ein neuen Befehl auf. Man muss einen Befehlnamen angeben.
  3088. </li>
  3089. <li>
  3090. <code>set &lt;name&gt; remove &lt;command name&gt;</code>
  3091. <br><br>
  3092. LĂśscht einen vorher aufgezeichneten Befehl.
  3093. </li>
  3094. <li>
  3095. <code>set &lt;name&gt; rename &lt;old command name&gt; &lt;new command name&gt;</code>
  3096. <br><br>
  3097. Benennt einen vorher aufgezeichneten Befehl um.
  3098. </li>
  3099. </ul>
  3100. <br>
  3101. <b>Set f&uuml;r sp3</b><br>
  3102. <ul>
  3103. <li><code>set &lt;name&gt; on</code>
  3104. <br><br>
  3105. Schaltet das Gerät an.
  3106. </li>
  3107. <li><code>set &lt;name&gt; off</code>
  3108. <br><br>
  3109. Schaltet das Gerät aus.
  3110. </li>
  3111. <li><code>set &lt;name&gt; toggle</code>
  3112. <br><br>
  3113. Schaltet das Gerät entweder ein oder aus.
  3114. </li>
  3115. <li><code>set &lt;name&gt; getStatus</code>
  3116. <br><br>
  3117. Ermittelt den aktuellen Status des Gerätes.
  3118. </li>
  3119. </ul>
  3120. <br>
  3121. <b>Set f&uuml;r sp3s</b><br>
  3122. <ul>
  3123. <li><code>set &lt;name&gt; on</code>
  3124. <br><br>
  3125. Schaltet das Gerät an.
  3126. </li>
  3127. <li><code>set &lt;name&gt; off</code>
  3128. <br><br>
  3129. Schaltet das Gerät aus.
  3130. </li>
  3131. <li><code>set &lt;name&gt; toggle</code>
  3132. <br><br>
  3133. Schaltet das Gerät entweder ein oder aus.
  3134. </li>
  3135. <li><code>set &lt;name&gt; getStatus</code>
  3136. <br><br>
  3137. Ermittelt den aktuellen Status des Gerätes.
  3138. </li>
  3139. <li><code>set &lt;name&gt; getEnergy</code>
  3140. <br><br>
  3141. Ermittelt den aktuellen Stromverbrauch des angeschlossenen Gerätes.
  3142. </li>
  3143. </ul>
  3144. <br>
  3145. <a name="Broadlinkattr"></a>
  3146. <b>Attribute f&uuml;r alle Broadlink Gräte</b><br>
  3147. <ul>
  3148. <li><code>socket_timeout</code>
  3149. <br><br>
  3150. Setzt den Timeout fßr die Gerätekommunikation.
  3151. </li>
  3152. </ul>
  3153. <br>
  3154. </ul>
  3155. <p><a name="CALVIEW"></a>
  3156. <h3>CALVIEW</h3>
  3157. <div class='langLinks'>[<a href='commandref.html#CALVIEW'>EN</a> DE]</div>
  3158. <ul>Dieses Modul erstellt ein Device welches als Readings Termine eines oder mehrere Kalender(s), basierend auf dem 57_Calendar.pm Modul, besitzt. Ihr mĂźsst das Perl-Modul Date::Parse installieren!</ul>
  3159. <ul>Bitte setzt das Attribut HideOlderThen in eurem CALENDAR_Device, da sonst auch vergangene Termine gezeigt werden.</ul>
  3160. <b>Define</b>
  3161. <ul><code>define &lt;Name&gt; CALVIEW &lt;Kalendername(n) getrennt durch ','&gt; &lt;next&gt; &lt;updateintervall in sek (default 43200)&gt;</code></ul>
  3162. <ul><code>define myView CALVIEW Googlekalender next</code></ul>
  3163. <ul><code>define myView CALVIEW Googlekalender,holiday next 900</code></ul>
  3164. <ul>- die Einstellung des Aktualisierungsintervalls wird normalerweise nicht benĂśtigt, da jede Kalenderaktualisierung ein Caview-Update auslĂśst</ul>
  3165. <a name="CALVIEW set"></a>
  3166. <b>Set</b>
  3167. <ul>update readings:</ul>
  3168. <ul><code>set &lt;Name&gt; update</code></ul>
  3169. <ul><code>set myView update</code></ul><br>
  3170. <b>Attributes</b>
  3171. <li>datestyle<br>
  3172. nicht gesetzt - Standard, Readings bdatetimeiso / edatetimeiso werden nicht gezeigt<br>
  3173. ISO8601 - aktiviert die readings bdatetimeiso / edatetimeiso (zeigen Terminstart und Ende im ISO8601 Format zB. 2017-02-27T00:00:00)
  3174. </li><br>
  3175. <li>disable<br>
  3176. 0 / nicht gesetzt - aktiviert die interne Notify-Funktion (Standard) <br>
  3177. 1 - deaktiviert die interne Notify-Funktion welche ausgelĂśst wird wenn sich einer der Kalender aktualisiert hat
  3178. </li><br>
  3179. <li>filterSummary &lt;filtersouce&gt;:&lt;filtersummary&gt;[,&lt;filtersouce&gt;:&lt;filtersummary&gt;]<br>
  3180. not set - zeigt alle Termine (Standard) <br>
  3181. &lt;filtersouce&gt;:&lt;filtersummary&gt;[,&lt;filtersouce&gt;:&lt;filtersummary&gt;] - CALVIEW filtert Termine die &lt;filtersquelle&gt;:&lt;filtertitel&gt; entsprechen, mehrere Filter sind durch Komma (,) zu trennen.
  3182. zb.: filterSummary Kalender_Abfall:Leichtverpackungen,Kalender_Abfall:Bioabfall
  3183. filterSummary Kalender_Abfall:Leichtverpackungen,Kalender_Feiertage:.*,Kalender_Christian:.*,Kalender_Geburtstage:.*
  3184. </li><br>
  3185. <li>fulldaytext [text]<br>
  3186. Dieser Text wird bei ganztägigen Terminen in _timeshort Readings genutzt (default ganztägig)
  3187. </li><br>
  3188. <li>isbirthday<br>
  3189. 0 / nicht gesetzt - keine Altersberechnung (Standard) <br>
  3190. 1 - aktiviert die Altersberechnung im Modul. Das Alter wird aus der in der Terminbeschreibung (description) angegebenen Jahreszahl (Geburtsjahr) berechnet. (siehe Attribut yobfield)
  3191. </li><br>
  3192. <li>maxreadings<br>
  3193. bestimmt die Anzahl der Termine als Readings
  3194. </li><br>
  3195. <li>modes<br>
  3196. hier kÜnnen die CALENDAR modi gewählt werden, welche in der View angezeigt werden sollen
  3197. </li><br>
  3198. <li>oldStyledReadings<br>
  3199. 0 die Standarddarstellung fĂźr Readings <br>
  3200. 1 aktiviert die Termindarstellung im "alten" Format "2015.06.21-00:00" mit Wert "Start of Summer"
  3201. </li><br>
  3202. <li>sourcecolor &lt;calendername&gt;:&lt;colorcode&gt;[,&lt;calendername&gt;:&lt;colorcode&gt;]<br>
  3203. Hier kann man die Farben fĂźr die einzelnen Calendar definieren die dann zb im Tabletui widget genutzt werden kann.
  3204. Die calendar:color Elemente sind durch Komma zu trennen.
  3205. So kann man zb die google-Kalender Farben auch in der TUI fĂźr eine gewohnte Anzeige nutzen.
  3206. </li><br>
  3207. <li>timeshort<br>
  3208. 0 Zeit in _timeshort Readings im Format 00:00:00 - 00:00:00 <br>
  3209. 1 Zeit in _timeshort Readings im Format 00:00 - 00:00
  3210. </li><br>
  3211. <li>yobfield<br>
  3212. _description - (der Standard) Geburtsjahr wird aus der Terminbechreibung gelesen <br>
  3213. _location - Geburtsjahr wird aus dem Terminort gelesen <br>
  3214. _summary - Geburtsjahr wird aus dem Termintiele gelesen (verwendet wird die erste folge von 4 Ziffern im String))
  3215. </li><br>
  3216. <li>weekdayformat<br>
  3217. formatiert den Namen im Reading weekdayname <br>
  3218. - de-long - (default) Deutsch, lang zb Dienstag <br>
  3219. - de-short - Deutsch, kurze zb Di <br>
  3220. - en-long - English, lang zb Tuesday <br>
  3221. - en-short - English, kurze zb Tue <br>
  3222. </li><br>
  3223. <p><a name="CM11"></a>
  3224. <h3>CM11</h3>
  3225. <ul>
  3226. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  3227. hier: <a href='commandref.html#CM11'>CM11</a><br/>
  3228. </ul>
  3229. <a name="CO20"></a>
  3230. <h3>CO20</h3>
  3231. <ul>
  3232. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  3233. hier: <a href='commandref.html#CO20'>CO20</a><br/>
  3234. </ul>
  3235. <a name="CUL"></a>
  3236. <h3>CUL</h3>
  3237. <div class='langLinks'>[<a href='commandref.html#CUL'>EN</a> DE]</div>
  3238. <ul>
  3239. <table>
  3240. <tr><td>
  3241. Der CUL/CUN(O) ist eine Familie von Funkempf&auml;ngern, die von der Firma
  3242. <a href="http://www.busware.de">Busware</a> verkauft wird.
  3243. Mit der OpenSource Firmware
  3244. <a href="http://culfw.de/culfw.html">culfw</a> k&ouml;nnen sie verschiedene
  3245. 868 MHz Funkprotokolle empfangen bzw. senden (FS20/FHT/S300/EM/HMS/MAX!).
  3246. Man kann diese Ger&auml;te auch zur Reichweitenverl&auml;ngerung, siehe
  3247. <a href="#CUL_RFR">CUL_RFR</a> einsetzen.
  3248. <br> <br>
  3249. Einige Protokolle (FS20, FHT und KS300) werden von diesem Modul in das FHZ
  3250. Format konvertiert, daher kann dasselbe logische Ger&auml;t verwendet werden,
  3251. egal ob das Funktelegramm von einem CUL oder einem FHZ Ger&auml;t empfangen
  3252. wird.<br>
  3253. Andere Protokolle (S300/EM) ben&ouml;tigen ihre eigenen Module. S300
  3254. Ger&auml;te werden vom Modul CUL_WS verarbeitet, wenn das Signal von einem
  3255. CUL empfangen wurde, &auml;hnliches gilt f&uuml;r EMWZ/EMGZ/EMEM: diese
  3256. werden vom CUL_EM Modul verarbeitet.<br><br>
  3257. Es ist m&ouml;glich mehr als ein Ger&auml;t zu verwenden, um einen besseren
  3258. Empfang zu erhalten, FHEM filtert doppelte Funktelegramme aus.<br><br>
  3259. Bemerkung: Dieses Modul ben&ouml;tigt unter Umst&auml;nden das
  3260. <code>Device::SerialPort</code> bzw. <code>Win32::SerialPort</code> Modul,
  3261. wenn Sie das Ger&auml;t &uuml;ber USB anschlie&szlig;en und das
  3262. Betriebssystem un&uuml;bliche Parameter f&uuml;r serielle Schnittstellen
  3263. setzt.<br><br>
  3264. </td><td>
  3265. <img src="ccc.jpg"/>
  3266. </td></tr>
  3267. </table>
  3268. <a name="CULdefine"></a>
  3269. <b>Define</b>
  3270. <ul>
  3271. <code>define &lt;name&gt; CUL &lt;device&gt; &lt;FHTID&gt;</code> <br>
  3272. <br>
  3273. Ger&auml;te, die an USB angeschlossen sind (CUL/CUN):<br>
  3274. <ul>
  3275. &lt;device&gt; gibt die serielle Schnittstelle an, mit der der CUL
  3276. kommuniziert. Der Name der seriellen Schnittstelle h&auml;ngt von der
  3277. gew&auml;hlten Distribution und USB-Treiber ab, unter Linux ist dies das
  3278. Kernel Modul cdc_acm und &uuml;blicherweise wird die Schnittstelle
  3279. /dev/ttyACM0 genannt. Wenn die Linux Distribution &uuml;ber kein Kernel
  3280. Modul cdc_acm verf&uuml;gt, dann kann die Schnittstelle &uuml;ber
  3281. usbserial mit dem folgenden Befehl erzeugt werden:
  3282. <ul><code>
  3283. modprobe usbserial vendor=0x03eb product=0x204b
  3284. </code></ul>
  3285. In diesem Fall ist diese Schnittstelle dann wahrscheinlich
  3286. /dev/ttyUSB0.<br><br>
  3287. Wenn der Name der Schnittstelle ein @ enth&auml;lt, kann nachfolgend die
  3288. verwendete Baudrate angegeben werden, z.B.: /dev/ttyACM0@38400.<br><br>
  3289. Wenn die Baudrate mit "directio" angegeben wird (z.B.:
  3290. /dev/ttyACM0@directio), wird das Perl Modul
  3291. <code>Device::SerialPort</code> nicht ben&ouml;tigt und FHEM &ouml;ffnet
  3292. die Schnittstelle mit einfachem Dateizugriff. Dies sollte dann
  3293. funktionieren, wenn das Betriebssystem vern&uuml;nftige Standardwerte
  3294. f&uuml;r die serielle Schnittstelle verwendet, wie z.B. einige Linux
  3295. Distributionen oder OSX.<br><br>
  3296. </ul>
  3297. Ger&auml;te, die mit dem Netzwerk verbunden sind (CUN(O)):<br>
  3298. <ul>
  3299. &lt;device&gt; gibt die Hostadresse:Port des Ger&auml;tes an, z.B.
  3300. 192.168.0.244:2323
  3301. </ul>
  3302. <br>
  3303. Wenn das Ger&auml;t mit none bezeichnet wird, wird keine Schnittstelle
  3304. ge&ouml;ffnet und man kann ohne angeschlossene Hardware
  3305. experimentieren.<br>
  3306. Die FHTID ist eine 4-stellige hexadezimale Zahl und wird verwendet, wenn
  3307. der CUL FHT Telegramme sendet bzw. Daten anfragt. Diese sollte als 0000
  3308. gew&auml;hlt werden, wenn man FHT80b Anfragen durch den CUL vermeiden will.
  3309. </ul>
  3310. <br>
  3311. <a name="CULset"></a>
  3312. <b>Set </b>
  3313. <ul>
  3314. <li>reopen<br>
  3315. &Ouml;ffnet die Verbindung zum Ger&auml;t neu und initialisiert es.
  3316. </li><br>
  3317. <li>raw<br>
  3318. Sendet einen CUL Firmware Befehl. Siehe auch
  3319. <a href="http://culfw.de/commandref.html">hier</a> f&uuml;r
  3320. n&auml;here Erl&auml;uterungen der CUL Befehle.
  3321. </li><br>
  3322. <li>freq / bWidth / rAmpl / sens<br>
  3323. Nur in der Betriebsart <a href="#rfmode">SlowRF</a>.<br> Bestimmt die
  3324. CUL Frequenz / Bandbreite / Empf&auml;nger Amplitude /
  3325. Empfindlichkeit<br>
  3326. Bitte mit Vorsicht verwenden, da es die verwendete Hardware
  3327. zerst&ouml;ren kann bzw. es zu illegalen Funkzust&auml;nden kommen
  3328. kann. <br> Bemerkung: Die Parameter f&uuml;r die RFR &Uuml;bermittlung
  3329. werden hierdurch nicht beeinflu&szlig;t.<br>
  3330. <ul>
  3331. <li>freq bestimmt sowohl die Empfangs- als auch die Sendefrequenz.<br>
  3332. Bemerkung: Auch wenn der CC1101 zwischen den Frequenzen 315 und 915
  3333. MHz eingestellt werden kann, ist die Antennenanbindung bzw. die
  3334. Antenne des CUL exakt auf eine Frequenz eingestellt. Standard ist
  3335. 868.3 MHz (bzw. 433 MHz).</li>
  3336. <li>bWidth kann zwischen 58 kHz und 812 kHz variiert werden.
  3337. Gro&szlig;e Werte sind empfindlicher gegen Interferencen, aber
  3338. machen es m&ouml;glich, nicht genau kalbrierte Signale zu
  3339. empfangen. Die Einstellung beeinflusst ebenso die &Uuml;bertragung.
  3340. Standardwert ist 325 kHz.</li>
  3341. <li>rAmpl ist die Verst&auml;rkung des Empf&auml;ngers mit Werten
  3342. zwischen 24 and 42 dB. Gr&ouml;&szlig;ere Werte erlauben den
  3343. Empfang von schwachen Signalen. Standardwert ist 42.</li>
  3344. <li>sens ist die Entscheidungsgrenze zwischen "on" und "off"
  3345. Zust&auml;nden und kann 4, 8, 12 oder 16 dB sein. Kleinere Werte
  3346. erlauben den Empfang von undeutlicheren Signalen. Standard ist 4
  3347. dB.</li>
  3348. </ul>
  3349. </li><br>
  3350. <a name="hmPairForSec"></a>
  3351. <li>hmPairForSec<br>
  3352. Nur in der Betriebsart <a href="#rfmode">HomeMatic</a>.<br> Versetzt den
  3353. CUL f&uuml;r die angegebene Zeit in Sekunden in den Anlern-Modus. Jedes
  3354. HM Ger&auml;t, das sich im Anlern-Modus befindet, wird an FHEM
  3355. angelernt. </li><br>
  3356. <a name="hmPairSerial"></a>
  3357. <li>hmPairSerial<br>
  3358. Nur in der Betriebsart <a href="#rfmode">HomeMatic</a>.<br>
  3359. Versucht, das angegebene Ger&auml;t anzulernen (zu "pairen"). Der
  3360. Parameter ist eine 10-stellige Zeichenfolge, die normalerweise mit
  3361. Buchstaben beginnt und mit Ziffern endet; diese sind auf der
  3362. R&uuml;ckseite der Ger&auml;te aufgedruckt. Wenn das Ger&auml;t ein
  3363. Empf&auml;nger ist, ist es nicht notwendig, das angegebene Ger&auml;t in
  3364. den Anlern-Modus zu versetzen. </li><br>
  3365. <a name="hmPairForSec"></a>
  3366. <li>led<br>
  3367. Schaltet die LED des CUL: aus (00), an (01) oder blinkend (02).
  3368. </li><br>
  3369. <li>ITClock</br>
  3370. Setzt die IT clock f&uuml; Intertechno V1 Protokoll. Default 250.
  3371. </li><br>
  3372. </ul>
  3373. <a name="CULget"></a>
  3374. <b>Get</b>
  3375. <ul>
  3376. <li>version<br>
  3377. gibt die Version der CUL Firmware zur&uuml;ck
  3378. </li><br>
  3379. <li>uptime<br>
  3380. gibt die Betriebszeit des CULs zur&uuml;ck (Zeit seit dem letzten Reset
  3381. des CULs) </li><br>
  3382. <li>raw<br>
  3383. Sendet einen CUL Firmware Befehl und wartet auf eine R&uuml;ckgabe des
  3384. CULs. Siehe auch README der Firmware f&uuml;r n&auml;here
  3385. Erl&auml;uterungen zu den CUL Befehlen. </li><br>
  3386. <li>fhtbuf<br>
  3387. Der CUL hat einen Puffer f&uuml;r Nachrichten f&uuml;r FHT. Wenn der
  3388. Puffer voll ist, werden neu empfangene Telegramme ignoriert und eine
  3389. "EOB" Meldung wird in die FHEM Logdatei geschrieben.
  3390. <code>fhtbuf</code> gibt den freien Speicher dieses Puffers (in hex)
  3391. zur&uuml;ck, ein leerer Puffer im CUL V2 hat 74 Byte, im CUL V3/CUN(O)
  3392. hat 200 Byte. Eine Telegramm ben&ouml;tigt 3 + 2x(Anzahl der FHT
  3393. Befehle) Byte, dies ist ein Grund, warum man mehrere FHT Befehle mit
  3394. einem <a href="#set">set</a> senden sollte. Ein weiterer Grund ist,
  3395. dass diese FHT Befehle in einem "Paket" zum FHT Ger&auml;t gesendet werden.
  3396. </li> <br>
  3397. <li>ccconf<br>
  3398. Liest einige CUL Register des CC1101 (Sende- und Empf&auml;ngerchips)
  3399. aus (Frequenz, Bandbreite, etc.) und stellt diese in lesbarer Form dar.
  3400. </li><br>
  3401. <li>cmds<br>
  3402. In abh&auml;gigkeit der installierten Firmware hat der CUL/CUN(O)
  3403. unterschiedliche Befehlss&auml;tze. N&auml;here Informationen &uuml;ber
  3404. die Befehle bzw. deren Interpretation siehe README Datei der
  3405. verwendeten CUL Firmware. Siehe auch Anmerkungen beim raw Befehl.
  3406. </li><br>
  3407. <li>credit10ms<br>
  3408. Der Funkraum darf f&uuml;r eine Dauer von credit10ms*10 ms belegt
  3409. werden, bevor die gesetzliche 1% Grenze erreicht ist und eine
  3410. LOVF Meldung ausgegeben wird. </li><br> </ul>
  3411. <a name="CULattr"></a>
  3412. <b>Attribute</b>
  3413. <ul>
  3414. <li><a name="addvaltrigger">addvaltrigger</a><br>
  3415. Generiert Trigger f&uuml;r zus&auml;tzliche Werte. Momentan sind dies
  3416. RSSI und RAWMSG f&uuml;r die CUL Familie und RAWMSG f&uuml;r FHZ.
  3417. </li><br>
  3418. <li><a name="connectCommand">connectCommand</a><br>
  3419. culfw Befehl, was nach dem Verbindungsaufbau mit dem USB-Ger&auml;t, nach
  3420. Senden der zum Initialisieren der konfigurierten rfmode ben&ouml;tigten
  3421. Befehle gesendet wird.
  3422. </li>
  3423. <li><a href="#do_not_notify">do_not_notify</a></li>
  3424. <li><a href="#attrdummy">dummy</a></li>
  3425. <li><a name="hmId">hmId</a><br>
  3426. Setzt die HomeMatic ID des Ger&auml;tes. Wenn dieses Attribut fehlt,
  3427. wird die ID zu F1&lt;FHTID&gt; gesetzt. Bemerkung 1: Nach dem Setzen
  3428. bzw. Ver&auml;ndern dieses Attributes m&uuml;ssen alle HomeMatic
  3429. Ger&auml;te neu angelernt werden. Bemerkung 2: Der Wert <b>muss</b>
  3430. eine 6-stellige Hexadezimalzahl sein, 000000 ist ung&uuml;ltig. FHEM
  3431. &uuml;berpr&uuml;ft nicht, ob die ID korrekt ist, im Zweifelsfall
  3432. funktioniert die Kommunikation nicht. </li><br>
  3433. <li><a name="hmProtocolEvents">hmProtocolEvents</a><br>
  3434. Generiert Ereignisse f&uuml;r HomeMatic Telegramme. Diese werden
  3435. normalerweise f&uuml;r die Fehlersuche verwendet, z.B. durch Aktivieren
  3436. von <code>inform timer</code> in einer telnet Sitzung bzw. im
  3437. <code>Event Monitor</code> Fenster im FHEMWEB Frontend.<br>
  3438. Beispiel:
  3439. <ul>
  3440. <code>
  3441. 2012-05-17 09:44:22.515 CUL CULHM RCV L:0B N:81 CMD:A258 SRC:......
  3442. DST:...... 0000 (TYPE=88,WAKEMEUP,BIDI,RPTEN)
  3443. </code>
  3444. </ul>
  3445. </li><br>
  3446. <li><a name="longids">longids</a><br>
  3447. Durch Kommata getrennte Liste von Device-Typen f&uuml;r Empfang von
  3448. langen IDs mit den CUL. Diese zus&auml;tzliche ID erlaubt es
  3449. Wettersensoren, welche auf dem gleichen Kanal senden zu unterscheiden.
  3450. Hierzu wird eine zuf&auml;llig generierte ID hinzugef&uuml;gt. Wenn Sie
  3451. longids verwenden, dann wird in den meisten F&auml;llen nach einem
  3452. Batteriewechsel ein neuer Sensor angelegt.
  3453. Standardm&auml;&szlig;ig werden keine langen IDs verwendet.<br>
  3454. Folgende Module verwenden diese Funktionalit&auml;t:
  3455. 14_Hideki, 41_OREGON, 14_CUL_TCM97001, 14_SD_WS07.<br>
  3456. Beispiele:
  3457. <ul><code>
  3458. # Keine langen IDs verwenden (Default Einstellung):<br>
  3459. attr cul longids 0<br>
  3460. # Immer lange IDs verwenden:<br>
  3461. attr cul longids 1<br>
  3462. # Verwende lange IDs f&uuml;r SD_WS07 Devices.<br>
  3463. # Device Namen sehen z.B. so aus: SD_WS07_TH_3 for channel 3.<br>
  3464. attr cul longids SD_WS07
  3465. </code></ul>
  3466. </li><br>
  3467. <li><a href="#model">model</a> (CUL,CUN)</li><br>
  3468. <li><a name="rfmode">rfmode</a><br>
  3469. Konfiguriert den RF Transceiver des CULs (CC1101). Verf&uuml;gbare
  3470. Argumente sind:
  3471. <ul>
  3472. <li>SlowRF<br>
  3473. F&uuml;r die Kommunikation mit FS20/FHT/HMS/EM1010/S300/Hoermann
  3474. Ger&auml;ten @1 kHz Datenrate (Standardeinstellung).</li>
  3475. <li>HomeMatic<br>
  3476. F&uuml;r die Kommunikation mit HomeMatic Ger&auml;ten @10 kHz
  3477. Datenrate.</li>
  3478. <li>MAX<br>
  3479. F&uuml;r die Kommunikation mit MAX! Ger&auml;ten @10 kHz
  3480. Datenrate.</li>
  3481. <li>WMBus_S</li>
  3482. <li>WMBus_T</li>
  3483. <li>WMBus_C<br>
  3484. F&uuml;r die Kommunikation mit Wireless M-Bus Ger&auml;ten wie
  3485. Wasser-, Gas- oder Elektroz&auml;hlern. Wireless M-Bus verwendet
  3486. drei unterschiedliche Kommunikationsarten, S-Mode, T-Mode und C-Mode. In
  3487. diesem Modus ist der Empfang von anderen Protokollen wie SlowRF
  3488. oder HomeMatic nicht m&ouml;glich.</li>
  3489. </ul>
  3490. </li><br>
  3491. <li><a name="sendpool">sendpool</a><br>
  3492. Wenn mehr als ein CUL verwendet wird, um einen gr&ouml;&szlig;eren
  3493. Bereich abzudecken, k&ouml;nnen diese sich gegenseitig
  3494. beeinflussen. Dieses Ph&auml;nomen wird auch Palm-Beach-Resort Effekt
  3495. genannt. Wenn man diese zu einen gemeinsamen Sende"pool"
  3496. zusammenschlie&szlig;t, wird das Senden der einzelnen Telegramme
  3497. seriell (d.h. hintereinander) durchgef&uuml;hrt.
  3498. Wenn z.B. drei CUN's zur
  3499. Verf&uuml;gung stehen, werden folgende Attribute gesetzt:<br>
  3500. <code>attr CUN1 sendpool CUN1,CUN2,CUN3<br>
  3501. attr CUN2 sendpool CUN1,CUN2,CUN3<br>
  3502. attr CUN3 sendpool CUN1,CUN2,CUN3</code><br>
  3503. </li><br>
  3504. <li><a href="#showtime">showtime</a></li>
  3505. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  3506. </ul>
  3507. <br>
  3508. </ul>
  3509. <p><a name="CUL_EM"></a>
  3510. <h3>CUL_EM</h3>
  3511. <div class='langLinks'>[<a href='commandref.html#CUL_EM'>EN</a> DE]</div>
  3512. <ul>
  3513. Das Modul CUL_EM wertet von einem CUL empfange Botschaften des Typs EM aus,
  3514. dies sind aktuell Botschaften von EMEM, EMWZ bzw. EMGZ Ger&auml;ten.
  3515. <br><br>
  3516. <a name="CUL_EMdefine"></a>
  3517. <b>Define</b>
  3518. <ul>
  3519. <code>define &lt;name&gt; CUL_EM &lt;code&gt; [corr1 corr2
  3520. CostPerUnit BasicFeePerMonth]</code> <br>
  3521. <br>
  3522. &lt;code&gt; ist der Code, der am EM Ger&auml;t eingestellt wird.
  3523. G&uuml;tige Werte sind 1 bis 12. 1-4 gilt f&uuml;r EMWZ, 5-8 f&uuml;r EMEM
  3524. und 9-12 f&uuml;r EMGZ Ger&auml;te.<br><br>
  3525. <b>corr1</b> ist der Kalibrierfaktor f&uuml;r den Momentanverbrauch,
  3526. <b>corr2</b> f&uuml;r den Gesamtverbrauch.
  3527. <ul>
  3528. <li>f&uuml;r EMWZ Ger&auml;te wird die Umdrehungsgeschwindigkeit (U/kW)
  3529. des verwendeten Stromz&auml;hlers (z.B. 150) f&uuml;r corr1 und 12 mal
  3530. diesen Wert f&uuml;r corr2 verwendet</li>
  3531. <li>f&uuml;r EMEM devices ist corr1 mit 0.01 und corr2 mit 0.001
  3532. anzugeben</li>
  3533. </ul>
  3534. <br>
  3535. <b>CostPerUnit</b> und <b>BasicFeePerMonth</b> werden dazu verwendet, die
  3536. t&auml;gliche bzw. monatliche Kosten zu berechnen. Die Kosten werden in der
  3537. Logdatei einmal t&auml;glich (ohne Fixkosten) bzw. monatlich (mit Fixkosten)
  3538. generiert und angezeigt.
  3539. Die Definition sollte in etwa so aussehen:
  3540. <ul><code>
  3541. define emwz 1 75 900 0.15 12.50<br>
  3542. </code></ul>
  3543. und in der Logdatei sollten diese Zeilen erscheinen:
  3544. <ul><code>
  3545. CUM_DAY: 6.849 CUM: 60123.4 COST: 1.02<br>
  3546. CUM_MONTH: 212.319 CUM: 60123.4 COST: 44.34<br>
  3547. </code></ul>
  3548. Tipp: Das EMWZ Ger&auml;t kann so konfiguriert werden, dass es in der CUM
  3549. Spalte des STATE Wertes den aktuellen Wert des Stromz&auml;hlers anzeigt.
  3550. Hierf&uuml;r muss der aktuell am Stromz&auml;hler abgelesene Wert mit corr1
  3551. (U/kW) multipliziert werden und der CUM Rohwert aus der aktuellen fhem
  3552. Messung ('reading') davon abgezogen werden. Dann muss dieser Wert als
  3553. Basiswert des EMWZ Ger&auml;tes (im Beispiel emwz) gesetzt werden.<br>
  3554. </ul>
  3555. <br>
  3556. <a name="CUL_EMset"></a>
  3557. <b>Set</b> <ul>N/A</ul><br>
  3558. <a name="CUL_EMget"></a>
  3559. <b>Get</b> <ul>N/A</ul><br>
  3560. <a name="CUL_EMattr"></a>
  3561. <b>Attributes</b>
  3562. <ul>
  3563. <li><a href="#ignore">ignore</a></li><br>
  3564. <li><a href="#do_not_notify">do_not_notify</a></li><br>
  3565. <li><a href="#showtime">showtime</a></li><br>
  3566. <li><a href="#model">model</a> (EMEM,EMWZ,EMGZ)</li><br>
  3567. <li><a href="#IODev">IODev</a></li><br>
  3568. <li><a href="#eventMap">eventMap</a></li><br>
  3569. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  3570. <li><a name="maxPeak">maxPeak</a> &lt;number&gt;<br>
  3571. Gibt den maximal m&ouml;glichen Spitzenwert f&uuml;r das EM-Meter an
  3572. ("TOP:"-Wert in Logdatei). Spitzenwerte gr&ouml;&szlig;er als dieser
  3573. Wert gelten als EM-Lesefehler und werden ignoriert.
  3574. Wenn es z.B. nicht m&ouml;glich ist mehr zu 40kW Leistung
  3575. zu beziehen setzt man maxPeak auf 40 um das Auslesen des
  3576. Stromz&auml;hlers robuster zu machen.
  3577. </li><br>
  3578. <li><a name="CounterOffset">CounterOffset</a><br>
  3579. Gibt den Unterschied zwischen dem tats&auml;chlichen Z&auml;hlerstand und
  3580. dem vom EMGZ gemeldeten Wert an.<br>
  3581. CounterOffset = tats&auml;chlicher Z&auml;hlerstand - Reading "total"<br>
  3582. Beispiel:
  3583. <ul>
  3584. <code>attr Gaszaehler CounterOffset 15427.434</code><br>
  3585. </ul>
  3586. </li>
  3587. </ul>
  3588. <br>
  3589. </ul>
  3590. <p><a name="CUL_FHTTK"></a>
  3591. <h3>CUL_FHTTK</h3>
  3592. <div class='langLinks'>[<a href='commandref.html#CUL_FHTTK'>EN</a> DE]</div>
  3593. <ul>
  3594. Dieses Modul hantiert die empfangen Daten von FHT80 TF "Fenster-T&uuml;r-Kontakt" Sensoren, welche
  3595. normalerweise nur mit den <a href="#FHT">FHT80B</a> Geräten kommunizieren. Mit diesen Modul k&ouml;nnen
  3596. FHT80 TFs in eingeschr&auml;nkter Weise &auml;hnlich wie HMS TFK Sensoren benutzt werden (weitere
  3597. Informationen sind unter <a href="http://fhz4linux.info/tiki-index.php?page=FHT+protocol">Wiki</a> zu lesen).
  3598. Der name des FHEM Moduls wurde so gewählt, weil a) nur der CUL die Daten empfangen kann und b) "TF" normalerweise
  3599. Temperatur- und Feuchtigkeitssensoren suggeriert. (Keine Ahnung, warum ELV diesen Sensor nicht TFK genannt hat,
  3600. wie die Sensoren von FS20 und HMS).
  3601. <br><br>
  3602. <a href="#CUL">CUL</a> device muss vorhr definiert sein.
  3603. <br><br>
  3604. Mit dem letzten Build auf <a href="http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/">SVN</a>
  3605. oder mit der n&auml;chsten offiziellen Version 1.62 oder h&ouml;her, ist es m&ouml;glich, FHT80 TF Daten zu senden.
  3606. M&ouml;glich mit einem CUL oder &auml;hnlichen Ger&auml;ten. So k&ouml;nnen bis zu vier Fenstersensoren mit einem Ger&auml;t
  3607. simuliert werden (siehe <a href="http://www.fhemwiki.de/wiki/CUL_FHTTK">FHEM Wiki</a>). Es muss lediglich das Attribut model mit dem
  3608. Wert "virtual" hinzugef&uuml;gt oder ge&auml;ndert werden. Wichtig: Der Devicecode sollte nicht der FHTID entsprechen.<br><br>
  3609. <a name="CUL_FHTTKdefine"></a>
  3610. <b>D</b>
  3611. <ul>
  3612. <code>define &lt;name&gt; CUL_FHTTK &lt;devicecode&gt;</code>
  3613. <br><br>
  3614. <code>&lt;devicecode&gt;</code> Ist eine sechstellige Hexadezimalzahl, welche zum Zeitpunkt der Produktion
  3615. des FHT80 TF gegeben wurde. Somit ist diese auch nicht mehr &auml;nderbar und bleibt auch nach einem Batteriewechsel
  3616. erhalten.<br>
  3617. Examples:
  3618. <ul>
  3619. <code>define TK_TEST CUL_FHTTK 965AB0</code>
  3620. </ul>
  3621. </ul>
  3622. <br>
  3623. <a name="CUL_FHTTKset"></a>
  3624. <b>Set</b>
  3625. <ul> Nur vorhanden, wenn das Attribut model mit virtual definiert wurde.<br><br>
  3626. <code>set &lt;name&gt; &lt;value&gt;</code>
  3627. <br><br>
  3628. wobei <code>value</code> folgendes sein kann:<br>
  3629. <ul>
  3630. <li><code>Closed</code><br>setzt den Fensterstatus zu Closed</li><br>
  3631. <li><code>Open</code><br>setzt den Fensterstatus zu Open</li><br>
  3632. <li><code>Pair</code><br>startet das Anlernen an das FHT80B (FHT80B muss sich im Sync mode befinden) - danach wird der state auf "Closed" gesetzt</li><br>
  3633. <li><code>ReSync</code><br>neu synchronisieren des virtuellen Sensor mit dem FHT80b Module. Damit wird ein virtueller Batteriewechsel simuliert und der angelernte
  3634. Sensor wieder aufsynchronisiert. (aktuell nur mit Prototyp CUL FW verf&uuml;gbar Forum 55774)</li><br>
  3635. </ul>
  3636. </ul>
  3637. <br>
  3638. <u>Spezielles zum "ReSync" von vorhanden FHT80TFs nach einem CUL Firmware Reset:</u><br>
  3639. Nach einem Reset bzw. Neustart eines CUL Devices ist die Verbindung zwischen dem FHT80B und den virtuellen FHT80TFs unterbrochen. Dies kommt einem Batteriewechsel gleich.
  3640. Die Kontakte sind weiterhin am FHT80B angelernt. Ein neues Pairen entf&auml;llt. Wenn mehrere vitruelle Kontakte verwendet werden, empfiehlt es sich diese in gro�en Abst&auml;nden
  3641. wieder zu synchronisieren!<br>
  3642. Mithilfe des Aufrufes der Funktion <b>CUL_FHTTK_ReSyncAll()</b> werden alle virtuellen Fensterkontakte <u>nacheinander</u> mit den FHT80B wieder synchronisiert.
  3643. Der Abstand betr&auml;gt zwischen den einzelnen Sensoren <u>1 Stunde</u>. Dies wird durch die 1% Regeln bestimmt, da pro Kontakt 480 credits innerhalb von 64 Sekunden verbraucht werden!<br><br>
  3644. <b>Get</b>
  3645. <ul> N/A </ul>
  3646. <br>
  3647. <a name="CUL_FHTTKattr"></a>
  3648. <b>Attributes</b>
  3649. <ul>
  3650. <li><a href="#do_not_notify">do_not_notify</a></li><br>
  3651. <li><a href="#verbose">verbose</a></li><br>
  3652. <li><a href="#model">model</a><br>M&ouml;gliche Werte sind: FHT80TF, FHT80TF-2, virtual (zum simulieren eines Fensterkontaktes)</li><br>
  3653. <li><a href="#showtime">showtime</a></li><br>
  3654. <li><a href="#IODev">IODev</a></li><br>
  3655. <li><a href="#ignore">ignore</a></li><br>
  3656. <li><a href="#eventMap">eventMap</a></li><br>
  3657. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  3658. </ul>
  3659. <br>
  3660. </ul>
  3661. <p> <a name="CUL_HM"></a><h3>CUL_HM</h3>
  3662. <div class='langLinks'>[<a href='commandref.html#CUL_HM'>EN</a> DE]</div>
  3663. <ul>
  3664. Unterst&uuml;tzung f&uuml;r eQ-3 HomeMatic Ger&auml;te via <a href="#CUL">CUL</a> oder <a href="#HMLAN">HMLAN</a>.<br>
  3665. <br>
  3666. <a name="CUL_HMdefine"></a><b>Define</b>
  3667. <ul>
  3668. <code><B>define &lt;name&gt; CUL_HM &lt;6-digit-hex-code|8-digit-hex-code&gt;</B></code>
  3669. <br><br>
  3670. Eine korrekte Ger&auml;tedefinition ist der Schl&uuml;ssel zur einfachen Handhabung der HM-Umgebung.
  3671. <br>
  3672. Hintergrund zur Definition:<br>
  3673. HM-Ger&auml;te haben eine 3 Byte (6 stelliger HEX-Wert) lange HMid - diese ist Grundlage
  3674. der Adressierung. Jedes Ger&auml;t besteht aus einem oder mehreren Kan&auml;len. Die HMid f&uuml;r einen
  3675. Kanal ist die HMid des Ger&auml;tes plus die Kanalnummer (1 Byte, 2 Stellen) in
  3676. hexadezimaler Notation.
  3677. Kan&auml;le sollten f&uuml;r alle mehrkanaligen Ger&auml;te definiert werden. Eintr&auml;ge f&uuml;r Kan&auml;le
  3678. k&ouml;nnen nicht angelegt werden wenn das zugeh&ouml;rige Ger&auml;t nicht existiert.<br> Hinweis: FHEM
  3679. belegt das Ger&auml;t automatisch mit Kanal 1 falls dieser nicht explizit angegeben wird. Daher
  3680. ist bei einkanaligen Ger&auml;ten keine Definition n&ouml;tig.<br>
  3681. Hinweis: Wird ein Ger&auml;t gel&ouml;scht werden auch die zugeh&ouml;rigen Kan&auml;le entfernt. <br> Beispiel einer
  3682. vollst&auml;ndigen Definition eines Ger&auml;tes mit 2 Kan&auml;len:<br>
  3683. <ul><code>
  3684. define livingRoomSwitch CUL_HM 123456<br>
  3685. define LivingroomMainLight CUL_HM 12345601<br>
  3686. define LivingroomBackLight CUL_HM 12345602<br><br>
  3687. </code></ul>
  3688. livingRoomSwitch bezeichnet das zur Kommunikation verwendete Ger&auml;t. Dieses wird
  3689. vor den Kan&auml;len definiert um entsprechende Verweise einstellen zu k&ouml;nnen. <br>
  3690. LivingroomMainLight hat Kanal 01 und behandelt den Lichtstatus, Kanal-Peers
  3691. sowie zugeh&ouml;rige Kanalregister. Falls nicht definiert wird Kanal 01 durch die Ger&auml;teinstanz
  3692. abgedeckt.<br> LivingRoomBackLight ist der zweite "Kanal", Kanal 02. Seine
  3693. Definition ist verpflichtend um die Funktion ausf&uuml;hren zu k&ouml;nnen.<br><br>
  3694. Sonderfall Sender: HM behandelt jeden Knopf einer Fernbedienung, Drucktaster und
  3695. &auml;hnliches als Kanal . Es ist m&ouml;glich (nicht notwendig) einen Kanal pro Knopf zu
  3696. definieren. Wenn alle Kan&auml;le definiert sind ist der Zugriff auf Pairing-Informationen
  3697. sowie auf Kanalregister m&ouml;glich. Weiterhin werden Verkn&uuml;pfungen durch Namen besser
  3698. lesbar.<br><br>
  3699. define kann auch durch das <a href="#autocreate">autocreate</a>
  3700. Modul aufgerufen werden, zusammen mit dem notwendigen subType Attribut.
  3701. Normalerweise erstellt man <a href="#CULset">hmPairForSec</a> und dr&uuml;ckt dann den
  3702. zugeh&ouml;rigen Knopf am Ger&auml;t um die Verkn&uuml;pfung herzustellen oder man verwendet <a
  3703. href="#CULset">hmPairSerial</a> falls das Ger&auml;t ein Empf&auml;nger und die Seriennummer
  3704. bekannt ist. Autocreate wird dann ein FHEM-Ger&auml;t mit allen notwendigen Attributen anlegen.
  3705. Ohne Pairing wird das Ger&auml;t keine Befehle von FHEM akzeptieren. Selbst wenn das Pairing
  3706. scheitert legt FHEM m&ouml;glicherweise das Ger&auml;t an. Erfolgreiches Pairen wird
  3707. durch den Eintrag CommandAccepted in den Details zum CUL_HM Ger&auml;t angezeigt.<br><br>
  3708. Falls autocreate nicht verwendet werden kann muss folgendes spezifiziert werden:<br>
  3709. <ul>
  3710. <li>Der &lt;6-stellige-Hex-Code&gt;oder HMid+ch &lt;8-stelliger-Hex-Code&gt;<br>
  3711. Das ist eine einzigartige, festgelegte Ger&auml;teadresse die nicht ge&auml;ndert werden kann (nein,
  3712. man kann sie nicht willk&uuml;rlich ausw&auml;hlen wie z.B. bei FS20 Ger&auml;ten). Man kann sie feststellen
  3713. indem man das FHEM-Log durchsucht.</li>
  3714. <li>Das subType Attribut<br>
  3715. Dieses lautet: switch dimmer blindActuator remote sensor swi
  3716. pushButton threeStateSensor motionDetector keyMatic winMatic
  3717. smokeDetector</li>
  3718. <li>Das model Attribut<br>
  3719. ist entsprechend der HM Nomenklatur zu vergeben</li>
  3720. </ul>
  3721. Ohne diese Angaben kann FHEM nicht korrekt mit dem Ger&auml;t arbeiten.<br><br>
  3722. <b>Hinweise</b>
  3723. <ul>
  3724. <li>Falls das Interface ein Ger&auml;t vom Typ CUL ist muss <a href="#rfmode">rfmode </a>
  3725. des zugeh&ouml;rigen CUL/CUN Ger&auml;tes auf HomeMatic gesetzt werden.
  3726. Achtung: Dieser Modus ist nur f&uuml;r BidCos/Homematic. Nachrichten von FS20/HMS/EM/S300
  3727. werden durch diese Ger&auml;t <b>nicht</b> empfangen. Bereits definierte FS20/HMS
  3728. Ger&auml;te m&uuml;ssen anderen Eing&auml;ngen zugeordnet werden (CUL/FHZ/etc).
  3729. </li>
  3730. <li>Nachrichten eines Ger&auml;ts werden nur richtig interpretiert wenn der Ger&auml;tetyp
  3731. bekannt ist. FHEM erh&auml;lt den Ger&auml;tetyp aus einer"pairing request"
  3732. Nachricht, selbst wenn es darauf keine Antwort erh&auml;lt (siehe <a
  3733. href="#hmPairSerial">hmPairSerial</a> und <a
  3734. href="#hmPairForSec">hmPairForSec</a> um Parinig zu erm&ouml;glichen).
  3735. Alternativ, setzen des richtigen subType sowie Modelattributes, f&uuml;r eine Liste der
  3736. m&ouml;glichen subType-Werte siehe "attr hmdevice ?".</li>
  3737. <a name="HMAES"></a>
  3738. <li>Die sogenannte "AES-Verschl&uuml;sselung" ist eigentlich eine Signaturanforderung: Ist sie
  3739. aktiviert wird ein Aktor den erhaltenen Befehl nur ausf&uuml;hren falls er die korrekte
  3740. Antwort auf eine zuvor durch den Aktor gestellte Anfrage erh&auml;lt. Das bedeutet:
  3741. <ul>
  3742. <li>Die Reaktion auf Befehle ist merklich langsamer, da 3 Nachrichten anstatt einer &uuml;bertragen
  3743. werden bevor der Befehl vom Aktor ausgef&uuml;hrt wird.</li>
  3744. <li>Jeder Befehl sowie seine Best&auml;tigung durch das Ger&auml;t wird in Klartext &uuml;bertragen, ein externer
  3745. Beobachter kennt somit den Status jedes Ger&auml;ts.</li>
  3746. <li>Die eingebaute Firmware ist fehlerhaft: Ein "toggle" Befehl wir ausgef&uuml;hrt <b>bevor</b> die
  3747. entsprechende Antwort auf die Signaturanforderung empfangen wurde, zumindest bei einigen Schaltern
  3748. (HM-LC-Sw1-Pl und HM-LC-SW2-PB-FM).</li>
  3749. <li>Der <a href="#HMLAN">HMLAN</a> Konfigurator beantwortet Signaturanforderungen selbstst&auml;ndig,
  3750. ist dabei die 3-Byte-Adresse einer anderen CCU eingestellt welche noch immer das Standardpasswort hat,
  3751. kann dieser Signaturanfragen korrekt beantworten.</li>
  3752. <li>AES-Verschl&uuml;sselung wird durch HMLAN und CUL unterst&uuml;tzt. Bei Einsatz eines CUL
  3753. ist das Perl-Modul Crypt::Rijndael notwendig. Aufgrund dieser Einschr&auml;nkungen ist der
  3754. Einsatz der Homematic-Verschl&uuml;sselung nicht zu empfehlen!</li>
  3755. </ul>
  3756. </li>
  3757. </ul>
  3758. </ul><br>
  3759. <a name="CUL_HMset"></a><b>Set</b>
  3760. <ul>
  3761. Hinweis: Ger&auml;te die normalerweise nur senden (Fernbedienung/Sensor/etc.) m&uuml;ssen in den
  3762. Pairing/Lern-Modus gebracht werden um die folgenden Befehle zu empfangen.
  3763. <br>
  3764. <br>
  3765. Allgemeine Befehle (verf&uuml;gbar f&uuml;r die meisten HM-Ger&auml;te):
  3766. <ul>
  3767. <li><B>clear &lt;[rssi|readings|register|msgEvents|attack|all]&gt;</B><a name="CUL_HMclear"></a><br>
  3768. Eine Reihe von Variablen kann entfernt werden.<br>
  3769. <ul>
  3770. readings: Alle Messwerte werden gel&ouml;scht, neue Werte werden normal hinzugef&uuml;gt. Kann benutzt werden um alte Daten zu entfernen<br>
  3771. register: Alle in FHEM aufgezeichneten Registerwerte werden entfernt. Dies hat KEINEN Einfluss auf Werte im Ger&auml;t.<br>
  3772. msgEvents: Alle Anchrichtenz&auml;hler werden gel&ouml;scht. Ebenso wird der Befehlsspeicher zur&uuml;ckgesetzt. <br>
  3773. rssi: gesammelte RSSI-Werte werden gel&ouml;scht.<br>
  3774. attack: Einträge bezßglich einer Attack werden gelÜscht.<br>
  3775. all: alles oben genannte.<br>
  3776. </ul>
  3777. </li>
  3778. <li><B>getConfig</B><a name="CUL_HMgetConfig"></a><br>
  3779. Liest die Hauptkonfiguration eines HM_Ger&auml;tes aus. Angewendet auf einen Kanal
  3780. erh&auml;lt man Pairing-Information, List0, List1 und List3 des ersten internen Peers.
  3781. Au�erdem erh&auml;lt man die Liste der Peers f&uuml;r den gegebenen Kanal. Wenn auf ein Ger&auml;t
  3782. angewendet so bekommt man mit diesem Befehl die vorherigen Informationen f&uuml;r alle
  3783. zugeordneten Kan&auml;le. Ausgeschlossen davon sind Konfigurationen zus&auml;tzlicher Peers.
  3784. <br> Der Befehl ist eine Abk&uuml;rzung f&uuml;r eine Reihe anderer Befehle.
  3785. </li>
  3786. <li><B>getRegRaw [List0|List1|List2|List3|List4|List5|List6]&lt;peerChannel&gt; </B><a name="CUL_HMgetRegRaw"></a><br>
  3787. Auslesen der Rohdaten des Registersatzes. Eine Beschreibung der Register sprengt
  3788. den Rahmen dieses Dokuments.<br>
  3789. Die Register sind in sog. Listen strukturiert welche einen Satz Register enthalten.<br>
  3790. List0: Ger&auml;teeinstellungen z.B: Einstellungen f&uuml;r CUL-Pairing Temperaturlimit eines Dimmers.<br>
  3791. List1: Kanaleinstellungen z.B. ben&ouml;tigte Zeit um Rollo hoch und runter zu fahren.<br>
  3792. List3: "link" Einstellungen - d.h. Einstellungen f&uuml;r Peer-Kanal. Das ist eine gro�e Datenmenge!
  3793. Steuert Aktionen bei Empfang eines Triggers vom Peer.<br>
  3794. List4: Einstellungen f&uuml;r den Kanal (Taster) einer Fernbedienung.<br><br>
  3795. &lt;PeerChannel&gt; verkn&uuml;pfte HMid+ch, z.B. 4 byte (8 stellige) Zahl wie
  3796. '12345601'. Ist verpflichtend f&uuml;r List3 und List4 und kann ausgelassen werden
  3797. f&uuml;r List0 und 1. <br>
  3798. 'all' kann verwendet werden um Daten von jedem mit einem Kanal verkn&uuml;pften Link zu bekommen. <br>
  3799. 'selfxx' wird verwendet um interne Kan&auml;le zu adressieren (verbunden mit den eingebauten Schaltern
  3800. falls vorhanden). xx ist die Kanalnummer in dezimaler Notation.<br>
  3801. Hinweis 1: Ausf&uuml;hrung ist abh&auml;ngig vom Entity. Wenn List1 f&uuml;r ein Ger&auml;t statt einem Kanal
  3802. abgefragt wird gibt der Befehl List1 f&uuml;r alle zugeh&ouml;rigen Kan&auml;le aus.
  3803. List3 mit 'peerChannel = all' gibt alle Verbindungen f&uuml;r alle Kan&auml;le eines Ger&auml;tes zur&uuml;ck.<br>
  3804. Hinweis 2: f&uuml;r 'Sender' siehe auch <a href="#CUL_HMremote">remote</a> <br>
  3805. Hinweis 3: Das Abrufen von Informationen kann dauern - besonders f&uuml;r Ger&auml;te
  3806. mit vielen Kan&auml;len und Verkn&uuml;pfungen. Es kann n&ouml;tig sein das Webinterface manuell neu zu laden
  3807. um die Ergebnisse angezeigt zu bekommen.<br>
  3808. Hinweis 4: Direkte Schalter eines HM-Ger&auml;ts sind standardm&auml;�ig ausgeblendet.
  3809. Dennoch sind sie genauso als Verkn&uuml;pfungen implemetiert. Um Zugriff auf 'internal links'
  3810. zu bekommen ist es notwendig folgendes zu erstellen:<br>
  3811. 'set &lt;name&gt; <a href="#CUL_HMregSet">regSet</a> intKeyVisib visib'<br>
  3812. oder<br>
  3813. 'set &lt;name&gt; <a href="#CUL_HMregBulk">regBulk</a> RegL_0. 2:81'<br>
  3814. Zur&uuml;cksetzen l&auml;sst es sich indem '81' mit '01' ersetzt wird.<br> example:<br>
  3815. <ul><code>
  3816. set mydimmer getRegRaw List1<br>
  3817. set mydimmer getRegRaw List3 all <br>
  3818. </code></ul>
  3819. </li>
  3820. <li><B>getSerial</B><a name="CUL_HMgetSerial"></a><br>
  3821. Auslesen der Seriennummer eines ger&auml;ts und speichern in Attribut serialNr.
  3822. </li>
  3823. <li><B>inhibit [on|off]</B><br>
  3824. Blockieren/Zulassen aller Kanal&auml;nderungen eines Aktors, d.h. Zustand des Aktors ist
  3825. eingefroren bis 'inhibit' wieder deaktiviert wird. 'Inhibit' kann f&uuml;r jeden Aktorkanal
  3826. ausgef&uuml;hrt werden aber nat&uuml;rlich nicht f&uuml;r Sensoren - w&uuml;rde auch keinen Sinn machen.<br>
  3827. Damit ist es praktischerweise m&ouml;glich Nachrichten ebenso wie verkn&uuml;pfte Kanalaktionen
  3828. tempor&auml;r zu unterdr&uuml;cken ohne sie l&ouml;schen zu m&uuml;ssen. <br>
  3829. Beispiele:
  3830. <ul><code>
  3831. # Ausf&uuml;hrung blockieren<br>
  3832. set keymatic inhibit on <br><br>
  3833. </ul></code>
  3834. </li>
  3835. <li><B>pair</B><a name="CUL_HMpair"></a><br>
  3836. Verbinden eines Ger&auml;ts bekannter Seriennummer (z.b. nach einem Reset)
  3837. mit einer FHEM-Zentrale. Diese Zentrale wird normalerweise durch CUL/CUNO,
  3838. HMLAN,... hergestellt.
  3839. Wenn verbunden melden Ger&auml;te ihren Status and FHEM.
  3840. Wenn nicht verbunden wird das Ger&auml;t auf bestimmte Anfragen nicht reagieren
  3841. und auch bestimmte Statusinformationen nicht melden. Pairing geschieht auf
  3842. Ger&auml;teebene. Kan&auml;le k&ouml;nnen nicht unabh&auml;ngig von einem Ger&auml;t mit der Zentrale
  3843. verbunden werden.
  3844. Siehe auch <a href="#CUL_HMgetpair">getPair</a> und
  3845. <a href="#CUL_HMunpair">unpair</a>.<br>
  3846. Nicht das Verbinden (mit einer Zentrale) mit verkn&uuml;pfen (Kanal zu Kanal) oder
  3847. <a href="#CUL_HMpeerChan">peerChan</a> verwechseln.<br>
  3848. </li>
  3849. <li><B>peerBulk</B> &lt;peerch1,peerch2,...&gt; [set|unset]<a name="CUL_HMpeerBulk"></a><br>
  3850. peerBulk f&uuml;gt Peer-Kan&auml;le zu einem Kanal hinzu. Alle Peers einer Liste werden
  3851. dabei hinzugef&uuml;gt.<br>
  3852. Peering setzt die Einstellungen einer Verkn&uuml;pfung auf Standardwerte. Da Peers nicht in Gruppen
  3853. hinzugef&uuml;gt werden werden sie durch HM standardm&auml;�ig als'single' f&uuml;r dieses Ger&auml;t
  3854. angelegt. <br>
  3855. Eine ausgekl&uuml;geltere Funktion wird gegeben durch
  3856. <a href="#CUL_HMpeerChan">peerChan</a>.<br>
  3857. peerBulk l&ouml;scht keine vorhandenen Peers sondern bearbeitet nur die Peerliste.
  3858. Andere bereits angelegt Peers werden nicht ver&auml;ndert.<br>
  3859. peerBulk kann verwendet werden um Peers zu l&ouml;schen indem die <B>unset</B> Option
  3860. mit Standardeinstellungen aufgerufen wird.<br>
  3861. Verwendungszweck dieses Befehls ist haupts&auml;chlich das Wiederherstellen
  3862. von Daten eines Ger&auml;ts.
  3863. Empfehlenswert ist das anschlie�ende Wiederherstellen der Registereinstellung
  3864. mit <a href="#CUL_HMregBulk">regBulk</a>. <br>
  3865. Beispiel:<br>
  3866. <ul><code>
  3867. set myChannel peerBulk 12345601,<br>
  3868. set myChannel peerBulk self01,self02,FB_Btn_04,FB_Btn_03,<br>
  3869. set myChannel peerBulk 12345601 unset # entferne Peer 123456 Kanal 01<br>
  3870. </code></ul>
  3871. </li>
  3872. <li><B>regBulk &lt;reg List&gt;.&lt;peer&gt; &lt;addr1:data1&gt; &lt;addr2:data2&gt;...</B><a name="CUL_HMregBulk"></a><br>
  3873. Dieser Befehl ersetzt das bisherige regRaw. Er erlaubt Register mit Rohdaten zu
  3874. beschreiben. Hauptzweck ist das komplette Wiederherstellen eines zuvor gesicherten
  3875. Registers. <br>
  3876. Werte k&ouml;nnen mit <a href="#CUL_HMgetConfig">getConfig</a> ausgelesen werden. Die
  3877. zur&uuml;ckgegebenen Werte k&ouml;nnen direkt f&uuml;r diesen Befehl verwendet werden.<br>
  3878. &lt;reg List&gt; bezeichnet die Liste in die geschrieben werden soll. M&ouml;gliches Format
  3879. '00', 'RegL_00', '01'...<br>
  3880. &lt;peer&gt; ist eine optionale Angabe falls die Liste ein Peer ben&ouml;tigt.
  3881. Der Peer kann als Kanalname oder als 4-Byte (8 chars) HM-Kanal ID angegeben
  3882. werden.<br>
  3883. &lt;addr1:data1&gt; ist die Liste der Register im Hex-Format.<br>
  3884. Beispiel:<br>
  3885. <ul><code>
  3886. set myChannel regBulk RegL_00. 02:01 0A:17 0B:43 0C:BF 15:FF 00:00<br>
  3887. RegL_03.FB_Btn_07
  3888. 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:93 0E:00 0F:00 11:C8 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 1A:00 1B:00 1C:00 1D:FF 1E:93 1F:00 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:44 8C:54 8D:93 8E:00 8F:00 91:C8 92:00 93:00 94:00 95:00 96:00 97:00 98:00 99:00 9A:00 9B:00 9C:00 9D:05 9E:93 9F:00 00:00<br>
  3889. set myblind regBulk 01 0B:10<br>
  3890. set myblind regBulk 01 0C:00<br>
  3891. </code></ul>
  3892. myblind setzt die maximale Zeit f&uuml;r das Hochfahren der Rollos auf 25,6 Sekunden
  3893. </li>
  3894. <li><B>regSet [prep|exec] &lt;regName&gt; &lt;value&gt; &lt;peerChannel&gt;</B><a name="CUL_HMregSet"></a><br>
  3895. F&uuml;r einige Hauptregister gibt es eine lesbarere Version die Registernamen &lt;regName&gt;
  3896. und Wandlung der Werte enth&auml;lt. Nur ein Teil der Register wird davon unterst&uuml;tzt.<br>
  3897. Der optionale Parameter [prep|exec] erlaubt das Packen von Nachrichten und verbessert damit
  3898. deutlich die Daten&uuml;bertragung.
  3899. Benutzung durch senden der Befehle mit Parameter "prep". Daten werden dann f&uuml;r das Senden gesammelt.
  3900. Der letzte Befehl muss den Parameter "exec" habe um die Information zu &uuml;bertragen.<br>
  3901. &lt;value&gt; enth&auml;lt die Daten in menschenlesbarer Form die in das Register geschrieben werden.<br>
  3902. &lt;peerChannel&gt; wird ben&ouml;tigt falls das Register 'peerChan' basiert definiert wird.
  3903. Kann ansonsten auf '0' gesetzt werden. Siehe <a
  3904. href="#CUL_HMgetRegRaw">getRegRaw</a> f&uuml;r komplette Definition.<br>
  3905. Unterst&uuml;tzte Register eines Ger&auml;ts k&ouml;nnen wie folgt bestimmt werden:<br>
  3906. <ul><code>set regSet ? 0 0</code></ul>
  3907. Eine verk&uuml;rzte Beschreibung der Register wird zur&uuml;ckgegeben mit:<br>
  3908. <ul><code>set regSet &lt;regname&gt; ? 0</code></ul>
  3909. </li>
  3910. <li><B>reset</B><a name="CUL_HMreset"></a><br>
  3911. R&uuml;cksetzen des Ger&auml;ts auf Werkseinstellungen. Muss danach erneut verbunden werden um es
  3912. mit FHEM zu nutzen.
  3913. </li>
  3914. <li><B>sign [on|off]</B><a name="CUL_HMsign"></a><br>
  3915. Ein- oder ausschalten der Signierung (auch "AES-Verschl&uuml;sselung" genannt, siehe <a
  3916. href="#HMAES">note</a>). Achtung: Wird das Ger&auml;t &uuml;ber einen CUL eingebunden, ist schalten (oder
  3917. deaktivieren der Signierung) nur m&ouml;glich, wenn das Perl-Modul Crypt::Rijndael installiert ist.
  3918. </li>
  3919. <li><B>statusRequest</B><a name="CUL_HMstatusRequest"></a><br>
  3920. Aktualisieren des Ger&auml;testatus. F&uuml;r mehrkanalige Ger&auml;te sollte dies kanalbasiert
  3921. erfolgen.
  3922. </li>
  3923. <li><B>unpair</B><a name="CUL_HMunpair"></a><br>
  3924. Aufheben des "Pairings", z.B. um das verbinden mit einem anderen Master zu erm&ouml;glichen.
  3925. Siehe <a href="#CUL_HMpair">pair</a> f&uuml;r eine Beschreibung.</li>
  3926. <li><B>virtual &lt;Anzahl an Kn&ouml;pfen&gt;</B><a name="CUL_HMvirtual"></a><br>
  3927. Konfiguriert eine vorhandene Schaltung als virtuelle Fernbedienung. Die Anzahl der anlegbaren
  3928. Kn&ouml;pfe ist 1 - 255. Wird der Befehl f&uuml;r die selbe Instanz erneut aufgerufen werden Kn&ouml;pfe
  3929. hinzugef&uuml;gt. <br>
  3930. Beispiel f&uuml;r die Anwendung:
  3931. <ul><code>
  3932. define vRemote CUL_HM 100000 # die gew&auml;hlte HMid darf nicht in Benutzung sein<br>
  3933. set vRemote virtual 20 # definiere eine Fernbedienung mit 20 Kn&ouml;pfen<br>
  3934. set vRemote_Btn4 peerChan 0 &lt;actorchannel&gt; # verkn&uuml;pft Knopf 4 und 5 mit dem gew&auml;hlten Kanal<br>
  3935. set vRemote_Btn4 press<br>
  3936. set vRemote_Btn5 press long<br>
  3937. </code></ul>
  3938. siehe auch <a href="#CUL_HMpress">press</a>
  3939. </li>
  3940. <li><B>deviceRename &lt;newName&gt;</B><a name="CUL_HMdeviceRename"></a><br>
  3941. benennt das Device und alle seine Kan&auml;le um.
  3942. </li>
  3943. <li><B>fwUpdate [onlyEnterBootLoader] &lt;filename&gt; [&lt;waitTime&gt;]</B><br>
  3944. update Fw des Device. Der User muss das passende FW file bereitstellen.
  3945. waitTime ist optional. Es ist die Wartezeit, um das Device manuell in den FW-update-mode
  3946. zu versetzen.<br>
  3947. "onlyEnterBootLoader" schickt das Device in den Booloader so dass es vom eq3 Firmware Update
  3948. Tool geflashed werden kann. Haupts&auml;chlich f&uuml;r Unterputz-Aktoren in Verbindung mit
  3949. FHEM Installationen die ausschliesslich HM-LANs nutzen interessant.
  3950. </li>
  3951. </ul>
  3952. <br>
  3953. <B>subType abh&auml;ngige Befehle:</B>
  3954. <ul>
  3955. <br>
  3956. <li>switch
  3957. <ul>
  3958. <li><B>on</B> <a name="CUL_HMon"> </a> - setzt Wert auf 100%</li>
  3959. <li><B>off</B><a name="CUL_HMoff"></a> - setzt Wert auf 0%</li>
  3960. <li><B>on-for-timer &lt;sec&gt;</B><a name="CUL_HMonForTimer"></a> -
  3961. Schaltet das Ger&auml;t f&uuml;r die gew&auml;hlte Zeit in Sekunden [0-85825945] an.<br> Hinweis:
  3962. off-for-timer wie bei FS20 wird nicht unterst&uuml;tzt. Kann aber &uuml;ber Kanalregister
  3963. programmiert werden.</li>
  3964. <li><B>on-till &lt;time&gt;</B><a name="CUL_HMonTill"></a> - einschalten bis zum angegebenen Zeitpunkt.<br>
  3965. <ul><code>set &lt;name&gt; on-till 20:32:10<br></code></ul>
  3966. Das momentane Maximum f&uuml;r eine Endzeit liegt bei 24 Stunden.<br>
  3967. </li>
  3968. <li><B>pressL &lt;peer&gt; [&lt;repCount&gt;] [&lt;repDelay&gt;] </B><a name="CUL_HMpressL"></a><br>
  3969. simuliert einen Tastendruck eines lokalen oder anderen peers.<br>
  3970. <B>&lt;peer&gt;</B> peer auf den der Tastendruck bezogen wird. <br>
  3971. <B>&lt;repCount&gt;</B> automatische Wiederholungen des long press. <br>
  3972. <B>&lt;repDelay&gt;</B> timer zwischen den Wiederholungen. <br>
  3973. <B>Beispiel:</B>
  3974. <code>
  3975. set actor pressL FB_Btn01 # trigger long peer FB button 01<br>
  3976. set actor pressL FB_chn-8 # trigger long peer FB button 08<br>
  3977. set actor pressL self01 # trigger short des internen peers 01<br>
  3978. set actor pressL fhem02 # trigger short des FHEM channel 2<br>
  3979. </code>
  3980. </li>
  3981. <li><B>pressS &lt;peer&gt;</B><a name="CUL_HMpressS"></a><br>
  3982. simuliert einen kurzen Tastendruck entsprechend peerL
  3983. </li>
  3984. <li><B>eventL &lt;peer&gt; &lt;condition&gt; [&lt;repCount&gt;] [&lt;repDelay&gt;] </B><a name="CUL_HMeventL"></a><br>
  3985. simuliert einen Event mit zusätzlichem Wert.<br>
  3986. <B>&lt;peer&gt;</B> peer auf den der Tastendruck bezogen wird.<br>
  3987. <B>&lt;codition&gt;</B>wert des Events, 0..255 <br>
  3988. <B>Beispiel:</B>
  3989. <code>
  3990. set actor eventL md 30 # trigger vom Bewegungsmelder mit Wert 30<br>
  3991. </code>
  3992. </li>
  3993. <li><B>eventS &lt;peer&gt; &lt;condition&gt; </B><a name="CUL_HMeventS"></a><br>
  3994. simuliert einen kurzen Event eines Peers des actors. Typisch senden Sensoren nur short Events.
  3995. </li>
  3996. <br>
  3997. </ul>
  3998. </li>
  3999. <li>dimmer, blindActuator<br>
  4000. Dimmer k&ouml;nnen virtuelle Kan&auml;le unterst&uuml;tzen. Diese werden automatisch angelegt falls vorhanden.
  4001. Normalerweise gibt es 2 virtuelle Kan&auml;le zus&auml;tzlich zum prim&auml;ren Kanal. Virtuelle Dimmerkan&auml;le sind
  4002. standardm&auml;�ig deaktiviert, k&ouml;nnen aber parallel zum ersten Kanal benutzt werden um das Licht zu steuern. <br>
  4003. Die virtuellen Kan&auml;le haben Standardnamen SW&lt;channel&gt;_V&lt;nr&gt; z.B. Dimmer_SW1_V1 and Dimmer_SW1_V2.<br>
  4004. Virtuelle Dimmerkan&auml;le unterscheiden sich komplett von virtuellen Kn&ouml;pfen und Aktoren in FHEM, sind aber
  4005. Teil des HM-Ger&auml;ts. Dokumentation und M&ouml;glichkeiten w&uuml;rde hier aber zu weit f&uuml;hren.<br>
  4006. <ul>
  4007. <li><B>0 - 100 [on-time] [ramp-time]</B><br>
  4008. Setzt den Aktor auf den gegeben Wert (In Prozent)
  4009. mit einer Aufl&ouml;sung von 0.5.<br>
  4010. Bei Dimmern ist optional die Angabe von "on-time" und "ramp-time" m&ouml;glich, beide in Sekunden mit 0.1s Abstufung.<br>
  4011. "On-time" verh&auml;lt sich analog dem "on-for-timer".<br>
  4012. "Ramp-time" betr&auml;gt standardm&auml;�ig 2.5s, 0 bedeutet umgehend.<br>
  4013. </li>
  4014. <li><B><a href="#CUL_HMon">on</a></B></li>
  4015. <li><B><a href="#CUL_HMoff">off</a></B></li>
  4016. <li><B><a href="#CUL_HMpress">press &lt;[short|long]&gt;&lt;[on|off]&gt;</a></B></li>
  4017. <li><B><a href="#CUL_HMtoggle">toggle</a></B></li>
  4018. <li><B>toggleDir</B><a name="CUL_HMtoggleDir"></a> - toggelt die fahrtrichtung des Rollo-Aktors.
  4019. Es wird umgeschaltet zwischen auf/stop/ab/stop</li>
  4020. <li><B><a href="#CUL_HMonForTimer">on-for-timer &lt;sec&gt;</a></B> - Nur Dimmer! <br></li>
  4021. <li><B><a href="#CUL_HMonTill">on-till &lt;time&gt;</a></B> - Nur Dimmer! <br></li>
  4022. <li><B>stop</B> - Stopt Bewegung (Rollo) oder Dimmerrampe</li>
  4023. <li><B>old</B> - schaltet auf den vorigen Wert zurĂźck. Nur dimmer. </li>
  4024. <li><B>pct &lt;level&gt [&lt;ontime&gt] [&lt;ramptime&gt]</B> - setzt Aktor auf gew&uuml;nschten <B>absolut Wert</B>.<br>
  4025. Optional k&ouml;nnen f&uuml;r Dimmer "ontime" und "ramptime" angegeben werden.<br>
  4026. "Ontime" kann dabei in Sekunden angegeben werden. Kann auch als Endzeit angegeben werden im Format hh:mm:ss
  4027. </li>
  4028. <li><B>up [changeValue] [&lt;ontime&gt] [&lt;ramptime&gt]</B> Einen Schritt hochdimmen.</li>
  4029. <li><B>down [changeValue] [&lt;ontime&gt] [&lt;ramptime&gt]</B> Einen Schritt runterdimmen.<br>
  4030. "changeValue" ist optional und gibt den zu &auml;ndernden Wert in Prozent an. M&ouml;gliche Abstufung dabei ist 0.5%, Standard ist 10%. <br>
  4031. "ontime" ist optional und gibt an wielange der Wert gehalten werden soll. '0' bedeutet endlos und ist Standard.<br>
  4032. "ramptime" ist optional und definiert die Zeit bis eine &auml;nderung den neuen Wert erreicht. Hat nur f&uuml;r Dimmer Bedeutung.
  4033. <br></li>
  4034. </ul>
  4035. <br>
  4036. </li>
  4037. <li>remotes, pushButton<a name="CUL_HMremote"></a><br>
  4038. Diese Ger&auml;teart reagiert nicht auf Anfragen, au�er sie befinden sich im Lernmodus. FHEM reagiert darauf
  4039. indem alle Anfragen gesammelt werden bis der Lernmodus detektiert wird. Manuelles Eingreifen durch
  4040. den Benutzer ist dazu n&ouml;tig. Ob Befehle auf Ausf&uuml;hrung warten kann auf Ger&auml;teebene mit dem Parameter
  4041. 'protCmdPend' abgefragt werden.
  4042. <ul>
  4043. <li><B>trgEventS [all|&lt;peer&gt;] &lt;condition&gt;</B><a name="CUL_HMtrgEventS"></a><br>
  4044. Initiiert ein eventS fuer die peer entity. Wenn <B>all</B> ausgewählt ist wird das Kommando bei jedem der Peers ausgefßhrt. Siehe auch <a href="CUL_HMeventS">eventS</a><br>
  4045. <B>&lt;condition&gt;</B>: Ist der Wert welcher mit dem Event versendet wird. Bei einem Bewegungsmelder ist das bspw. die Helligkeit.
  4046. </li>
  4047. <li><B>trgEventL [all|&lt;peer&gt;] &lt;condition&gt;</B><a name="CUL_HMtrgEventL"></a><br>
  4048. Initiiert ein eventL fuer die peer entity. Wenn <B>all</B> ausgewählt ist wird das Kommando bei jedem der Peers ausgefßhrt. Siehe auch <a href="CUL_HMeventL">eventL</a><br>
  4049. <B>&lt;condition&gt;</B>: is the condition being transmitted with the event. E.g. the brightness in case of a motion detector.
  4050. </li>
  4051. <li><B>trgPressS [all|&lt;peer&gt;] </B><a name="CUL_HMtrgPressS"></a><br>
  4052. Initiiert ein pressS fuer die peer entity. Wenn <B>all</B> ausgewählt ist wird das Kommando bei jedem der Peers ausgefßhrt. Siehe auch <a href="CUL_HMpressS">pressS</a><br>
  4053. </li>
  4054. <li><B>trgPressL [all|&lt;peer&gt;] </B><a name="CUL_HMtrgPressL"></a><br>
  4055. Initiiert ein pressL fuer die peer entity. Wenn <B>all</B> ausgewählt ist wird das Kommando bei jedem der Peers ausgefßhrt. Siehe auch <a href="CUL_HMpressL">pressL</a><br>
  4056. </li>
  4057. <li><B>peerChan &lt;btn_no&gt; &lt;actChan&gt; [single|<u>dual</u>|reverse]
  4058. [<u>set</u>|unset] [<u>both</u>|actor|remote]</B><a name="CUL_HMpeerChan"></a><br>
  4059. "peerChan" richtet eine Verbindung zwischen Sender-<B>Kanal</B> und
  4060. Aktor-<B>Kanal</B> ein, bei HM "link" genannt. "Peering" darf dabei nicht
  4061. mit "pairing" verwechselt werden.<br>
  4062. <B>Pairing</B> bezeichnet das Zuordnen eines <B>Ger&auml;ts</B> zu einer Zentrale.<br>
  4063. <B>Peering</B> bezeichnet das faktische Verbinden von <B>Kan&auml;len</B>.<br>
  4064. Peering erlaubt die direkte Interaktion zwischen Sender und Aktor ohne den Einsatz einer CCU<br>
  4065. Peering eines Senderkanals veranla�t den Sender nach dem Senden eines Triggers auf die
  4066. Best&auml;tigung eines - jeden - Peers zu warten. Positives Feedback (z.B. gr&uuml;ne LED)
  4067. gibt es dabei nur wenn alle Peers den Befehl best&auml;tigt haben.<br>
  4068. Peering eines Aktorkanals richtet dabei einen Satz von Parametern ein welche die auszuf&uuml;hrenden Aktionen
  4069. definieren wenn ein Trigger dieses Peers empfangen wird. Dies bedeutet: <br>
  4070. - nur Trigger von Peers werden ausgef&uuml;hrt<br>
  4071. - die auszuf&uuml;hrende Aktion muss f&uuml;r den zugeh&ouml;rigen Trigger eines Peers definiert werden<br>
  4072. Ein Aktorkanal richtet dabei eine Standardaktion beim Peering ein - diese h&auml;ngt vom Aktor ab.
  4073. Sie kann ebenfalls davon abh&auml;ngen ob ein oder zwei Tasten <B>ein einem Befehl</B> gepeert werden.
  4074. Peert man einen Schalter mit 2 Tasten kann eine Taste f&uuml;r 'on' und eine andere f&uuml;r 'off' angelegt werden.
  4075. Wenn nur eine Taste definiert wird ist die Funktion wahrscheinlich 'toggle'.<br>
  4076. Die Funktion kann durch programmieren des Register (vom Aktor abh&auml;ngig) ge&auml;ndert werden.<br>
  4077. Auch wenn der Befehl von einer Fernbedienung oder einem Taster kommt hat er direkten Effekt auf
  4078. den Aktor. Das Peering beider Seiten ist quasi unabh&auml;ngig und hat unterschiedlich Einfluss auf
  4079. Sender und Empf&auml;nger.<br>
  4080. Peering eines Aktorkanals mit mehreren Senderkan&auml;len ist ebenso m&ouml;glich wie das eines Senderkanals
  4081. mit mehreren Empf&auml;ngerkan&auml;len.<br>
  4082. &lt;actChan&gt; ist der zu verkn&uuml;pfende Aktorkanal.<br>
  4083. &lt;btn_no&gt; ist der zu verkn&uuml;pfende Senderkanal (Knopf). Wird
  4084. 'single' gew&auml;hlt werden die Tasten von 1 an gez&auml;hlt. F&uuml;r 'dual' ist btn_no
  4085. die Nummer des zu verwendenden Tasterpaares. Z.B. ist '3' iim Dualmodus das
  4086. dritte Tasterpaar welches mit Tasten 5 und 6 im Singlemodus &uuml;bereinstimmt.<br>
  4087. Wird der Befehl auf einen Kanal angewendet wird btn_no igroriert.
  4088. Muss gesetzt sein, sollte dabei 0 sein.<br>
  4089. [single|dual]: Dieser Modus bewirkt das Standardverhalten des Aktors bei Benutzung eines Tasters. Ein Dimmer
  4090. kann z.B. an einen einzelnen oder ein Paar von Tastern angelernt werden. <br>
  4091. Standardeinstellung ist "dual".<br>
  4092. 'dual' (default) Schalter verkn&uuml;pft zwei Taster mit einem Aktor. Bei einem Dimmer
  4093. bedeutet das ein Taster f&uuml;r hoch- und einer f&uuml;r runterdimmen. <br>
  4094. 'reverse' identisch zu dual - nur die Reihenfolge der Buttons ist gedreht<br>
  4095. 'single' benutzt nur einen Taster des Senders. Ist z.B. n&uuml;tzlich f&uuml;r einen einfachen Schalter
  4096. der nur zwischen an/aus toggled. Aber auch ein Dimmer kann an nur einen Taster angelernt werden.<br>
  4097. [set|unset]: W&auml;hlt aus ob Peer hinzugef&uuml;gt oder entfernt werden soll.<br>
  4098. Hinzuf&uuml;gen ist Standard.<br>
  4099. 'set' stellt Peers f&uuml;r einen Kanal ein.<br>
  4100. 'unset' entfernt Peer f&uuml;r einen Kanal.<br>
  4101. [actor|remote|both] beschr&auml;nkt die Ausf&uuml;hrung auf Aktor oder Fernbedienung.
  4102. Das erm&ouml;glicht dem Benutzer das entfernen des Peers vom Fernbedienungskanal ohne
  4103. die Einstellungen am Aktor zu entfernen.<br>
  4104. Standardm&auml;�ig gew&auml;hlt ist "both" f&uuml;r beides.<br>
  4105. Example:
  4106. <ul><code>
  4107. set myRemote peerChan 2 mySwActChn single set #Peer zweiten Knopf mit Aktorkanal<br>
  4108. set myRmtBtn peerChan 0 mySwActChn single set #myRmtBtn ist ein Knopf der Fernbedienung. '0' wird hier nicht verarbeitet<br>
  4109. set myRemote peerChan 2 mySwActChn dual set #Verkn&uuml;pfe Kn&ouml;pfe 3 und 4<br>
  4110. set myRemote peerChan 3 mySwActChn dual unset #Entferne Peering f&uuml;r Kn&ouml;pfe 5 und 6<br>
  4111. set myRemote peerChan 3 mySwActChn dual unset aktor #Entferne Peering f&uuml;r Kn&ouml;pfe 5 und 6 nur im Aktor<br>
  4112. set myRemote peerChan 3 mySwActChn dual set remote #Verkn&uuml;pfe Kn&ouml;pfe 5 und 6 nur mit Fernbedienung. Linkeinstellungen mySwActChn werden beibehalten.<br>
  4113. </code></ul>
  4114. </li>
  4115. </ul>
  4116. </li>
  4117. <li>virtual<a name="CUL_HMvirtual"></a><br>
  4118. <ul>
  4119. <li><B><a href="#CUL_HMpeerChan">peerChan</a></B> siehe remote</li>
  4120. <li><B><a name="CUL_HMpress"></a>press [long|short] [&lt;peer&gt;] [&lt;repCount&gt;] [&lt;repDelay&gt;] </B>
  4121. <ul>
  4122. Simuliert den Tastendruck am Aktor eines gepeerted Sensors
  4123. <li>[long|short] soll ein langer oder kurzer Taastendrucl simuliert werden? Default ist kurz. </li>
  4124. <li>[&lt;peer&gt;] legt fest, wessen peer's trigger simuliert werden soll.Default ist self(channelNo).</li>
  4125. <li>[&lt;repCount&gt;] nur gueltig fuer long. wie viele messages sollen gesendet werden? (Laenge des Button press). Default ist 1.</li>
  4126. <li>[&lt;repDelay&gt;] nur gueltig fuer long. definiert die Zeit zwischen den einzelnen Messages. </li>
  4127. </ul>
  4128. </li>
  4129. <li><B>virtTemp &lt;[off -10..50]&gt;<a name="CUL_HMvirtTemp"></a></B>
  4130. Simuliert ein Thermostat. Wenn mit einem Ger&auml;t gepeert wird periodisch eine Temperatur gesendet,
  4131. solange bis "off" gew&auml;hlt wird. Siehe auch <a href="#CUL_HMvirtHum">virtHum</a><br>
  4132. </li>
  4133. <li><B>virtHum &lt;[off -10..50]&gt;<a name="CUL_HMvirtHum"></a></B>
  4134. Simuliert den Feuchtigkeitswert eines Thermostats. Wenn mit einem Ger&auml;t verkn&uuml;pft werden periodisch
  4135. Luftfeuchtigkeit undTemperatur gesendet, solange bis "off" gew&auml;hlt wird. Siehe auch <a href="#CUL_HMvirtTemp">virtTemp</a><br>
  4136. </li>
  4137. <li><B>valvePos &lt;[off 0..100]&gt;<a name="CUL_HMvalvePos"></a></B>
  4138. steuert einen Ventilantrieb<br>
  4139. </li>
  4140. </ul>
  4141. </li>
  4142. <li>smokeDetector<br>
  4143. Hinweis: All diese Befehle funktionieren momentan nur wenn mehr als ein Rauchmelder
  4144. vorhanden ist, und diese gepeert wurden um eine Gruppe zu bilden. Um die Befehle abzusetzen
  4145. muss der Master dieser gruppe verwendet werden, und momentan muss man raten welcher der Master ist.<br>
  4146. smokeDetector kann folgenderma�en in Gruppen eingeteilt werden:
  4147. <a href="#CUL_HMpeerChan">peerChan</a>. Alle Mitglieder m&uuml;ssen mit dem Master verkn&uuml;pft werden. Auch der
  4148. Master muss mit peerChan zur Gruppe zugef&uuml;gt werden - z.B. mit sich selbst verkn&uuml;pft! Dadurch hat man volle
  4149. Kontrolle &uuml;ber die Gruppe und muss nicht raten.<br>
  4150. <ul>
  4151. <li><B>teamCall</B> - f&uuml;hrt einen Netzwerktest unter allen Gruppenmitgliedern aus</li>
  4152. <li><B>teamCallBat</B> - Simuliert einen low-battery alarm</li>
  4153. <li><B>alarmOn</B> - l&ouml;st einen Alarm aus</li>
  4154. <li><B>alarmOff</B> - schaltet den Alarm aus</li>
  4155. </ul>
  4156. </li>
  4157. <li>4Dis (HM-PB-4DIS-WM|HM-PB-4DIS-WM|HM-RC-Dis-H-x-EU|ROTO_ZEL-STG-RM-DWT-10)
  4158. <ul>
  4159. <li><B>text &lt;btn_no&gt; [on|off] &lt;text1&gt; &lt;text2&gt;</B><br>
  4160. Zeigt Text auf dem Display eines Ger&auml;ts an. F&uuml;r diesen Zweck muss zuerst ein set-Befehl
  4161. (oder eine Anzahl davon) abgegeben werden, dann k&ouml;nnen im "teach-in" Men&uuml; des 4Dis mit
  4162. "Central" Daten &uuml;bertragen werden.<br>
  4163. Falls auf einen Kanal angewendet d&uuml;rfen btn_no und on|off nicht verwendet werden, nur
  4164. reiner Text.<br>
  4165. \_ wird durch ein Leerzeichen ersetzt.<br>
  4166. Beispiel:
  4167. <ul>
  4168. <code>
  4169. set 4Dis text 1 on On Lamp<br>
  4170. set 4Dis text 1 off Kitchen Off<br>
  4171. <br>
  4172. set 4Dis_chn4 text Kitchen Off<br>
  4173. </code>
  4174. </ul>
  4175. </li>
  4176. </ul>
  4177. <br>
  4178. </li>
  4179. <li>Climate-Control (HM-CC-TC)
  4180. <ul>
  4181. <li><B>desired-temp &lt;temp&gt;</B><br>
  4182. Setzt verschiedene Temperaturen. &lt;temp&gt; muss zwischen 6°C und 30°C liegen, die Aufl&ouml;sung betr&auml;gt 0.5°C.</li>
  4183. <li><B>tempListSat [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4184. <li><B>tempListSun [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4185. <li><B>tempListMon [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4186. <li><B>tempListTue [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4187. <li><B>tempListThu [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4188. <li><B>tempListWed [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4189. <li><B>tempListFri [prep|exec] HH:MM temp ... 24:00 temp</B><br>
  4190. Gibt eine Liste mit Temperaturintervallen an. Bis zu 24 Intervall k&ouml;nnen pro Wochentag definiert werden, die
  4191. Aufl&ouml;sung dabei sind 10 Minuten. Die letzte Zeitangabe muss 24:00 Uhr sein.<br>
  4192. Beispiel: bis 6:00 soll die Temperatur 19°C sein, dann bis 23:00 Uhr 22.5°C, anschlie�end
  4193. werden bis Mitternacht 19°C gew&uuml;nscht.<br>
  4194. <code> set th tempListSat 06:00 19 23:00 22.5 24:00 19<br></code>
  4195. </li>
  4196. <li><B>partyMode &lt;HH:MM&gt;&lt;durationDays&gt;</B><br>
  4197. setzt die Steuerung f&uuml;r die angegebene Zeit in den Partymodus. Dazu ist die Endzeit sowie <b>Anzahl an Tagen</b>
  4198. die er dauern soll anzugeben. Falls er am n&auml;chsten Tag enden soll ist '1'
  4199. anzugeben<br></li>
  4200. <li><B>sysTime</B><br>
  4201. setzt Zeit des Klimakanals auf die Systemzeit</li>
  4202. </ul><br>
  4203. </li>
  4204. <li>Climate-Control (HM-CC-RT-DN|HM-CC-RT-DN-BoM)
  4205. <ul>
  4206. <li><B>controlMode &lt;auto|boost|day|night&gt;</B><br></li>
  4207. <li><B>controlManu &lt;temp&gt;</B><br></li>
  4208. <li><B>controlParty &lt;temp&gt;&lt;startDate&gt;&lt;startTime&gt;&lt;endDate&gt;&lt;endTime&gt;</B><br>
  4209. setzt die Steuerung in den Partymodus, definiert Temperatur und Zeitrahmen.<br>
  4210. Beispiel:<br>
  4211. <code>set controlParty 15 03-8-13 20:30 5-8-13 11:30</code></li>
  4212. <li><B>sysTime</B><br>
  4213. setzt Zeit des Klimakanals auf die Systemzeit</li>
  4214. <li><B>desired-temp &lt;temp&gt;</B><br>
  4215. Setzt verschiedene Temperaturen. &lt;temp&gt; muss zwischen 6°C und 30°C liegen, die Aufl&ouml;sung betr&auml;gt 0.5°C.</li>
  4216. <li><B>tempListSat [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4217. <li><B>tempListSun [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4218. <li><B>tempListMon [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4219. <li><B>tempListTue [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4220. <li><B>tempListThu [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4221. <li><B>tempListWed [prep|exec] HH:MM temp ... 24:00 temp</B><br></li>
  4222. <li><B>tempListFri [prep|exec] HH:MM temp ... 24:00 temp</B><br>
  4223. Gibt eine Liste mit Temperaturintervallen an. Bis zu 24 Intervall k&ouml;nnen pro Wochentag definiert werden, die
  4224. Aufl&ouml;sung dabei sind 10 Minuten. Die letzte Zeitangabe muss immer 24:00 Uhr sein.<br>
  4225. Der optionale Parameter [prep|exec] erlaubt das packen der Nachrichten und verbessert damit deutlich
  4226. die Daten&uuml;bertragung. Besonders n&uuml;tzlich wenn das Ger&auml;t im "Wakeup"-modus betrieben wird.
  4227. Benutzung durch senden der Befehle mit Parameter "prep". Daten werden dann f&uuml;r das Senden gesammelt.
  4228. Der letzte Befehl muss den Parameter "exec" habe um die Information zu &uuml;bertragen.<br>
  4229. Beispiel: bis 6:00 soll die Temperatur 19°C sein, dann bis 23:00 Uhr 22.5°C, anschlie�end
  4230. werden bis Mitternacht 19°C gew&uuml;nscht.<br>
  4231. <code> set th tempListSat 06:00 19 23:00 22.5 24:00 19<br></code>
  4232. <br>
  4233. <code> set th tempListSat prep 06:00 19 23:00 22.5 24:00 19<br>
  4234. set th tempListSun prep 06:00 19 23:00 22.5 24:00 19<br>
  4235. set th tempListMon prep 06:00 19 23:00 22.5 24:00 19<br>
  4236. set th tempListTue exec 06:00 19 23:00 22.5 24:00 19<br></code>
  4237. </li>
  4238. <li><B>tempListTmpl =>"[verify|restore] [[&lt;file&gt;:]templateName] ...</B><br>
  4239. Die Temperaturlisten f&uuml;r ein oder mehrere Devices k&ouml;nnen in einem File hinterlegt
  4240. werden. Es wird ein template f&uuml;r eine Woche hinterlegt. Der User kann dieses
  4241. template in ein Device schreiben lassen (restore). Er kann auch pr&uuml;fen, ob das Device korrekt
  4242. nach dieser Templist programmiert ist (verify).
  4243. Default Opeartion ist verify.<br>
  4244. Default File ist tempList.cfg.<br>
  4245. Default templateName ist der name der Entity<br>
  4246. Default f&uuml;r file und templateName kann mit dem Attribut <B>tempListTmpl</B> gesetzt werden.<br>
  4247. Beispiel f&uuml;r ein templist File. room1 und room2 sind die Namen 2er Tempaltes:<br>
  4248. <code>entities:room1
  4249. tempListSat>08:00 16.0 15:00 18.0 21:30 19.0 24:00 14.0
  4250. tempListSun>08:00 16.0 15:00 18.0 21:30 19.0 24:00 14.0
  4251. tempListMon>07:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
  4252. tempListTue>07:00 16.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0
  4253. tempListWed>07:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
  4254. tempListThu>07:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
  4255. tempListFri>07:00 16.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
  4256. entities:room2
  4257. tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0
  4258. tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0
  4259. tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
  4260. tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0
  4261. tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
  4262. tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0
  4263. tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
  4264. </code>
  4265. Specials:<br>
  4266. <li>none: das Template wird ignoriert</li>
  4267. <li>defaultWeekplan: Es wird als Default jeden Tag 18.0 Grad eingestellt.
  4268. Sinnvoll nutzbar wenn man einen TC als Kontroller nutzt. Der Wochenplan des TC wird dann imlizit genutzt</li>
  4269. </li>
  4270. <li><B>tempTmplSet =>"[[ &lt;file&gt; :]templateName]</B><br>
  4271. Setzt das Attribut und sendet die �nderungen an das Device.
  4272. </li>
  4273. <li><B>templateDel =>" &lt;template&gt; </B><br>
  4274. LĂśscht eine Templateeintrag an dieser entity.
  4275. </li>
  4276. </ul><br>
  4277. </li>
  4278. <li>OutputUnit (HM-OU-LED16)
  4279. <ul>
  4280. <li><B>led [off|red|green|yellow]</B><br>
  4281. schaltet die LED des Kanals auf die gew&uuml;nschte Farbe. Wird der Befehl auf ein Ger&auml;t angewandt so
  4282. werden alle LEDs auf diese Farbe gesetzt.<br>
  4283. Experten k&ouml;nnen die LEDs separat durch eine 8-stellige Hex-Zahl ansteuern.<br></li>
  4284. <li><B>ilum &lt;Helligkeit&gt;&lt;Dauer&gt; </B><br>
  4285. &lt;Helligkeit&gt; [0-15] der Beleuchtung.<br>
  4286. &lt;Dauer&gt; [0-127] in Sekunden, 0 bedeutet dauernd an.<br></li>
  4287. </ul><br>
  4288. </li>
  4289. <li>OutputUnit (HM-OU-CFM-PL)
  4290. <ul>
  4291. <li><B>led &lt;color&gt;[,&lt;color&gt;..] [&lt;repeat&gt..]</B><br>
  4292. M&ouml;gliche Farben sind [redL|greenL|yellowL|redS|greenS|yellowS|pause]. Eine Folge von Farben
  4293. kann durch trennen der Farbeintr&auml;ge mit ',' eingestellt werden.
  4294. Leerzeichen d&uuml;rfen in der Liste nicht benutzt werden. 'S' bezeichnet kurze und
  4295. 'L' lange Beleuchtungsdauer. <br>
  4296. <b>repeat</b> definiert wie oft die Sequenz ausgef&uuml;hrt werden soll. Standard ist 1.<br>
  4297. </li>
  4298. <li><B>playTone &lt;MP3No&gt[,&lt;MP3No&gt;..] [&lt;repeat&gt;] [&lt;volume&gt;]</B><br>
  4299. Spielt eine Reihe von T&ouml;nen. Die Liste muss mit ',' getrennt werden. Leerzeichen
  4300. d&uuml;rfen in der Liste nicht benutzt werden.<br>
  4301. <b>replay</b> kann verwendet werden um den zuletzt gespielten Klang zu wiederholen.<br>
  4302. <b>repeat</b> definiert wie oft die Sequenz ausgef&uuml;hrt werden soll. Standard ist 1.<br>
  4303. <b>volume</b> kann im Bereich 0..10 liegen. 0 stoppt jeden aktuell gespielten Sound. Standard ist 10 (100%.<br>
  4304. Beispiel:
  4305. <ul><code>
  4306. set cfm_Mp3 playTone 3 # MP3 Titel 3 einmal<br>
  4307. set cfm_Mp3 playTone 3 3 # MP3 Titel 3 dreimal<br>
  4308. set cfm_Mp3 playTone 3 1 5 # MP3 Titel 3 mit halber Lautst&auml;rke<br>
  4309. set cfm_Mp3 playTone 3,6,8,3,4 # MP3 Titelfolge 3,6,8,3,4 einmal<br>
  4310. set cfm_Mp3 playTone 3,6,8,3,4 255# MP3 Titelfolge 3,6,8,3,4 255 mal<br>
  4311. set cfm_Mp3 playTone replay # Wiederhole letzte Sequenz<br>
  4312. <br>
  4313. set cfm_Led led redL 4 # rote LED dreimal lang blinken<br>
  4314. set cfm_Led led redS,redS,redS,redL,redL,redL,redS,redS,redS 255 # SOS 255 mal<br>
  4315. </ul></code>
  4316. </li>
  4317. </ul><br>
  4318. </li>
  4319. <li>HM-RC-19xxx
  4320. <ul>
  4321. <li><B>alarm &lt;count&gt;</B><br>
  4322. sendet eine Alarmnachricht an die Steuerung<br></li>
  4323. <li><B>service &lt;count&gt;</B><br>
  4324. sendet eine Servicenachricht an die Steuerung<br></li>
  4325. <li><B>symbol &lt;symbol&gt; [set|unset]</B><br>
  4326. aktiviert ein verf&uuml;gbares Symbol auf der Steuerung<br></li>
  4327. <li><B>beep [off|1|2|3]</B><br>
  4328. aktiviert T&ouml;ne<br></li>
  4329. <li><B>backlight [off|on|slow|fast]</B><br>
  4330. aktiviert Hintergrundbeleuchtung<br></li>
  4331. <li><B>display &lt;text&gt; comma unit tone backlight &lt;symbol(s)&gt;
  4332. </B><br>
  4333. Steuert das Display der Steuerung<br>
  4334. &lt;text&gt; : bis zu 5 Zeichen <br>
  4335. comma : 'comma' aktiviert das Komma, 'no' l&auml;�t es aus <br>
  4336. [unit] : setzt Einheitensymbole.
  4337. [off|Proz|Watt|x3|C|x5|x6|x7|F|x9|x10|x11|x12|x13|x14|x15]. Momentan sind
  4338. x3..x15 nicht getestet. <br>
  4339. tone : aktiviert einen von 3 T&ouml;nen [off|1|2|3]<br>
  4340. backlight: l&auml;�t die Hintergrundbeleuchtung aufblinken [off|on|slow|fast]<br>
  4341. &lt;symbol(s)&gt; aktiviert die Anzeige von Symbolen. Mehrere Symbole
  4342. k&ouml;nnen zu selben Zeit aktiv sein, Verkn&uuml;pfung erfolgt komma-getrennt. Dabei keine
  4343. Leerzeichen verwenden. M&ouml;gliche Symbole:
  4344. [bulb|switch|window|door|blind|scene|phone|bell|clock|arrowUp|arrowDown]<br><br>
  4345. Beispiel:
  4346. <ul><code>
  4347. # "Hello" auf dem Display, Symbol bulb an, Hintergrundbeleuchtung, Ton ausgeben<br>
  4348. set FB1 display Hello no off 1 on bulb<br>
  4349. # "1234,5" anzeigen mit Einheit 'W'. Symbole scene,phone,bell und
  4350. # clock sind aktiv. Hintergrundbeleuchtung blinikt schnell, Ausgabe von Ton 2<br>
  4351. set FB1 display 12345 comma Watt 2 fast scene,phone,bell,clock
  4352. </ul></code>
  4353. </li>
  4354. </ul><br>
  4355. </li>
  4356. <li>HM-Dis-WM55
  4357. <ul>
  4358. <li><B>displayWM help </B><br>
  4359. <B>displayWM [long|short] &lt;text1&gt; &lt;color1&gt; &lt;icon1&gt; ... &lt;text6&gt; &lt;color6&gt; &lt;icon6&gt;</B><br>
  4360. <B>displayWM [long|short] &lt;lineX&gt; &lt;text&gt; &lt;color&gt; &lt;icon&gt;</B><br>
  4361. es kĂśnnen bis zu 6 Zeilen programmiert werden.<br>
  4362. <B>lineX</B> legt die zu ändernde Zeilennummer fest. Es kÜnnen die 3 Parameter der Zeile geändert werden.<br>
  4363. <B>textNo</B> ist der anzuzeigende Text. Der Inhalt des Texts wird in den Buttonds definiert.
  4364. txt&lt;BtnNo&gt;_&lt;lineNo&gt; referenziert den Button und dessn jeweiligen Zeile.
  4365. Alternativ kann ein bis zu 12 Zeichen langer Freitext angegeben werden<br>
  4366. <B>color</B> kann sein white, red, orange, yellow, green, blue<br>
  4367. <B>icon</B> kann sein off, on, open, closed, error, ok, noIcon<br>
  4368. Example:
  4369. <ul><code>
  4370. set disp01 displayWM short txt02_2 green noIcon txt10_1 red error txt05_2 yellow closed txt02_2 orange open <br>
  4371. set disp01 displayWM long line3 txt02_2 green noIcon<br>
  4372. set disp01 displayWM long line2 nc yellow noIcon<br>
  4373. set disp01 displayWM long line6 txt02_2<br>
  4374. set disp01 displayWM long line1 nc nc closed<br>
  4375. </ul></code>
  4376. </li>
  4377. </ul><br>
  4378. </li>
  4379. <li>HM-Dis-EP-WM55
  4380. <ul>
  4381. <li><B>displayEP help </B><br>
  4382. <B>displayEP &lt;text1,icon1:text2,icon2:text3,icon3&gt; &lt;sound&gt; &lt;repetition&gt; &lt;pause&gt; &lt;signal&gt;</B><br>
  4383. bis zu 3 Zeilen werden adressiert.<br>
  4384. Wenn help eingegeben wird wird eine <i><B>hilfe</B></i> zum Kommando ausgegeben. Optionen der Parameter werden ausgegeben.<br>
  4385. <B>textx</B> 12 char text fĂźr die Zeile.
  4386. Wenn leer wird der Wert gemä� Reading genutzt. Typisch bedeuted es, dass keine �nderung stattfindet.
  4387. text0-9 zeigt den vordefinierten Wert der Kanäle 4 bis 8 an.
  4388. 0xHH erlaubt die anzeige eines hex Zeichens.<br>
  4389. <B>iconx</B> Icon der Zeile.
  4390. Typisch bedeuted es, dass keine �nderung stattfindet.<br>
  4391. <B>sound</B> sound zum Abspielen.<br>
  4392. <B>repetition</B> 0..15 <br>
  4393. <B>pause</B> 1..160<br>
  4394. <B>signal</B> Signalfarbe zum Anzeigen<br>
  4395. <br>
  4396. <B>Note: param reWriteDisplayxx</B> <br>
  4397. <li>
  4398. Beim Druck einer Taste ueberschreibt das Geraet diemittleren 3 Zeilen. Wenn da Attribut <br>
  4399. attr chan param reWriteDisplayxx<br>
  4400. gesetzt ist werden die 3 Zeilen nach xx Sekunden auf den Orginalwert zurĂźck geschrieben.<br>
  4401. </li>
  4402. </li>
  4403. </ul><br>
  4404. </li>
  4405. <li>keyMatic<br><br>
  4406. <ul>Keymatic verwendet eine AES-signierte Kommunikation. Die Steuerung von KeyMatic
  4407. ist mit HMLAN und mit CUL m&ouml;glich.
  4408. Um die Keymatic mit einem CUL zu steuern, muss das Perl-Modul Crypt::Rijndael
  4409. installiert sein.</ul><br>
  4410. <ul>
  4411. <li><B>lock</B><br>
  4412. Schlie�bolzen f&auml;hrt in Zu-Position<br></li>
  4413. <li><B>unlock [sec]</B><br>
  4414. Schlie�bolzen f&auml;hrt in Auf-Position.<br>
  4415. [sec]: Stellt die Verz&ouml;gerung ein nach der sich das Schloss automatisch wieder verschlie�t.<br>
  4416. 0 - 65535 Sekunden</li>
  4417. <li><B>open [sec]</B><br>
  4418. Entriegelt die T&uuml;r sodass diese ge&ouml;ffnet werden kann.<br>
  4419. [sec]: Stellt die Verz&ouml;gerung ein nach der sich das Schloss automatisch wieder
  4420. verschlie�t.<br>0 - 65535 Sekunden</li>
  4421. </ul>
  4422. </li>
  4423. <li>winMatic <br><br>
  4424. <ul>winMatic arbeitet mit 2 Kan&auml;len, einem f&uuml;r die Fenstersteuerung und einem f&uuml;r den Akku.</ul><br>
  4425. <ul>
  4426. <li><B>level &lt;level&gt; &lt;relockDelay&gt; &lt;speed&gt;</B><br>
  4427. stellt den Wert ein. <br>
  4428. &lt;level&gt;: Bereich ist 0% bis 100%<br>
  4429. &lt;relockDelay&gt;: Spanne reicht von 0 bis 65535 Sekunden. 'ignore' kann verwendet werden um den Wert zu ignorieren.<br>
  4430. &lt;speed&gt;: Bereich ist 0% bis 100%<br>
  4431. </li>
  4432. <li><B>stop</B><br>
  4433. stopt die Bewegung<br>
  4434. </li>
  4435. </ul>
  4436. </li>
  4437. <li>CCU_FHEM<br>
  4438. <ul>
  4439. <li>defIgnUnknown<br>
  4440. Definieren die unbekannten Devices und setze das Attribut ignore.
  4441. Ddann loesche die Readings. <br>
  4442. </li>
  4443. </ul>
  4444. </li>
  4445. <li>HM-Sys-sRP-Pl<br>
  4446. legt Eintr&auml;ge f&uuml;r den Repeater an. Bis zu 36 Eintr&auml;ge k&ouml;nnen angelegt werden.
  4447. <ul>
  4448. <li><B>setRepeat &lt;entry&gt; &lt;sender&gt; &lt;receiver&gt; &lt;broadcast&gt;</B><br>
  4449. &lt;entry&gt; [1..36] Nummer des Eintrags in der Tabelle.<br>
  4450. &lt;sender&gt; Name oder HMid des Senders oder der Quelle die weitergeleitet werden soll<br>
  4451. &lt;receiver&gt; Name oder HMid des Empf&auml;ngers oder Ziels an das weitergeleitet werden soll<br>
  4452. &lt;broadcast&gt; [yes|no] definiert ob Broadcasts von einer ID weitergeleitet werden sollen.<br>
  4453. <br>
  4454. Kurzanwendung: <br>
  4455. <code>setRepeat setAll 0 0 0<br></code>
  4456. schreibt die gesamte Liste der Ger&auml;te neu. Daten kommen vom Attribut repPeers. <br>
  4457. Das Attribut repPeers hat folgendes Format:<br>
  4458. src1:dst1:[y/n],src2:dst2:[y/n],src2:dst2:[y/n],...<br>
  4459. <br>
  4460. Formatierte Werte von repPeer:<br>
  4461. <ul>
  4462. Number src dst broadcast verify<br>
  4463. number: Nummer des Eintrags in der Liste<br>
  4464. src: Ursprungsger&auml;t der Nachricht - aus Repeater ausgelesen<br>
  4465. dst: Zielger&auml;t der Nachricht - aus den Attributen abgeleitet<br>
  4466. broadcast: sollen Broadcasts weitergeleitet werden - aus Repeater ausgelesen<br>
  4467. verify: stimmen Attribute und ausgelesen Werte &uuml;berein?<br>
  4468. </ul>
  4469. </li>
  4470. </ul>
  4471. </li>
  4472. </ul>
  4473. <br>
  4474. Debugging:
  4475. <ul>
  4476. <li><B>raw &lt;data&gt; ...</B><br>
  4477. nur f&uuml;r Experimente ben&ouml;tigt.
  4478. Sendet eine Liste von "Roh"-Befehlen. Der erste Befehl wird unmittelbar gesendet,
  4479. die folgenden sobald der vorherige best&auml;tigt wurde. Die L&auml;nge wird automatisch
  4480. berechnet und der Nachrichtenz&auml;hler wird erh&ouml;ht wenn die ersten beiden Zeichen ++ sind.
  4481. Beispiel (AES aktivieren):
  4482. <pre>
  4483. set hm1 raw ++A001F100001234560105000000001\
  4484. ++A001F10000123456010802010AF10B000C00\
  4485. ++A001F1000012345601080801\
  4486. ++A001F100001234560106
  4487. </pre>
  4488. </li>
  4489. </ul>
  4490. </ul>
  4491. <br>
  4492. <a name="CUL_HMget"></a><b>Get</b><br>
  4493. <ul>
  4494. <li><B>configSave &lt;filename&gt;</B><a name="CUL_HMconfigSave"></a><br>
  4495. Sichert die Einstellungen eines Eintrags in einer Datei. Die Daten werden in
  4496. einem von der FHEM-Befehlszeile ausf&uuml;hrbaren Format gespeichert.<br>
  4497. Die Datei liegt im FHEM Home-Verzeichnis neben der fhem.cfg. Gespeichert wird
  4498. kumulativ- d.h. neue Daten werden an die Datei angeh&auml;ngt. Es liegt am Benutzer das
  4499. doppelte speichern von Eintr&auml;gen zu vermeiden.<br>
  4500. Ziel der Daten ist NUR die Information eines HM-Ger&auml;tes welche IM Ger&auml;t gespeichert ist.
  4501. Im Deteil sind das nur die Peer-Liste sowie die Register.
  4502. Durch die Register wird also das Peering eingeschlossen.<br>
  4503. Die Datei ist vom Benutzer les- und editierbar. Zus&auml;tzlich gespeicherte Zeitstempel
  4504. helfen dem Nutzer bei der Validierung.<br>
  4505. Einschr&auml;nkungen:<br>
  4506. Auch wenn alle Daten eines Eintrags in eine Datei gesichert werden so sichert FHEM nur
  4507. die zum Zeitpunkt des Speicherns verf&uuml;gbaren Daten! Der Nutzer muss also die Daten
  4508. der HM-Hardware auslesen bevor dieser Befehl ausgef&uuml;hrt wird.
  4509. Siehe empfohlenen Ablauf unten.<br>
  4510. Dieser Befehl speichert keine FHEM-Attribute oder Ger&auml;tedefinitionen.
  4511. Diese verbleiben in der fhem.cfg.<br>
  4512. Desweiteren werden gesicherte Daten nicht automatisch zur&uuml;ck auf die HM-Hardware geladen.
  4513. Der Benutzer muss die Wiederherstellung ausl&ouml;sen.<br><br>
  4514. Ebenso wie ander Befehle wird 'configSave' am besten auf ein Ger&auml;t und nicht auf einen
  4515. Kanal ausgef&uuml;hrt. Wenn auf ein Ger&auml;t angewendet werden auch die damit verbundenen Kan&auml;le
  4516. gesichert. <br><br>
  4517. <code>
  4518. Empfohlene Arbeitsfolge f&uuml;r ein Ger&auml;t 'HMdev':<br>
  4519. set HMdev clear msgEvents # alte Events l&ouml;schen um Daten besser kontrollieren zu k&ouml;nnen<br>
  4520. set HMdev getConfig # Ger&auml;te- und Kanalinformation auslesen<br>
  4521. # warten bis Ausf&uuml;hrung abgeschlossen ist<br>
  4522. # "protState" sollte dann "CMDs_done" sein<br>
  4523. # es sollten keine Warnungen zwischen "prot" und den Variablen auftauchen<br>
  4524. get configSave myActorFile<br>
  4525. </code>
  4526. </li>
  4527. <li><B>param &lt;paramName&gt;</B><br>
  4528. Gibt den Inhalt der relevanten Parameter eines Eintrags zur&uuml;ck. <br>
  4529. Hinweis: wird der Befehl auf einen Kanal angewandt und 'model' abgefragt so wird das Model
  4530. des inhalteanbietenden Ger&auml;ts zur&uuml;ckgegeben.
  4531. </li>
  4532. <li><B>reg &lt;addr&gt; &lt;list&gt; &lt;peerID&gt;</B><br>
  4533. liefert den Wert eines Registers zur&uuml;ck. Daten werden aus dem Speicher von FHEM und nicht direkt vom Ger&auml;t geholt.
  4534. Falls der Registerinhalt nicht verf&uuml;gbar ist muss "getConfig" sowie anschlie�end "getReg" verwendet werden.<br>
  4535. &lt;addr&gt; Adresse des Registers in HEX. Registername kann alternativ verwendet werden falls in FHEM bekannt.
  4536. "all" gibt alle dekodierten Register eines Eintrags in einer Liste zur&uuml;ck.<br>
  4537. &lt;list&gt; Liste aus der das Register gew&auml;hlt wird. Wird der REgistername verwendet wird "list" ignoriert und kann auf '0' gesetzt werden.<br>
  4538. &lt;peerID&gt; identifiziert die Registerb&auml;nke f&uuml;r "list3" und "list4". Kann als Dummy gesetzt werden wenn nicht ben&ouml;tigt.<br>
  4539. </li>
  4540. <li><B>regList</B><br>
  4541. gibt eine Liste der von FHEM f&uuml;r dieses Ger&auml;t dekodierten Register zur&uuml;ck.<br>
  4542. Beachten dass noch mehr Register f&uuml;r ein Ger&auml;t implemetiert sein k&ouml;nnen.<br>
  4543. </li>
  4544. <li><B>saveConfig &lt;file&gt;</B><a name="CUL_HMsaveConfig"></a><br>
  4545. speichert Peers und Register in einer Datei.<br>
  4546. Gespeichert werden die Daten wie sie in FHEM verf&uuml;gbar sind. Es ist daher notwendig vor dem Speichern die Daten auszulesen.<br>
  4547. Der Befehl unterst&uuml;tzt Aktionen auf Ger&auml;teebene. D.h. wird der Befehl auf ein Ger&auml;t angewendet werden auch alle verbundenen Kanaleintr&auml;ge gesichert.<br>
  4548. Das Speichern der Datei erfolgt kumulativ. Wird ein Eintrag mehrfach in der selben Datei gespeichert so werden die Daten an diese angeh&auml;ngt.
  4549. Der Nutzer kann den Zeitpunkt des Speichern bei Bedarf auslesen.<br>
  4550. Der Inhalt der Datei kann verwendet werden um die Ger&auml;teeinstellungen wiederherzustellen. Er stellt alle Peers und Register des Eintrags wieder her.<br>
  4551. Zw&auml;nge/Beschr&auml;nkungen:<br>
  4552. vor dem zur&uuml;ckschreiben der Daten eines Eintrags muss das Ger&auml;t mit FHEM verbunden werden.<br>
  4553. "restore" l&ouml;scht keine verkn&uuml;pften Kan&auml;le, es f&uuml;gt nur neue Peers hinzu.<br>
  4554. </li>
  4555. <li><B>listDevice</B><br>
  4556. <ul>
  4557. <li>bei einer CCU gibt es eine Liste der Devices, welche den ccu service zum zuweisen der IOs zurĂźck<br>
  4558. </li>
  4559. <li>beim ActionDetector wird eine Komma geteilte Liste der Entities zurĂźckgegeben<br>
  4560. get ActionDetector listDevice # returns alle assigned entities<br>
  4561. get ActionDetector listDevice notActive# returns entities ohne status alive<br>
  4562. get ActionDetector listDevice alive # returns entities mit status alive<br>
  4563. get ActionDetector listDevice unknown # returns entities mit status unknown<br>
  4564. get ActionDetector listDevice dead # returns entities mit status dead<br>
  4565. </li>
  4566. </ul>
  4567. </li>
  4568. </ul><br>
  4569. <a name="CUL_HMattr"></a><b>Attribute</b>
  4570. <ul>
  4571. <li><a href="#eventMap">eventMap</a></li>
  4572. <li><a href="#do_not_notify">do_not_notify</a></li>
  4573. <li><a href="#ignore">ignore</a></li>
  4574. <li><a href="#dummy">dummy</a></li>
  4575. <li><a href="#showtime">showtime</a></li>
  4576. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  4577. <li><a name="CUL_HMaesCommReq">aesCommReq</a>
  4578. wenn gesetzt wird IO AES signature anfordern bevor ACK zum Device gesendet wird.<br>
  4579. </li>
  4580. <li><a name="#CUL_HMactAutoTry">actAutoTry</a>
  4581. actAutoTry 0_off,1_on<br>
  4582. setzen erlaubt dem ActionDetector ein statusrequest zu senden falls das Device dead markiert werden soll.
  4583. Das Attribut kann fuer Devices nĂźtzlich sein, welche sich nicht von selbst zyklisch melden.
  4584. </li>
  4585. <li><a href="#actCycle">actCycle</a>
  4586. actCycle &lt;[hhh:mm]|off&gt;<br>
  4587. Bietet eine 'alive' oder besser 'not alive' Erkennung f&uuml;r Ger&auml;te. [hhh:mm] ist die maximale Zeit ohne Nachricht eines Ger&auml;ts. Wenn innerhalb dieser Zeit keine Nachricht empfangen wird so wird das Event"&lt;device&gt; is dead" generiert.
  4588. Sendet das Ger&auml;t wieder so wird die Nachricht"&lt;device&gt; is alive" ausgegeben. <br>
  4589. Diese Erkennung wird durch 'autocreate' f&uuml;r jedes Ger&auml;t mit zyklischer Statusmeldung angelegt.<br>
  4590. Die Kontrollinstanz ist ein Pseudo-Ger&auml;t "ActionDetector" mit der HMId "000000".<br>
  4591. Aufgrund von Performance&uuml;berlegungen liegt die Antwortverz&ouml;gerung bei 600 Sekunden (10min). Kann &uuml;ber das Attribut "actCycle" des "ActionDetector" kontrolliert werden.<br>
  4592. Sobald die &Uuml;berwachung aktiviert wurde hat das HM-Ger&auml;t 2 Attribute:<br>
  4593. <ul>
  4594. actStatus: Aktivit&auml;tsstatus des Ger&auml;ts<br>
  4595. actCycle: Detektionsspanne [hhh:mm]<br>
  4596. </ul>
  4597. Die gesamte Funktion kann &uuml;ber den "ActionDetector"-Eintrag &uuml;berpr&uuml;ft werden. Der Status aller Instanzen liegt im READING-Bereich.<br>
  4598. Hinweis: Diese Funktion kann ebenfalls f&uuml;r Ger&auml;te ohne zyklische &Uuml;bertragung aktiviert werden. Es obliegt dem Nutzer eine vern&uuml;nftige Zeitspanne festzulegen.
  4599. </li>
  4600. <li><a name="#CUL_HMautoReadReg">autoReadReg</a><br>
  4601. '0' autoReadReg wird ignorert.<br>
  4602. '1' wird automatisch in getConfig ausgef&uuml;hrt f&uuml;r das Device nach jedem reboot von FHEM. <br>
  4603. '2' wie '1' plus nach Power on.<br>
  4604. '3' wie '2' plus update wenn auf das Device geschreiben wird.<br>
  4605. '4' wie '3' plus fordert Status an, wenn es nicht korrekt erscheint<br>
  4606. '5' pr&uuml;ft Registerlisten und peerlisten. Wenn diese nicht komplett sind wird ein update angefordert<br>
  4607. '8_stateOnly' es wird nur der Status gepr&uuml;ft, updates f&uuml;r Register werden nicht gemacht.<br>
  4608. Ausf&uuml;hrung wird verz&ouml;gert ausgef&uuml;hrt. Wenn das IO eine gewisse Last erreicht hat wird
  4609. das Kommando weiter verz&ouml;gert um eine &Uuml;berlast zu vermeiden.<br>
  4610. Empfohlene Zusammenh&auml;nge bei Nutzung:<br>
  4611. <ul>
  4612. Benutze das Attribut f&uuml;r das Device, nicht f&uuml;r jeden einzelnen Kanal<br>
  4613. Das Setzen auf Level 5 wird f&uuml;r alle Devices und Typen empfohlen, auch wakeup Devices.<br>
  4614. </ul>
  4615. </li>
  4616. <li><a name="CUL_HMburstAccess">burstAccess</a><br>
  4617. kann f&uuml;r eine Ger&auml;teinstanz gesetzt werden falls das Model bedingte Bursts erlaubt.
  4618. Das Attribut deaktiviert den Burstbetrieb (0_off) was die Nachrichtenmenge des HMLAN reduziert
  4619. und damit die Wahrscheinlichkeit einer &Uuml;berlast von HMLAN verringert.<br>
  4620. Einschalten (1_auto) erlaubt k&uuml;rzere Reaktionszeiten eines Ger&auml;ts. Der Nutzer muss nicht warten
  4621. bis das Ger&auml;t wach ist. <br>
  4622. Zu beacht ist dass das Register "burstRx" im Ger&auml;t ebenfalls gesetzt werden muss.
  4623. </li>
  4624. <li><a name="CUL_HMexpert">expert</a><br>
  4625. Dieses Attribut steuert die Sichtbarkeit der Register Readngs. Damit wird die Darstellung der Ger&auml;teparameter kontrolliert.<br>
  4626. Es handdelt sich um einen binaer kodierten Wert mit folgenden Empfehlungen:<br>
  4627. <ul>
  4628. 0_defReg : default Register<br>
  4629. 1_allReg : all Register<br>
  4630. 2_defReg+raw : default Register und raw Register<br>
  4631. 3_allReg+raw : alle Register und raw reading<br>
  4632. 4_off : no Register<br>
  4633. 8_templ+default: templates und default Register<br>
  4634. 12_templOnly : nur templates<br>
  4635. 251_anything : alles verfĂźgbare<br>
  4636. </ul>
  4637. Wird 'expert' auf ein Ger&auml;t angewendet so gilt dies auch f&uuml;r alle verkn&uuml;pften Kan&auml;le.
  4638. Kann &uuml;bergangen werden indem das Attribut ' expert' auch f&uuml;r den Ger&auml;tekanal gesetzt wird.<br>
  4639. Das Attribut "showInternalValues" bei den globalen Werten muss ebenfalls &uuml;berpr&uuml;ft werden.
  4640. "expert" macht sich diese Implementierung zu Nutze.
  4641. Gleichwohl setzt "showInternalValues" - bei Definition - 'expert' au�er Kraft .
  4642. </li>
  4643. <li><a name="#CUL_HMreadOnly">readOnly</a><br>
  4644. beschränkt kommandos auf Lesen und Beobachten.
  4645. </li>
  4646. <li><a name="#CUL_HMIOgrp">IOgrp</a><br>
  4647. kann an Devices vergeben werden udn zeigt auf eine virtuelle ccu. Danach wird die ccu
  4648. beim Senden das passende IO fßr das Device auswählen. Es ist notwendig, dass die virtuelle ccu
  4649. definiert und alle erlaubten IOs eingetragen sind. Beim Senden wird die ccu prĂźfen
  4650. welches IO operational ist und welches den besten rssi-faktor fĂźr das Device hat.<br>
  4651. Optional kann ein bevorzugtes IO definiert werden. In diesem Fall wird es, wenn operational,
  4652. genutzt - unabhängig von den rssi Werten.<br>
  4653. wenn kein prefIO verfßgbar ist und none erkannt wird wird das IO aus IODev gewählt<br>
  4654. Beispiel:<br>
  4655. <ul><code>
  4656. attr myDevice1 IOgrp vccu<br>
  4657. attr myDevice2 IOgrp vccu:prefIO1,prefIO2,prefIO3<br>
  4658. attr myDevice2 IOgrp vccu:prefIO1,prefIO2,none<br>
  4659. </code></ul>
  4660. </li>
  4661. <li><a name="#CUL_HMlevelRange">levelRange</a><br>
  4662. nur f&uuml;r Dimmer! Der Dimmbereich wird eingeschr&auml;nkt.
  4663. Es ist gedacht um z.B. LED Lichter unterst&uuml;tzen welche mit 10% beginnen und bei 40% bereits das Maximum haben.
  4664. levelrange normalisiert den Bereich entsprechend. D.h. set 100 wird physikalisch den Dimmer auf 40%,
  4665. 1% auf 10% setzen. 0% schaltet physikalisch aus.<br>
  4666. Beeinflusst werdne Kommndos on, up, down, toggle und pct. <b>Nicht</b> beeinflusst werden Kommandos
  4667. die den Wert physikalisch setzen.<br>
  4668. Zu beachten:<br>
  4669. dimmer level von Peers gesetzt wird nicht beeinflusst. Dies wird durch Register konfiguriert.<br>
  4670. Readings level k&ouml;nnte negative werden oder &uuml;ber 100%. Das kommt daher, dass physikalisch der Bereich 0-100%
  4671. ist aber auf den logischen bereicht normiert wird.<br>
  4672. Sind virtuelle Dimmer Kan&auml;le verf&uuml;gbar muss das Attribut f&uuml;r jeden Kanal gesetzt werden<br>
  4673. Beispiel:<br>
  4674. <ul><code>
  4675. attr myChannel levelRange 0,40<br>
  4676. attr myChannel levelRange 10,80<br>
  4677. </code></ul>
  4678. </li>
  4679. <li><a name="#CUL_HMtempListTmpl">tempListTmpl</a><br>
  4680. Setzt das Default f&uuml;r Heizungskontroller. Ist es nicht gesetzt wird der default filename genutzt und der name
  4681. der entity als templatename. Z.B. ./tempList.cfg:RT_Clima<br>
  4682. Um das template nicht zu nutzen kann man es auf '0'setzen.<br>
  4683. Format ist &lt;file&gt;:&lt;templatename&gt;.
  4684. </li>
  4685. <li><a name="CUL_HMmodel">model</a>,
  4686. <a name="subType">subType</a><br>
  4687. Diese Attribute werden bei erfolgreichem Pairing automatisch gesetzt.
  4688. Sie sollten nicht per Hand gesetzt werden und sind notwendig um Ger&auml;tenachrichten
  4689. korrekt interpretieren oder senden zu k&ouml;nnen.</li>
  4690. <li><a name="param">param</a><br>
  4691. 'param' definiert modelspezifische Verhalten oder Funktionen. Siehe "models" f&uuml;r Details.</li>
  4692. <li><a name="CUL_HMmsgRepeat">msgRepeat</a><br>
  4693. Definiert die Nummer an Wiederholungen falls ein Ger&auml;t nicht rechtzeitig antwortet. <br>
  4694. F&uuml;r Ger&auml;te die nur den "Config"-Modus unterst&uuml;tzen sind Wiederholungen nicht erlaubt. <br>
  4695. Bei Ger&auml;te mit wakeup-Modus wartet das Ger&auml;t bis zum n&auml;chsten Aufwachen. Eine l&auml;ngere Verz&ouml;gerung
  4696. sollte in diesem Fall angedacht werden. <br>
  4697. Wiederholen von Bursts hat Auswirkungen auf die HMLAN &Uuml;bertragungskapazit&auml;t.</li>
  4698. <li><a name="rawToReadable">rawToReadable</a><br>
  4699. Wird verwendet um Rohdaten von KFM100 in ein lesbares Fomrat zu bringen, basierend auf
  4700. den gemessenen Werten. Z.B. langsames F&uuml;llen eines Tanks, w&auml;hrend die Werte mit <a href="#inform">inform</a>
  4701. angezeigt werden. Man sieht:
  4702. <ul>
  4703. 10 (bei 0%)<br>
  4704. 50 (bei 20%)<br>
  4705. 79 (bei 40%)<br>
  4706. 270 (bei 100%)<br>
  4707. </ul>
  4708. Anwenden dieser Werte: "attr KFM100 rawToReadable 10:0 50:20 79:40 270:100".
  4709. FHEM f&uuml;r damit eine lineare Interpolation der Werte in den gegebenen Grenzen aus.
  4710. </li>
  4711. <li><a name="unit">unit</a><br>
  4712. setzt die gemeldete Einheit des KFM100 falls 'rawToReadable' aktiviert ist. Z.B.<br>
  4713. attr KFM100 unit Liter
  4714. </li>
  4715. <li><a name="autoReadReg">autoReadReg</a><br>
  4716. '0' autoReadReg wird ignoriert.<br>
  4717. '1' f&uuml;hrt ein "getConfig" f&uuml;r ein Ger&auml;t automatisch nach jedem Neustart von FHEM aus. <br>
  4718. '2' verh&auml;lt sich wie '1',zus&auml;tzlich nach jedem power_on.<br>
  4719. '3' wie '2', zus&auml;tzlich bei jedem Schreiben auf das Ger&auml;t<br>
  4720. '4' wie '3' und versucht au�erdem den Status abzufragen falls dieser nicht verf&uuml;gbar erscheint.<br>
  4721. '5' kontrolliert 'reglist' und 'peerlist'. Falls das Auslesen unvollst&auml;ndig ist wird 'getConfig' ausgef&uuml;hrt<br>
  4722. '8_stateOnly' aktualisiert nur Statusinformationen aber keine Konfigurationen wie Daten- oder
  4723. Peerregister.<br>
  4724. Ausf&uuml;hrung wird verz&ouml;gert um eine &Uuml;berlastung beim Start zu vermeiden . Daher werden Aktualisierung und Anzeige
  4725. von Werten abh&auml;ngig von der Gr&ouml;�e der Datenbank verz&ouml;gert geschehen.<br>
  4726. Empfehlungen und Einschr&auml;nkungen bei Benutzung:<br>
  4727. <ul>
  4728. Dieses Attribut nur auf ein Ger&auml;t oder Kanal 01 anwenden. Nicht auf einzelne Kan&auml;le eines mehrkanaligen
  4729. Ger&auml;ts anwenden um eine doppelte Ausf&uuml;hrung zu vermeiden.<br>
  4730. Verwendung bei Ger&auml;ten die nur auf den 'config'-Modus reagieren wird nicht empfohlen da die Ausf&uuml;hrung
  4731. erst starten wird wenn der Nutzer die Konfiguration vornimmt<br>
  4732. Anwenden auf Ger&auml;te mit 'wakeup'-Modus ist n&uuml;tzlich. Zu bedenken ist aber dass die Ausf&uuml;hrung
  4733. bis zm "aufwachen" verz&ouml;gert wird.<br>
  4734. </ul>
  4735. </li>
  4736. </ul> <br>
  4737. <a name="CUL_HMparams"><b>verf&uuml;gbare Parameter f&uuml;r "param"</b></a>
  4738. <ul>
  4739. <li><B>HM-Sen-RD-O</B><br>
  4740. offAtPon: nur Heizkan&auml;le: erzwingt Ausschalten der Heizung nach einem powerOn<br>
  4741. onAtRain: nur Heizkan&auml;le: erzwingt Einschalten der Heizung bei Status 'rain' und Ausschalten bei Status 'dry'<br>
  4742. </li>
  4743. <li><B>virtuals</B><br>
  4744. noOnOff: eine virtuelle Instanz wird den Status nicht &auml;ndern wenn ein Trigger empfangen wird. Ist dieser Paramter
  4745. nicht gegeben so toggled die Instanz ihren Status mit jedem trigger zwischen An und Aus<br>
  4746. msgReduce: falls gesetzt und der Kanal wird f&uuml;r <a ref="CUL_HMvalvePos"></a> genutzt wird jede Nachricht
  4747. au�er die der Ventilstellung verworfen um die Nachrichtenmenge zu reduzieren<br>
  4748. </li>
  4749. <li><B>blind</B><br>
  4750. <B>levelInverse</B> w&auml;hrend HM 100% als offen und 0% als geschlossen behandelt ist dies evtl. nicht
  4751. intuitiv f&uuml;r den Nutzer. Defaut f&uuml;r 100% ist offen und wird als 'on'angezeigt.
  4752. Das Setzen des Parameters invertiert die Anzeige - 0% wird also offen und 100% ist geschlossen.<br>
  4753. ACHTUNG: Die Anpassung betrifft nur Readings und Kommandos. <B>Register sind nicht betroffen.</B><br>
  4754. <B>ponRestoreSmart</B> bei powerup des Device fährt das Rollo in die vermeintlich nächstgelegene Endposition und anschliessend in die ursprßngliche Position.<br>
  4755. <B>ponRestoreForce</B> bei powerup des Device fährt das Rollo auf Level 0, dann auf Level 100 und anschliessend in die ursprßngliche Position.<br>
  4756. </li>
  4757. <li><B>sensRain</B><br>
  4758. <B>siren</B><br>
  4759. <B>powerMeter</B><br>
  4760. <B>switch</B><br>
  4761. <B>dimmer</B><br>
  4762. <B>rgb</B><br>
  4763. <B>showTimed</B> wenn timedOn running ist wird -till an state gehängt. Dies fßhrt dazu, dass ggf. on-till im State steht was das stateIcon handling verbessert.<br>
  4764. </li>
  4765. </ul><br>
  4766. <a name="CUL_HMevents"><b>Erzeugte Events:</b></a>
  4767. <ul>
  4768. <li><B>Allgemein</B><br>
  4769. recentStateType:[ack|info] # kann nicht verwendet werden um Nachrichten zu triggern<br>
  4770. <ul>
  4771. <li>ack zeigt an das eine Statusinformation aus einer Best&auml;tigung abgeleitet wurde</li>
  4772. <li>info zeigt eine automatische Nachricht eines Ger&auml;ts an</li>
  4773. <li><a name="CUL_HMsabotageAttackId"><b>sabotageAttackId</b></a><br>
  4774. Alarmiert bei Konfiguration des Ger&auml;ts durch unbekannte Quelle<br></li>
  4775. <li><a name="CUL_HMsabotageAttack"><b>sabotageAttack</b></a><br>
  4776. Alarmiert bei Konfiguration des Ger&auml;ts welche nicht durch das System ausgel&ouml;st wurde<br></li>
  4777. <li><a name="CUL_HMtrigDst"><b>trigDst_&lt;name&gt;: noConfig</b></a><br>
  4778. Ein Sensor triggert ein Device welches nicht in seiner Peerliste steht. Die Peerliste ist nicht akuell<br></li>
  4779. </ul>
  4780. </li>
  4781. <li><B>HM-CC-TC,ROTO_ZEL-STG-RM-FWT</B><br>
  4782. T: $t H: $h<br>
  4783. battery:[low|ok]<br>
  4784. measured-temp $t<br>
  4785. humidity $h<br>
  4786. actuator $vp %<br>
  4787. desired-temp $dTemp<br>
  4788. desired-temp-manu $dTemp #Temperatur falls im manuellen Modus<br>
  4789. desired-temp-cent $dTemp #Temperatur falls im Zentrale-Modus<br>
  4790. windowopen-temp-%d %.1f (sensor:%s)<br>
  4791. tempList$wd hh:mm $t hh:mm $t ...<br>
  4792. displayMode temp-[hum|only]<br>
  4793. displayTemp [setpoint|actual]<br>
  4794. displayTempUnit [fahrenheit|celsius]<br>
  4795. controlMode [auto|manual|central|party]<br>
  4796. tempValveMode [Auto|Closed|Open|unknown]<br>
  4797. param-change offset=$o1, value=$v1<br>
  4798. ValveErrorPosition_for_$dname $vep %<br>
  4799. ValveOffset_for_$dname : $of %<br>
  4800. ValveErrorPosition $vep %<br>
  4801. ValveOffset $of %<br>
  4802. time-request<br>
  4803. trig_&lt;src&gt; &lt;value&gt; #channel was triggered by &lt;src&gt; channel.
  4804. Dieses Event h&auml;ngt vom kompletten Auslesen der Kanalkonfiguration ab, anderenfalls k&ouml;nnen Daten
  4805. unvollst&auml;ndig oder fehlerhaft sein.<br>
  4806. trigLast &lt;channel&gt; #letzter empfangener Trigger<br>
  4807. </li>
  4808. <li><B>HM-CC-RT-DN and HM-CC-RT-DN-BoM</B><br>
  4809. state:T: $actTemp desired: $setTemp valve: $vp %<br>
  4810. motorErr: [ok|ValveTight|adjustRangeTooLarge|adjustRangeTooSmall|communicationERR|unknown|lowBat|ValveErrorPosition]
  4811. measured-temp $actTemp<br>
  4812. desired-temp $setTemp<br>
  4813. ValvePosition $vp %<br>
  4814. mode [auto|manual|party|boost]<br>
  4815. battery [low|ok]<br>
  4816. batteryLevel $bat V<br>
  4817. measured-temp $actTemp<br>
  4818. desired-temp $setTemp<br>
  4819. actuator $vp %<br>
  4820. time-request<br>
  4821. trig_&lt;src&gt; &lt;value&gt; #Kanal wurde durch &lt;src&gt; Kanal ausgel&ouml;�t.
  4822. </li>
  4823. <li><B>HM-CC-VD,ROTO_ZEL-STG-RM-FSA</B><br>
  4824. $vp %<br>
  4825. battery:[critical|low|ok]<br>
  4826. motorErr:[ok|blocked|loose|adjusting range too small|opening|closing|stop]<br>
  4827. ValvePosition:$vp %<br>
  4828. ValveErrorPosition:$vep %<br>
  4829. ValveOffset:$of %<br>
  4830. ValveDesired:$vp % # durch Temperatursteuerung gesetzt <br>
  4831. operState:[errorTargetNotMet|onTarget|adjusting|changed] # operative Bedingung<br>
  4832. operStateErrCnt:$cnt # Anzahl fehlgeschlagener Einstellungen<br>
  4833. </li>
  4834. <li><B>HM-CC-SCD</B><br>
  4835. [normal|added|addedStrong]<br>
  4836. battery [low|ok]<br>
  4837. </li>
  4838. <li><B>HM-SEC-SFA-SM</B><br>
  4839. powerError [on|off]<br>
  4840. sabotageError [on|off]<br>
  4841. battery: [critical|low|ok]<br>
  4842. </li>
  4843. <li><B>HM-LC-BL1-PB-FM</B><br>
  4844. motor: [opening|closing]<br>
  4845. </li>
  4846. <li><B>HM-LC-SW1-BA-PCB</B><br>
  4847. battery: [low|ok]<br>
  4848. </li>
  4849. <li><B>HM-OU-LED16</B><br>
  4850. color $value # in Hex - nur f&uuml;r Ger&auml;t<br>
  4851. $value # in Hex - nur f&uuml;r Ger&auml;t<br>
  4852. color [off|red|green|orange] # f&uuml;r Kanal <br>
  4853. [off|red|green|orange] # f&uuml;r Kanal <br>
  4854. </li>
  4855. <li><B>HM-OU-CFM-PL</B><br>
  4856. [on|off|$val]<br>
  4857. </li>
  4858. <li><B>HM-Sen-Wa-Od</B><br>
  4859. $level%<br>
  4860. level $level%<br>
  4861. </li>
  4862. <li><B>KFM100</B><br>
  4863. $v<br>
  4864. $cv,$unit<br>
  4865. rawValue:$v<br>
  4866. Sequence:$seq<br>
  4867. content:$cv,$unit<br>
  4868. </li>
  4869. <li><B>KS550/HM-WDS100-C6-O</B><br>
  4870. T: $t H: $h W: $w R: $r IR: $ir WD: $wd WDR: $wdr S: $s B: $b<br>
  4871. temperature $t<br>
  4872. humidity $h<br>
  4873. windSpeed $w<br>
  4874. windDirection $wd<br>
  4875. windDirRange $wdr<br>
  4876. rain $r<br>
  4877. isRaining $ir<br>
  4878. sunshine $s<br>
  4879. brightness $b<br>
  4880. unknown $p<br>
  4881. </li>
  4882. <li><B>HM-Sen-RD-O</B><br>
  4883. lastRain: timestamp # kein Trigger wird erzeugt. Anfang des vorherigen Regen-Zeitstempels
  4884. des Messwerts ist Ende des Regens. <br>
  4885. </li>
  4886. <li><B>THSensor und HM-WDC7000</B><br>
  4887. T: $t H: $h AP: $ap<br>
  4888. temperature $t<br>
  4889. humidity $h<br>
  4890. airpress $ap #nur HM-WDC7000<br>
  4891. </li>
  4892. <li><B>dimmer</B><br>
  4893. overload [on|off]<br>
  4894. overheat [on|off]<br>
  4895. reduced [on|off]<br>
  4896. dim: [up|down|stop]<br>
  4897. </li>
  4898. <li><B>motionDetector</B><br>
  4899. brightness:$b<br>
  4900. alive<br>
  4901. motion on (to $dest)<br>
  4902. motionCount $cnt _next:$nextTr"-"[0x0|0x1|0x2|0x3|15|30|60|120|240|0x9|0xa|0xb|0xc|0xd|0xe|0xf]<br>
  4903. cover [closed|open] # nicht bei HM-Sec-MDIR<br>
  4904. sabotageError [on|off] # nur bei HM-Sec-MDIR<br>
  4905. battery [low|ok]<br>
  4906. devState_raw.$d1 $d2<br>
  4907. </li>
  4908. <li><B>remote/pushButton/outputUnit</B><br>
  4909. <ul> (to $dest) wird hinzugef&uuml;gt wenn der Knopf gepeert ist und keinen Broadcast sendet<br>
  4910. Freigabe ist nur f&uuml;r verkn&uuml;pfte Kan&auml;le verf&uuml;gbar</ul>
  4911. Btn$x onShort<br>
  4912. Btn$x offShort<br>
  4913. Btn$x onLong $counter<br>
  4914. Btn$x offLong $counter<br>
  4915. Btn$x onLongRelease $counter<br>
  4916. Btn$x offLongRelease $counter<br>
  4917. Btn$x onShort (to $dest)<br>
  4918. Btn$x offShort (to $dest)<br>
  4919. Btn$x onLong $counter (to $dest)<br>
  4920. Btn$x offLong $counter (to $dest)<br>
  4921. Btn$x onLongRelease $counter (to $dest)<br>
  4922. Btn$x offLongRelease $counter (to $dest)<br>
  4923. </li>
  4924. <li><B>remote/pushButton</B><br>
  4925. battery [low|ok]<br>
  4926. trigger [Long|Short]_$no trigger event from channel<br>
  4927. </li>
  4928. <li><B>swi</B><br>
  4929. Btn$x Short<br>
  4930. Btn$x Short (to $dest)<br>
  4931. battery: [low|ok]<br>
  4932. </li>
  4933. <li><B>switch/dimmer/blindActuator</B><br>
  4934. $val<br>
  4935. powerOn [on|off|$val]<br>
  4936. [unknown|motor|dim] [up|down|stop]:$val<br>
  4937. timedOn [running|off]<br> # "An" ist tempor&auml;r - z.B. mit dem 'on-for-timer' gestartet
  4938. </li>
  4939. <li><B>sensRain</B><br>
  4940. $val<br>
  4941. powerOn <br>
  4942. level &lt;val&ge;<br>
  4943. timedOn [running|off]<br> # "An" ist tempor&auml;r - z.B. mit dem 'on-for-timer' gestartet
  4944. trigger [Long|Short]_$no trigger event from channel<br>
  4945. </li>
  4946. <li><B>smokeDetector</B><br>
  4947. [off|smoke-Alarm|alive] # f&uuml;r Gruppen-Master<br>
  4948. [off|smoke-forward|smoke-alarm] # f&uuml;r Gruppenmitglieder<br>
  4949. [normal|added|addedStrong] #HM-CC-SCD<br>
  4950. SDteam [add|remove]_$dname<br>
  4951. battery [low|ok]<br>
  4952. smoke_detect [none|&lt;src&gt;]<br>
  4953. teamCall:from $src<br>
  4954. </li>
  4955. <li><B>threeStateSensor</B><br>
  4956. [open|tilted|closed]<br>
  4957. [wet|damp|dry] #nur HM-SEC-WDS<br>
  4958. cover [open|closed] #HM-SEC-WDS und HM-Sec-RHS<br>
  4959. alive yes<br>
  4960. battery [low|ok]<br>
  4961. contact [open|tilted|closed]<br>
  4962. contact [wet|damp|dry] #nur HM-SEC-WDS<br>
  4963. sabotageError [on|off] #nur HM-SEC-SC<br>
  4964. </li>
  4965. <li><B>winMatic</B><br>
  4966. [locked|$value]<br>
  4967. motorErr [ok|TurnError|TiltError]<br>
  4968. direction [no|up|down|undefined]<br>
  4969. charge [trickleCharge|charge|dischange|unknown]<br>
  4970. airing [inactiv|$air]<br>
  4971. course [tilt|close]<br>
  4972. airing [inactiv|$value]<br>
  4973. contact tesed<br>
  4974. </li>
  4975. <li><B>keyMatic</B><br>
  4976. unknown:40<br>
  4977. battery [low|ok]<br>
  4978. uncertain [yes|no]<br>
  4979. error [unknown|motor aborted|clutch failure|none']<br>
  4980. lock [unlocked|locked]<br>
  4981. [unlocked|locked|uncertain]<br>
  4982. </li>
  4983. </ul>
  4984. <a name="CUL_HMinternals"><b>Internals</b></a>
  4985. <ul>
  4986. <li><B>aesCommToDev</B><br>
  4987. Information Ăźber Erfolg und Fehler der AES Kommunikation zwischen IO-device und HM-Device<br>
  4988. </li>
  4989. </ul><br>
  4990. <br>
  4991. </ul>
  4992. <p><a name="CUL_HOERMANN"></a>
  4993. <h3>CUL_HOERMANN</h3>
  4994. <ul>
  4995. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  4996. hier: <a href='commandref.html#CUL_HOERMANN'>CUL_HOERMANN</a><br/>
  4997. </ul>
  4998. <a name="CUL_IR"></a>
  4999. <h3>CUL_IR</h3>
  5000. <ul>
  5001. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  5002. hier: <a href='commandref.html#CUL_IR'>CUL_IR</a><br/>
  5003. </ul>
  5004. <a name="CUL_MAX"></a>
  5005. <h3>CUL_MAX</h3>
  5006. <div class='langLinks'>[<a href='commandref.html#CUL_MAX'>EN</a> DE]</div>
  5007. <ul>
  5008. Das Modul CUL_MAX wertet von einem CUL empfangene MAX! Botschaften aus.
  5009. Es wird mit Hilfe von autocreate automatisch generiert, es muss nur sichergestellt
  5010. werden, dass der richtige rfmode gesetzt wird, z.B. <code>attr CUL0 rfmode MAX</code>.<br>
  5011. <br>
  5012. <a name="CUL_MAXdefine"></a>
  5013. <b>Define</b>
  5014. <ul>
  5015. <code>define &lt;name&gt; CUL_MAX &lt;addr&gt;</code>
  5016. <br><br>
  5017. Definiert ein CUL_MAX Ger&auml;t des Typs &lt;type&gt; und der Adresse &lt;addr&gt.
  5018. Die Adresse darf nicht schon von einem anderen MAX! Ger&auml;t verwendet werden.
  5019. </ul>
  5020. <br>
  5021. <a name="CUL_MAXset"></a>
  5022. <b>Set</b>
  5023. <ul>
  5024. <li>pairmode<br>
  5025. Versetzt den CUL_MAX f&uuml;r 60 Sekunden in den Pairing Modus, w&auml;hrend dieser Zeit
  5026. kann das Ger&auml;t mit anderen Ger&auml;ten gepaart werden (Heizk&ouml;rperthermostate,
  5027. Eco-Taster, etc.). Auch das zu paarende Ger&auml;t muss manuell in den Pairing Modus
  5028. versetzt werden (z.B. beim Heizk&ouml;rperthermostat durch Dr&uuml;cken der "Boost"
  5029. Taste f&uuml;r 3 Sekunden).</li>
  5030. <li>fakeSC &lt;device&gt; &lt;open&gt;<br>
  5031. Sendet eine fingierte <i>ShutterContactState</i> Meldung &lt;open&gt;, dies muss 0 bzw. 1 f&uuml;r
  5032. "Fenster geschlossen" bzw. "Fenster offen" sein. Wenn das &lt;device&gt; eine Gruppen-ID
  5033. ungleich Null hat, beeinflusst diese fingierte <i>ShutterContactState</i> Meldung alle Ger&auml;te
  5034. mit dieser Gruppen-ID. Es muss sichergestellt werden, dass vorher alle Zielger&auml;te
  5035. mit <i>fakeShutterContact</i> verbunden werden.</li>
  5036. <li>fakeWT &lt;device&gt; &lt;desiredTemperature&gt; &lt;measuredTemperature&gt;<br>
  5037. Sendet eine fingierte <i>WallThermostatControl</i> Meldung (beide Parameter k&ouml;nnen
  5038. eine Nachkommastelle haben, f&uuml;r <i>desiredTemperature</i> darf die Nachkommastelle nur 0 bzw. 5 sein).
  5039. Wenn das &lt;device&gt; eine Gruppen-ID ungleich Null hat, beeinflusst diese fingierte
  5040. <i>WallThermostatControl</i> Meldung alle Ger&auml;te mit dieser Gruppen-ID.
  5041. Es muss sichergestellt werden, dass vorher alle Zielger&auml;te
  5042. mit <i>fakeWallThermostat</i> verbunden werden.</li>
  5043. </ul>
  5044. <br>
  5045. <a name="CUL_MAXget"></a>
  5046. <b>Get</b> <ul>N/A</ul><br>
  5047. <a name="CUL_MAXattr"></a>
  5048. <b>Attributes</b>
  5049. <ul>
  5050. <li><a href="#ignore">ignore</a></li><br>
  5051. <li><a href="#do_not_notify">do_not_notify</a></li><br>
  5052. <li><a href="#showtime">showtime</a></li><br>
  5053. <li><a href="#loglevel">loglevel</a></li><br>
  5054. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  5055. </ul>
  5056. <br>
  5057. <a name="CUL_MAXevents"></a>
  5058. <b>Events</b>
  5059. <ul>N/A</ul>
  5060. <br>
  5061. </ul>
  5062. <p><a name="CUL_REDIRECT"></a>
  5063. <h3>CUL_REDIRECT</h3>
  5064. <div class='langLinks'>[<a href='commandref.html#CUL_REDIRECT'>EN</a> DE]</div>
  5065. <ul>
  5066. Das CUL_REDIRECT Modul empfängt weitere Protokolle vom CUL<br>
  5067. und leitet diese an die entsprechenden Module weiter.
  5068. <br>
  5069. <a name="CUL_REDIRECT_Parse"></a>
  5070. </ul>
  5071. <p><a name="CUL_RFR"></a>
  5072. <h3>CUL_RFR</h3>
  5073. <ul>
  5074. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  5075. hier: <a href='commandref.html#CUL_RFR'>CUL_RFR</a><br/>
  5076. </ul>
  5077. <a name="CUL_TCM97001"></a>
  5078. <h3>CUL_TCM97001</h3>
  5079. <div class='langLinks'>[<a href='commandref.html#CUL_TCM97001'>EN</a> DE]</div>
  5080. <ul>
  5081. Das CUL_TCM97001 Module verarbeitet von einem IO Gerät (CUL, CUN, SIGNALDuino, etc.) empfangene Nachrichten von Temperatur \ Wind \ Rain - Sensoren.<br>
  5082. <br>
  5083. <b>UnterstĂźtze Modelle:</b>
  5084. <ul>
  5085. <li>ABS700</li>
  5086. <li>AURIOL</li>
  5087. <li>Eurochron</li>
  5088. <li>GT_WT_02</li>
  5089. <li>KW9010</li>
  5090. <li>NC_WS</li>
  5091. <li>TCM21....</li>
  5092. <li>TCM97...</li>
  5093. <li>PFR-130 (rain)</li>
  5094. <li>Prologue</li>
  5095. <li>Rubicson</li>
  5096. <li>W155 (wind/rain)</li>
  5097. <li>W174 (rain)</li>
  5098. </ul>
  5099. <br>
  5100. Neu empfangene Sensoren werden in der fhem Kategory CUL_TCM97001 per autocreate angelegt.
  5101. <br><br>
  5102. <a name="CUL_TCM97001_Define"></a>
  5103. <b>Define</b>
  5104. <ul>Die empfangenen Sensoren werden automatisch angelegt.<br>
  5105. Die ID der angelgten Sensoren sind die ersten zwei HEX Werte des empfangenen Paketes in dezimaler Schreibweise.<br>
  5106. </ul>
  5107. <br>
  5108. <a name="CUL_TCM97001 Events"></a>
  5109. <b>Generierte Events:</b>
  5110. <ul>
  5111. <li>temperature: Die aktuelle Temperatur</li>
  5112. <li>humidity: Die aktuelle Luftfeutigkeit (falls verfĂźgbar)</li>
  5113. <li>battery: Der Batteriestatus: low oder ok (falls verfĂźgbar)</li>
  5114. <li>channel: Kanalnummer (falls verfĂźgbar)</li>
  5115. <li>trend: Der Temperaturtrend (falls verfĂźgbar)</li>
  5116. <li>israining: Aussage Regen zwichen zwei Messungen (falls verfĂźgbar)</li>
  5117. <li>rain: Der Regenwert, eine fortlaufende Zahl bis zum Batteriewechsel (falls verfĂźgbar)</li>
  5118. </ul>
  5119. <br>
  5120. <b>Attribute</b>
  5121. <ul>
  5122. <li><a href="#IODev">IODev</a>
  5123. Spezifiziert das physische Ger&auml;t, das die Ausstrahlung der Befehle f&uuml;r das
  5124. "logische" Ger&auml;t ausf&uuml;hrt. Ein Beispiel f&uuml;r ein physisches Ger&auml;t ist ein CUL.<br>
  5125. </li>
  5126. <li><a href="#do_not_notify">do_not_notify</a></li>
  5127. <li><a href="#ignore">ignore</a></li>
  5128. <li><a href="#model">model</a> (ABS700, AURIOL, GT_WT_02, KW9010, NC_WS, PFR-130, Prologue, Rubicson, TCM21...., TCM97�, Unknown, W174)</li>
  5129. <li>max-deviation-temp: (Default:1, erlaubte Werte: 1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50)<br>
  5130. Maximal erlaubte Abweichung der gemessenen Temperatur zum vorhergehenden Wert in Kelvin.<br></li>
  5131. <li><a href="#showtime">showtime</a></li>
  5132. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  5133. </ul>
  5134. </ul>
  5135. <p><a name="CUL_TX"></a>
  5136. <h3>CUL_TX</h3>
  5137. <ul>
  5138. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  5139. hier: <a href='commandref.html#CUL_TX'>CUL_TX</a><br/>
  5140. </ul>
  5141. <a name="CUL_WS"></a>
  5142. <h3>CUL_WS</h3>
  5143. <div class='langLinks'>[<a href='commandref.html#CUL_WS'>EN</a> DE]</div>
  5144. <ul>
  5145. Das CUL_WS-Modul entschl&uuml;sselt die Nachrichten des Types S300, die von
  5146. dem CUL empfangen wurden.
  5147. <br><br>
  5148. <a name="CUL_WSdefine"></a>
  5149. <b>Define</b>
  5150. <ul>
  5151. <code>define &lt;name&gt; CUL_WS &lt;code&gt; [corr1...corr4]</code> <br>
  5152. <br>
  5153. &lt;code&gt; ist der Code, der an dem S300 eingestellt werden muss.
  5154. G&uuml;ltige Werte sind 1 bis 8
  5155. <br>
  5156. corr1..corr4 entsprechen vier m&ouml;glichen Korrekturwerten, die den
  5157. jeweiligen Werten hinzuaddiert werden, um die Ger&auml;te zu kalibrieren.
  5158. Hinweis: Bei den Werten f&uuml;r Regenmengen werden die Korrekturwerte
  5159. nicht hinzuaddiert, sondern als Faktor mit dem Regenwert multipliziert.
  5160. </ul>
  5161. <br>
  5162. <a name="CUL_WSset"></a>
  5163. <b>Set</b> <ul>N/A</ul><br>
  5164. <a name="CUL_WSget"></a>
  5165. <b>Get</b> <ul>N/A</ul><br>
  5166. <a name="CUL_WSattr"></a>
  5167. <b>Attribute</b>
  5168. <ul>
  5169. <li><a href="#IODev">IODev (!)</a>
  5170. Achtung: mit diesem Attribut ist es m&ouml;glich mehrere 8-er Sets an
  5171. S300-er in FHEM zu definieren. Wichtige Voraussetzung allerdings ist,
  5172. dass nur das spezifizierte CUL das S300 empfangen kann, z.Bsp. durch
  5173. Frequenztrennung (433MHz vs. 868MHz).
  5174. </li>
  5175. <li><a href="#do_not_notify">do_not_notify</a></li>
  5176. <li><a href="#eventMap">eventMap</a></li>
  5177. <li><a href="#ignore">ignore</a></li>
  5178. <li><a href="#model">model</a> (S300,KS300,ASH2200)</li>
  5179. <li><a href="#showtime">showtime</a></li>
  5180. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  5181. </ul>
  5182. <br>
  5183. </ul>
  5184. <p><a name="CULflash"></a>
  5185. <h3>CULflash</h3>
  5186. <div class='langLinks'>[<a href='commandref.html#CULflash'>EN</a> DE]</div>
  5187. <ul>
  5188. <code>CULflash [fhem-device|none]; &lt;TYPE&gt;</code> <br>
  5189. <br>
  5190. L&auml;dt die spezifizierte Firmware von fhem.de und programmiert das
  5191. angeschlossene Ger&auml;t.
  5192. Z.Zt unterst&uuml;tzt wird das CUL und folgende Versionen:
  5193. CUL_V2, CUL_V2_HM, CUL_V3, CUL_V3_ZWAVE, CUL_V4.<br>
  5194. Falls als fhem-device none angegeben wurde, dann muss sich das
  5195. angeschlossene Ger&auml;t bereits in flash-mode befinden.<br>
  5196. <b>Achtung:</b>F&uuml;r CUL flashen muss dfu-programmer installiert und im
  5197. Pfad auffindbar sein, das ist der Fall bei dem Fritz!BOX 7390 Paket von
  5198. fhem.de<br>
  5199. Beispiele:
  5200. <ul>
  5201. <code>CULflash CUL CUL_V3<br>
  5202. CULflash none CUL_V3</code>
  5203. </ul>
  5204. Achtung: die Meldung "dfu-programmer: failed to release interface 0." ist
  5205. auf der FB7390 "normal".
  5206. </ul>
  5207. <p><a name="Calendar"></a>
  5208. <h3>Calendar</h3>
  5209. <div class='langLinks'>[<a href='commandref.html#Calendar'>EN</a> DE]</div>
  5210. <ul>
  5211. <br>
  5212. <b>Diese deutsche &Uuml;bersetzung ist nicht mehr aktuell
  5213. (siehe bitte <a href="https://forum.fhem.de/index.php/topic,86148.msg786290.html#msg786290">Forumsbeitrag</a>).
  5214. Bitte hilf bei FHEM mit und aktualisiere diese &Uuml;bersetzung. Die englischsprachige
  5215. Dokumentation ist immer aktuell.</b><p>
  5216. <a name="Calendardefine"></a>
  5217. <b>Define</b>
  5218. <ul>
  5219. <code>define &lt;name&gt; Calendar ical url &lt;URL&gt; [&lt;interval&gt;]</code><br>
  5220. <code>define &lt;name&gt; Calendar ical file &lt;FILENAME&gt; [&lt;interval&gt;]</code><br>
  5221. <br>
  5222. Definiert ein Kalender-Device.<br><br>
  5223. Ein Kalender-Device ermittelt (Serien-) Termine aus einem Quell-Kalender. Dieser kann eine URL oder eine Datei sein.
  5224. Die Datei muss im iCal-Format vorliegen.<br><br>
  5225. Beginnt die URL mit <code>https://</code>, muss das Perl-Modul IO::Socket::SSL installiert sein
  5226. (use <code>cpan -i IO::Socket::SSL</code>).<br><br>
  5227. Hinweis f&uuml;r Nutzer des Google-Kalenders: Du kann direkt die private iCal-URL des Google Kalender nutzen.
  5228. Sollte Deine Google-Kalender-URL mit <code>https://</code> beginnen und das Perl-Modul IO::Socket::SSL ist nicht auf Deinem Systeme installiert,
  5229. kannst Du in der URL <code>https://</code> durch <code>http://</code> ersetzen, falls keine automatische Umleitung auf die <code>https://</code> URL erfolgt.
  5230. Solltest Du unsicher sein, ob dies der Fall ist, &uuml;berpr&uuml;fe es bitte zuerst mit Deinem Browser.<br><br>
  5231. Hinweis f&uuml;r Nutzer des Nextcloud-Kalenders: Du kannst eine URL der folgenden Form benutzen:
  5232. <code>https://admin:admin@demo.nextcloud.com/wid0ohgh/remote.php/dav/calendars/admin/personal/?export</code>.<p>
  5233. Der optionale Parameter <code>interval</code> bestimmt die Zeit in Sekunden zwischen den Updates. Default-Wert ist 3600 (1 Stunde).<br><br>
  5234. Beispiele:
  5235. <pre>
  5236. define MeinKalender Calendar ical url https://www.google.com&shy;/calendar/ical/john.doe%40example.com&shy;/private-foo4711/basic.ics
  5237. define DeinKalender Calendar ical url http://www.google.com&shy;/calendar/ical/jane.doe%40example.com&shy;/private-bar0815/basic.ics 86400
  5238. define IrgendeinKalender Calendar ical file /home/johndoe/calendar.ics
  5239. </pre>
  5240. </ul>
  5241. <br>
  5242. <a name="Calendarset"></a>
  5243. <b>Set </b><br><br>
  5244. <ul>
  5245. <code>set &lt;name&gt; update</code><br>
  5246. Erzwingt das Einlesen des Kalenders von der definierten URL. Das n&auml;chste automatische Einlesen erfolgt in
  5247. <code>interval</code> Sekunden sp&auml;ter.<br><br>
  5248. <code>set &lt;name&gt; reload</code><br>
  5249. Dasselbe wie <code>update</code>, jedoch werden zuerst alle Termine entfernt.<br><br>
  5250. </ul>
  5251. <br>
  5252. <a name="Calendarget"></a>
  5253. <b>Get</b><br><br>
  5254. <ul>
  5255. <code>get &lt;name&gt; update</code><br>
  5256. Entspricht <code>set &lt;name&gt; update</code><br><br>
  5257. <code>get &lt;name&gt; reload</code><br>
  5258. Entspricht <code>set &lt;name&gt; reload</code><br><br>
  5259. <code>get &lt;name&gt; &lt;format&gt; &lt;filter&gt; [&lt;max&gt;]</code><br>
  5260. Die Termine f&uuml;r den Kalender &lt;name&gt; werden Zeile f&uuml;r Zeile ausgegeben.<br><br>
  5261. Folgende Selektoren/Filter stehen zur Verf&uuml;gung:<br><br>
  5262. Der Selektor &lt;format&gt legt den zur&uuml;ckgegeben Inhalt fest:<br><br>
  5263. <table>
  5264. <tr><th>&lt;format&gt;</th><th>Inhalt</th></tr>
  5265. <tr><td>uid</td><td>UID des Termins</td></tr>
  5266. <tr><td>text</td><td>Benutzer-/Monitorfreundliche Textausgabe.</td></tr>
  5267. <tr><td>summary</td><td>&Uuml;bersicht (Betreff, Titel)</td></tr>
  5268. <tr><td>location</td><td>Ort</td></tr>
  5269. <tr><td>categories</td><td>Kategorien</td></tr>
  5270. <tr><td>alarm</td><td>Alarmzeit</td></tr>
  5271. <tr><td>start</td><td>Startzeit</td></tr>
  5272. <tr><td>end</td><td>Endezeit</td></tr>
  5273. <tr><td>full</td><td>Vollst&auml;ndiger Status</td></tr>
  5274. <tr><td>debug</td><td>wie &lt;full&gt; mit zus&auml;tzlichen Informationen zur Fehlersuche</td></tr>
  5275. </table><br>
  5276. Der Filter &lt;filter&gt; grenzt die Termine ein:<br><br>
  5277. <table>
  5278. <tr><th>&lt;filter&gt;</th><th>Inhalt</th></tr>
  5279. <tr><td>mode=&lt;regex&gt;</td><td>alle Termine, deren Modus durch den regul&auml;ren Ausdruck &lt;regex&gt beschrieben werden.</td></tr>
  5280. <tr><td>&lt;mode&gt;</td><td>alle Termine mit Modus &lt;mode&gt.</td></tr>
  5281. <tr><td>uid=&lt;regex&gt;</td><td>Alle Termine, deren UIDs durch den regul&auml;ren Ausdruck &lt;regex&gt beschrieben werden.</td></tr>
  5282. <tr><td>&lt;uid&gt;</td><td>Alle Termine mit der UID &lt;uid&gt;</td></tr>
  5283. <tr><td>&lt;reading&gt;</td><td>Alle Termine die im Reading &lt;reading&gt; aufgelistet werden (modeAlarm, modeAlarmed, modeStart, etc.)
  5284. - dieser Filter ist abgek&uuml;ndigt und steht in einer zuk&uuml;nftigen Version nicht mehr zur Verf&uuml;gung, bitte mode=&lt;regex&gt; benutzen.</td></tr>
  5285. <tr><td>all</td><td>Alle Termine (vergangene, aktuelle und zuk&uuml;nftige)</td></tr>
  5286. <tr><td>next</td><td>Alle Termine, die noch nicht beendet sind. Bei Serienterminen der erste Termin. Benutzer-/Monitorfreundliche Textausgabe</td></tr>
  5287. </table><br>
  5288. Die Filter <code>mode=&lt;regex&gt;</code> und <code>uid=&lt;regex&gt;</code> sollten den Filtern
  5289. <code>&lt;mode&gt;</code> und <code>&lt;uid&gt;</code> vorgezogen werden.<br><br>
  5290. Der optionale Parameter <code>&lt;max&gt;</code> schr&auml;nkt die Anzahl der zur&uuml;ckgegebenen Zeilen ein.<br><br>
  5291. Bitte beachte die Attribute <code>hideOlderThan</code> und
  5292. <code>hideLaterThan</code> f&uuml;r die Seletion von Terminen in einem bestimmten Zeitfenster.
  5293. Bitte ber&uuml;cksichtige, dass das globale &pm;400 Tageslimit gilt .<br><br>
  5294. Beispiele:<br>
  5295. <code>get MyCalendar text next</code><br>
  5296. <code>get MyCalendar summary uid:435kjhk435googlecom 1</code><br>
  5297. <code>get MyCalendar summary 435kjhk435googlecom 1</code><br>
  5298. <code>get MyCalendar full all</code><br>
  5299. <code>get MyCalendar text mode=alarm|start</code><br>
  5300. <code>get MyCalendar text uid=.*6286.*</code><br>
  5301. <br>
  5302. <code>get &lt;name&gt; find &lt;regexp&gt;</code><br>
  5303. Gibt Zeile f&uuml;r Zeile die UIDs aller Termine deren Zusammenfassungen durch den regul&auml;ren Ausdruck &lt;regex&gt beschrieben werden.
  5304. &lt;regexp&gt;.<br><br>
  5305. <code>get &lt;name&gt; vcalendar</code><br>
  5306. Gibt den Kalender ICal-Format, so wie er von der Quelle gelesen wurde, zur&uuml;ck.<br><br>
  5307. <code>get &lt;name&gt; vevents</code><br>
  5308. Gibt eine Liste aller VEVENT-Eintr&auml;ge des Kalenders &lt;name&gt;, angereichert um Ausgaben f&uuml;r die Fehlersuche, zur&uuml;ck.
  5309. Es werden nur Eigenschaften angezeigt, die w&auml;hrend der Programmausf&uuml;hrung beibehalten wurden. Es wird sowohl die Liste
  5310. der Termine, die von jedem VEVENT-Eintrag erzeugt wurden, als auch die Liste der ausgelassenen Termine angezeigt.
  5311. </ul>
  5312. <br>
  5313. <a name="Calendarattr"></a>
  5314. <b>Attributes</b>
  5315. <br><br>
  5316. <ul>
  5317. <li><code>update sync|async|none</code><br>
  5318. Wenn dieses Attribut nicht gesetzt ist oder wenn es auf <code>sync</code> gesetzt ist,
  5319. findet die Verarbeitung des Kalenders im Vordergrund statt. Gro&szlig;e Kalender werden FHEM
  5320. auf langsamen Systemen blockieren. Wenn das Attribut auf <code>async</code> gesetzt ist,
  5321. findet die Verarbeitung im Hintergrund statt, und FHEM wird w&auml;hrend der Verarbeitung
  5322. nicht blockieren. Wenn dieses Attribut auf <code>none</code> gesetzt ist, wird der
  5323. Kalender &uuml;berhaupt nicht aktualisiert.
  5324. </li><p>
  5325. <li><code>removevcalendar 0|1</code><br>
  5326. Wenn dieses Attribut auf 1 gesetzt ist, wird der vCalendar nach der Verarbeitung verworfen,
  5327. gleichzeitig reduziert sich der Speicherverbrauch des Moduls.
  5328. Ein Abruf &uuml;ber <code>get &lt;name&gt; vcalendar</code> ist dann nicht mehr m&ouml;glich.
  5329. </li><p>
  5330. <li><code>hideOlderThan &lt;timespec&gt;</code><br>
  5331. <code>hideLaterThan &lt;timespec&gt;</code><br><p>
  5332. Dieses Attribut grenzt die Liste der durch <code>get &lt;name&gt; full|debug|text|summary|location|alarm|start|end ...</code> gezeigten Termine ein.
  5333. Die Zeit wird relativ zur aktuellen Zeit t angegeben.<br>
  5334. Wenn &lt;hideOlderThan&gt; gesetzt ist, werden Termine, die vor &lt;t-hideOlderThan&gt; enden, ingnoriert.<br>
  5335. Wenn &lt;hideLaterThan&gt; gesetzt ist, werden Termine, die nach &lt;t+hideLaterThan&gt; anfangen, ignoriert.<p>
  5336. Bitte beachten, dass eine Aktion, die durch einen Wechsel in den Modus "end" ausgel&ouml;st wird, nicht auf den Termin
  5337. zugreifen kann, wenn hideOlderThan 0 ist, weil der Termin dann schon versteckt ist. Besser hideOlderThan auf 10 setzen.<p>
  5338. <code>&lt;timespec&gt;</code> muss einem der folgenden Formate entsprechen:<br>
  5339. <table>
  5340. <tr><th>Format</th><th>Beschreibung</th><th>Beispiel</th></tr>
  5341. <tr><td>SSS</td><td>Sekunden</td><td>3600</td></tr>
  5342. <tr><td>SSSs</td><td>Sekunden</td><td>3600s</td></tr>
  5343. <tr><td>HH:MM</td><td>Stunden:Minuten</td><td>02:30</td></tr>
  5344. <tr><td>HH:MM:SS</td><td>Stunden:Minuten:Sekunden</td><td>00:01:30</td></tr>
  5345. <tr><td>D:HH:MM:SS</td><td>Tage:Stunden:Minuten:Sekunden</td><td>122:10:00:00</td></tr>
  5346. <tr><td>DDDd</td><td>Tage</td><td>100d</td></tr>
  5347. </table></li>
  5348. <p>
  5349. <li><code>cutoffOlderThan &lt;timespec&gt;</code><br>
  5350. Dieses Attribut schneidet alle Termine weg, die eine Zeitspanne cutoffOlderThan
  5351. vor der letzten Aktualisierung des Kalenders endeten. Der Zweck dieses Attributs ist es Speicher zu
  5352. sparen. Auf solche Termine kann gar nicht mehr aus FHEM heraus zugegriffen
  5353. werden. Serientermine ohne Ende (UNTIL) und
  5354. Termine ohne Endezeitpunkt (DTEND) werden nicht weggeschnitten.
  5355. </li><p>
  5356. <li><code>onCreateEvent &lt;perl-code&gt;</code><br>
  5357. Dieses Attribut f&uuml;hrt ein Perlprogramm &lt;perl-code&gt; f&uuml;r jeden erzeugten Termin aus.
  5358. Weitere Informationen unter <a href="#CalendarPlugIns">Plug-ins</a> im Text.
  5359. </li><p>
  5360. <li><code>SSLVerify</code><br>
  5361. Dieses Attribut setzt die Art der &Uuml;berpr&uuml;fung des Zertifikats des Partners
  5362. bei mit SSL gesicherten Verbindungen. Entweder auf 0 setzen f&uuml;r
  5363. SSL_VERIFY_NONE (keine &Uuml;berpr&uuml;fung des Zertifikats) oder auf 1 f&uuml;r
  5364. SSL_VERIFY_PEER (&Uuml;berpr&uuml;fung des Zertifikats). Die &Uuml;berpr&uuml;fung auszuschalten
  5365. ist n&uuml;tzlich f&uuml;r lokale Kalenderinstallationen(e.g. OwnCloud, NextCloud)
  5366. ohne g&uuml;tiges SSL-Zertifikat.
  5367. </li><p>
  5368. <li><code>ignoreCancelled</code><br>
  5369. Wenn dieses Attribut auf 1 gesetzt ist, werden Termine im Status "CANCELLED" ignoriert.
  5370. Dieses Attribut auf 1 setzen, falls Termine in einer
  5371. Serie zur&uuml;ckgegeben werden, die gel&ouml;scht sind.
  5372. </li><p>
  5373. <li><code>quirks &lt;values&gt;</code><br>
  5374. Parameter f&uuml;r spezielle Situationen. <code>&lt;values&gt;</code> ist
  5375. eine mit Kommas getrennte Liste der folgenden Schl&uuml;sselw&ouml;rter:
  5376. <ul>
  5377. <li><code>ignoreDtStamp</code>: wenn gesetzt, dann zeigt
  5378. ein ver&auml;ndertes DTSTAMP Attribut eines Termins nicht an, dass
  5379. der Termin ver&auml;ndert wurde.</li>
  5380. </ul>
  5381. </li><p>
  5382. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  5383. </ul>
  5384. <br>
  5385. <b>Beschreibung</b>
  5386. <ul><br>
  5387. Ein Kalender ist eine Menge von Terminen. Ein Termin hat eine Zusammenfassung (normalerweise der Titel, welcher im Quell-Kalender angezeigt wird), eine Startzeit, eine Endzeit und keine, eine oder mehrere Alarmzeiten. Die Termine werden
  5388. aus dem Quellkalender ermittelt, welcher &uuml;ber die URL angegeben wird. Sollten mehrere Alarmzeiten f&uuml;r einen Termin existieren, wird nur der fr&uuml;heste Alarmzeitpunkt beibehalten. Wiederkehrende Kalendereintr&auml;ge werden in einem gewissen Umfang unterst&uuml;tzt:
  5389. FREQ INTERVAL UNTIL COUNT werden ausgewertet, BYMONTHDAY BYMONTH WKST
  5390. werden erkannt aber nicht ausgewertet. BYDAY wird f&uuml;r w&ouml;chentliche und monatliche Termine
  5391. korrekt behandelt. Das Modul wird es sehr wahrscheinlich falsch machen, wenn Du wiederkehrende Termine mit unerkannten oder nicht ausgewerteten Schl&uuml;sselw&ouml;rtern hast.<p>
  5392. Termine werden erzeugt, wenn FHEM gestartet wird oder der betreffende Eintrag im Quell-Kalender ver&auml;ndert
  5393. wurde oder der Kalender mit <code>get &lt;name&gt; reload</code> neu geladen wird. Es werden nur Termine
  5394. innerhalb &pm;400 Tage um die Erzeugungs des Termins herum erzeugt. Ziehe in Betracht, den Kalender von Zeit zu Zeit
  5395. neu zu laden, um zu vermeiden, dass die k&uuml;nftigen Termine ausgehen. Du kann so etwas wie <code>define reloadCalendar at +*240:00:00 set MyCalendar reload</code> daf&uuml;r verwenden.<p>
  5396. Manche dummen Kalender benutzen LAST-MODIFIED nicht. Das kann dazu f&uuml;hren, dass Ver&auml;nderungen im
  5397. Quell-Kalender unbemerkt bleiben. Lade den Kalender neu, wenn Du dieses Problem hast.<p>
  5398. Ein Termin wird durch seine UID identifiziert. Die UID wird vom Quellkalender bezogen. Um das Leben leichter zu machen, werden alle nicht-alphanumerischen Zeichen automatisch aus der UID entfernt.<p>
  5399. Ein Termin kann sich in einem der folgenden Modi befinden:
  5400. <table>
  5401. <tr><td>upcoming</td><td>Weder die Alarmzeit noch die Startzeit des Kalendereintrags ist erreicht.</td></tr>
  5402. <tr><td>alarm</td><td>Die Alarmzeit ist &uuml;berschritten, aber die Startzeit des Kalender-Ereignisses ist noch nicht erreicht.</td></tr>
  5403. <tr><td>start</td><td>Die Startzeit ist &uuml;berschritten, aber die Ende-Zeit des Kalender-Ereignisses ist noch nicht erreicht.</td></tr>
  5404. <tr><td>end</td><td>Die Ende-Zeit des Kalender-Ereignisses wurde &uuml;berschritten.</td></tr>
  5405. </table><br>
  5406. Ein Kalender-Ereignis wechselt umgehend von einem Modus zum Anderen, wenn die Zeit f&uuml;r eine &Auml;nderung erreicht wurde. Dies wird dadurch erreicht, dass auf die fr&uuml;heste zuk&uuml;nftige Zeit aller Alarme, Start- oder Endezeiten aller Kalender-Ereignisse gewartet wird.
  5407. <p>
  5408. Ein Kalender-Device hat verschiedene Readings. Mit Ausnahme von <code>calname</code> stellt jedes Reading eine Semikolon-getrennte Liste von UIDs von Kalender-Ereignisse dar, welche bestimmte Zust&auml;nde haben:
  5409. <table>
  5410. <tr><td>calname</td><td>Name des Kalenders</td></tr>
  5411. <tr><td>modeAlarm</td><td>Ereignisse im Alarm-Modus</td></tr>
  5412. <tr><td>modeAlarmOrStart</td><td>Ereignisse im Alarm- oder Startmodus</td></tr>
  5413. <tr><td>modeAlarmed</td><td>Ereignisse, welche gerade in den Alarmmodus gewechselt haben</td></tr>
  5414. <tr><td>modeChanged</td><td>Ereignisse, welche gerade in irgendeiner Form ihren Modus gewechselt haben</td></tr>
  5415. <tr><td>modeEnd</td><td>Ereignisse im Endemodus</td></tr>
  5416. <tr><td>modeEnded</td><td>Ereignisse, welche gerade vom Start- in den Endemodus gewechselt haben</td></tr>
  5417. <tr><td>modeStart</td><td>Ereignisse im Startmodus</td></tr>
  5418. <tr><td>modeStarted</td><td>Ereignisse, welche gerade in den Startmodus gewechselt haben</td></tr>
  5419. <tr><td>modeUpcoming</td><td>Ereignisse im zuk&uuml;nftigen Modus</td></tr>
  5420. </table>
  5421. <p>
  5422. F&uuml;r Serientermine werden mehrere Termine mit der selben UID erzeugt. In diesem Fall
  5423. wird die UID nur im interessantesten gelesenen Modus-Reading angezeigt.
  5424. Der interessanteste Modus ist der erste zutreffende Modus aus der Liste der Modi start, alarm, upcoming, end.<p>
  5425. Die UID eines Serientermins wird nicht angezeigt, solange sich der Termin im Modus: modeEnd oder modeEnded befindet
  5426. und die Serie nicht beendet ist. Die UID befindet sich in einem der anderen mode... Readings.
  5427. Hieraus ergibts sich, das FHEM-Events nicht auf einem mode... Reading basieren sollten.
  5428. Weiter unten im Text gibt es hierzu eine Empfehlung.<p>
  5429. </ul>
  5430. <b>Events</b>
  5431. <ul><br>
  5432. Wenn der Kalendar neu geladen oder aktualisiert oder eine Alarm-, Start- oder Endezeit
  5433. erreicht wurde, wird ein FHEM-Event erzeugt:<p>
  5434. <code>triggered</code><br><br>
  5435. Man kann sich darauf verlassen, dass alle Readings des Kalenders in einem konsistenten und aktuellen
  5436. Zustand befinden, wenn dieses Event empfangen wird.<p>
  5437. Wenn ein Termin ge&auml;ndert wurde, werden zwei FHEM-Events erzeugt:<p>
  5438. <code>changed: UID &lt;mode&gt;</code><br>
  5439. <code>&lt;mode&gt;: UID</code><br><br>
  5440. &lt;mode&gt; ist der aktuelle Modus des Termins nach der &auml;nderung. Bitte beachten: Im FHEM-Event befindet sich ein Doppelpunkt gefolgt von einem Leerzeichen.<p>
  5441. FHEM-Events sollten nur auf den vorgenannten Events basieren und nicht auf FHEM-Events, die durch &auml;ndern eines mode... Readings ausgel&ouml;st werden.
  5442. <p>
  5443. </ul>
  5444. <a name="CalendarPlugIns"></a>
  5445. <b>Plug-ins</b>
  5446. <ul>
  5447. <br>
  5448. Experimentell, bitte mit Vorsicht nutzen.<p>
  5449. Ein Plug-In ist ein kleines Perl-Programm, dass Termine nebenher ver&auml;ndern kann.
  5450. Das Perl-Programm arbeitet mit der Hash-Referenz <code>$e</code>.<br>
  5451. Die wichtigsten Elemente sind:
  5452. <table>
  5453. <tr><th>code</th><th>description</th></tr>
  5454. <tr><td>$e->{start}</td><td>Startzeit des Termins, in Sekunden seit 1.1.1970</td></tr>
  5455. <tr><td>$e->{end}</td><td>Endezeit des Termins, in Sekunden seit 1.1.1970</td></tr>
  5456. <tr><td>$e->{alarm}</td><td>Alarmzeit des Termins, in Sekunden seit 1.1.1970</td></tr>
  5457. <tr><td>$e->{summary}</td><td>die Zusammenfassung (Betreff, Titel) des Termins</td></tr>
  5458. <tr><td>$e->{location}</td><td>Der Ort des Termins</td></tr>
  5459. </table><br>
  5460. Um f&uuml;r alle Termine mit dem Text "Tonne" in der Zusammenfassung die Alarmzeit zu erg&auml;nzen / zu &auml;ndern,
  5461. kann folgendes Plug-In benutzt werden:<br><br>
  5462. <code>attr MyCalendar onCreateEvent { $e->{alarm}= $e->{start}-86400 if($e->{summary} =~ /Tonne/);; }</code><br>
  5463. <br>Das doppelte Semikolon maskiert das Semikolon. <a href="#perl">Perl specials</a> k&ouml;nnen nicht genutzt werden.<br>
  5464. </ul>
  5465. <br><br>
  5466. <b>Anwendungsbeispiele</b>
  5467. <ul><br>
  5468. <i>Alle Termine inkl. Details anzeigen</i><br><br>
  5469. <ul>
  5470. <code>
  5471. get MyCalendar full all<br>
  5472. 2767324dsfretfvds7dsfn3e4&shy;dsa234r234sdfds6bh874&shy;googlecom known alarm 31.05.2012 17:00:00 07.06.2012 16:30:00-07.06.2012 18:00:00 Erna for coffee<br>
  5473. 992hydf4y44awer5466lhfdsr&shy;gl7tin6b6mckf8glmhui4&shy;googlecom known upcoming 08.06.2012 00:00:00-09.06.2012 00:00:00 Vacation
  5474. </code><br><br>
  5475. </ul>
  5476. <i>Zeige Termine in Deinem Bilderrahmen</i><br><br>
  5477. <ul>
  5478. F&uuml;ge eine Zeile in die <a href="#RSSlayout">layout description</a> ein, um Termine im Alarm- oder Startmodus anzuzeigen:<br><br>
  5479. <code>text 20 60 { fhem("get MyCalendar text next 2") }</code><br><br>
  5480. Dies kann dann z.B. so aussehen:<br><br>
  5481. <code>
  5482. 07.06.12 16:30 Erna zum Kaffee<br>
  5483. 08.06.12 00:00 Urlaub
  5484. </code><br><br>
  5485. </ul>
  5486. <i>Schalte das Licht ein, wenn Erna kommt</i><br><br>
  5487. <ul>
  5488. Finde zuerst die UID des Termins:<br><br>
  5489. <code>
  5490. get MyCalendar find .*Erna.*<br>
  5491. 2767324dsfretfvds7dsfn3e4&shy;dsa234r234sdfds6bh874&shy;googlecom
  5492. </code><br><br>
  5493. Definiere dann ein notify: (Der Punkt nach dem zweiten Doppelpunkt steht f&uuml;r ein Leerzeichen)<br><br>
  5494. <code>
  5495. define ErnaComes notify MyCalendar:start:.2767324dsfretfvds7dsfn3e4&shy;dsa234r234sdfds6bh874&shy;googlecom.* set MyLight on
  5496. </code><br><br>
  5497. Du kannst auch ein Logging aufsetzen:<br><br>
  5498. <code>
  5499. define LogErna notify MyCalendar:alarm:.2767324dsfretfvds7dsfn3e4&shy;dsa234r234sdfds6bh874&shy;googlecom.* { Log3 $NAME, 1, "ALARM name=$NAME event=$EVENT part1=$EVTPART0 part2=$EVTPART1" }
  5500. </code><br><br>
  5501. </ul>
  5502. <i>Schalte die Aktoren an und aus</i><br><br>
  5503. <ul>
  5504. Stell Dir einen Kalender vor, dessen Zusammenfassungen (Betreff, Titel) die Namen von Devices in Deiner fhem-Installation sind.
  5505. Du willst nun die entsprechenden Devices an- und ausschalten, wenn das Kalender-Ereignis beginnt bzw. endet.<br><br>
  5506. <code>
  5507. define SwitchActorOn notify MyCalendar:start:.* {}<br>
  5508. </code>
  5509. Dann auf DEF klicken und im DEF-Editor folgendes zwischen die beiden geschweiften Klammern {} eingeben:
  5510. <code>
  5511. my $reading="$EVTPART0";
  5512. my $uid= "$EVTPART1";
  5513. my $actor= fhem("get MyCalendar summary $uid");
  5514. if(defined $actor) {
  5515. fhem("set $actor on")
  5516. }
  5517. <br><br>
  5518. define SwitchActorOff notify MyCalendar:end:.* {}<br>
  5519. </code>
  5520. Dann auf DEF klicken und im DEF-Editor folgendes zwischen die beiden geschweiften Klammern {} eingeben:
  5521. <code>
  5522. my $reading="$EVTPART0";
  5523. my $uid= "$EVTPART1";
  5524. my $actor= fhem("get MyCalendar summary $uid");
  5525. if(defined $actor) {
  5526. fhem("set $actor off")
  5527. }
  5528. </code><br><br>
  5529. Auch hier kann ein Logging aufgesetzt werden:<br><br>
  5530. <code>
  5531. define LogActors notify MyCalendar:(start|end).* {}<br>
  5532. </code>
  5533. Dann auf DEF klicken und im DEF-Editor folgendes zwischen die beiden geschweiften Klammern {} eingeben:
  5534. <code>
  5535. my $reading= "$EVTPART0";
  5536. my $uid= "$EVTPART1";
  5537. my $actor= fhem("get MyCalendar summary $uid");
  5538. Log 3 $NAME, 1, "Actor: $actor, Reading $reading";
  5539. </code><br><br>
  5540. </ul>
  5541. </ul>
  5542. <b>Eingebettetes HTML</b>
  5543. <ul><br>
  5544. Das Modul stellt eine zus&auml;tzliche Funktion <code>CalendarAsHtml(&lt;name&gt;,&lt;options&gt;)</code> bereit.
  5545. Diese gibt den HTML-Kode f&uuml;r eine Liste von Terminen zur&uuml;ck. <code>&lt;name&gt;</code> ist der Name des
  5546. Kalendar-Device und <code>&lt;options&gt;</code> ist das, was Du hinter <code>get &lt;name&gt; text ...</code>
  5547. schreiben w&uuml;rdest.
  5548. <br><br>
  5549. Beispiel: <code>define MyCalendarWeblink weblink htmlCode { CalendarAsHtml("MyCalendar","next 3") }</code>
  5550. <br><br>
  5551. Dies ist eine rudiment&auml;re Funktion, die vielleicht in k&uuml;nftigen Versionen erweitert wird.
  5552. <p>
  5553. </ul>
  5554. </ul>
  5555. <p><a name="ComfoAir"></a>
  5556. <h3>ComfoAir</h3>
  5557. <ul>
  5558. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  5559. hier: <a href='commandref.html#ComfoAir'>ComfoAir</a><br/>
  5560. </ul>
  5561. <a name="CustomReadings"></a>
  5562. <h3>CustomReadings</h3>
  5563. <ul>
  5564. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  5565. hier: <a href='commandref.html#CustomReadings'>CustomReadings</a><br/>
  5566. </ul>
  5567. <a name="DBPlan"></a>
  5568. <h3>DBPlan</h3>
  5569. <div class='langLinks'>[<a href='commandref.html#DBPlan'>EN</a> DE]</div>
  5570. <ul>
  5571. Das Modul holt von der Infoseite der DB <https://reiseauskunft.bahn.de/bin/query.exe/dox?S=departure&Z=destination&start=1&rt=1>
  5572. aktuelle Informationen zu einer angegeben Verbindung und legt sie in Fhem readings ab.
  5573. Die Datei mit den IBNR-Codes und Stationen der Deutschen Bahn kann unter http://www.michaeldittrich.de/ibnr abgerufen werden.
  5574. <br><br>
  5575. <b>Prerequisites</b>
  5576. <ul>
  5577. <br>
  5578. <li>
  5579. Dieses Modul verwendet die nicht blockierende HTTP-Funktion HttpUtils_NonblockingGet von FHEM's HttpUtils in der aktuellen Version.<br>
  5580. Falls das Modul noch nicht in Ihrer Fhem-Umgebung vorhanden ist, aktualisieren Sie bitte FHEM über den Update Befehl.<br>
  5581. </li>
  5582. </ul>
  5583. <br>
  5584. Der device status (DevState):
  5585. <ul>
  5586. <li><b>initialized</b></li>
  5587. Das Device ist definiert, aber es wurde keine erfolgreichen Anfragen und Analysen durchgeführt<br>
  5588. Dieser Zustand wird auch beim Wechsel von <inactive> auf <active> und <disabled> auf <enabled> gesetzt<br>
  5589. <li><b>active</b></li>
  5590. Das Device arbeitet<br>
  5591. <li><b>stopped</b></li>
  5592. Der Device Time wurde angehalten. Ein reread ist jedoch möglich<br>
  5593. <li><b>disabled</b></li>
  5594. Das Device wurde deaktiviert.<br>
  5595. </ul>
  5596. <br>
  5597. <a name="DBPlandefine"></a>
  5598. <b>Define</b>
  5599. <ul>
  5600. <br>
  5601. <code>define &lt;name&gt; DBPlan &lt;Refresh interval in seconds [time offset in minutes]&gt;</code>
  5602. <br><br>
  5603. Das Modul holt nach angegebenen "Intervall"-Sekunden über die DB URL die Fahrpläne. Ist time_offset definiert werden
  5604. die Fahrpläne für die aktuelle Zeit plus Offset in Minuten gelesen.<br>
  5605. <br>
  5606. Example:<br>
  5607. <br>
  5608. <ul><code>define DBPlan_Test DBPlan 60</code></ul>
  5609. </ul>
  5610. <br>
  5611. <a name="DBPlanconfiguration"></a>
  5612. <b>Konfiguration von DBPlan</b><br><br>
  5613. <ul>
  5614. Beispiel für eine Fahrplanabfrage:<br><br>
  5615. <ul><code>
  5616. attr DB_Test dbplan_station Köln-Weiden West
  5617. attr DB_Test dbplan_destination Köln HBF
  5618. attr DB_Test room OPNV
  5619. </code></ul>
  5620. </ul>
  5621. <br>
  5622. <a name="DBPlanset"></a>
  5623. <b>Set-Commands</b><br>
  5624. <ul>
  5625. <li><b>interval</b></li>
  5626. setzen einer anderen Intervallzeit für das Holen und Parsen der DB Informationen<br>
  5627. <li><b>timeOffset</b></li>
  5628. Start der Suche: aktuelle Zeit plus time_offset.<br>
  5629. <li><b>reread</b></li>
  5630. Holen und Parsen der DB Informationen. Nur aktiv, wenn kein Status: disabled<br>
  5631. <li><b>stop</b></li>
  5632. Stoppt den Timer. Nur aktiv, wenn Status: active<br>
  5633. <li><b>start</b></li>
  5634. Neustart des Timers. Nur aktiv, wenn Status: stopped<br>
  5635. </ul>
  5636. <br>
  5637. <a name="DBPlanget"></a>
  5638. <b>Get-Commands</b><br>
  5639. <ul>
  5640. <li><b>PlainText</b></li>
  5641. Die ermittelten Informationen werden als "plain Text" ausgegeben<br>
  5642. <li><b>searchStation</b></li>
  5643. suche in der Bahnhofstabelle. Wird kein Suchbegriff eingegen, werden alle Bahnhöfe angezeigt.<br>
  5644. </ul>
  5645. <br>
  5646. <a name="DBPlanattr"></a>
  5647. <b>Attributes</b><br><br>
  5648. <ul>
  5649. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  5650. <br>
  5651. <li><b>dbplan_station</b></li>
  5652. Abfahrtsbahnhof / Haltestelle<br>
  5653. <li><b>dbplan_destination </b></li>
  5654. Ankunftsbahnhof / Haltestelle<br>
  5655. <li><b>dbplan_via_1 </b></li>
  5656. 1. Zwischenhalt in Bahnhof / Haltestelle<br>
  5657. <li><b>dbplan_via_2 </b></li>
  5658. 2. Zwischenhalt in Bahnhof / Haltestelle<br>
  5659. <li><b>dbplan_journey_prod </b></li>
  5660. Verkehrsmittel, wie z.B.: ICE, Bus, Straßenbahn<br>
  5661. <li><b>dbplan_journey_opt </b></li>
  5662. Reiseoptionen wie z.B.: direct connection<br>
  5663. <li><b>dbplan_tariff_class </b></li>
  5664. 1. oder 2. Klasse<br>
  5665. <li><b>dbplan_board_type </b></li>
  5666. Fahrplansuche bzw. Bahnhofsanzeige für Abfahrts- oder Ankunftszeit (depart / arrive).<br>
  5667. <li><b>dbplan_delayed_Journey </b></li>
  5668. Bei off werden nur pünktliche Verbindungen angezeigt.<br>
  5669. <li><b>dbplan_max_Journeys </b></li>
  5670. Anzahl der angezeigten Zugverbindungen in der Bahnhofsansicht.<br>
  5671. <li><b>dbplan_reg_train </b></li>
  5672. die Zugbezeichnung, z.B. S für alles was S- und Straßenbahnen angeht, ICE alle ICE oder ICE mit Zugnummer. Usw.<br>
  5673. <li><b>dbplan_travel_date </b></li>
  5674. Reisedatum in der Angabe: dd.mm.yy<br>
  5675. <li><b>dbplan_travel_time </b></li>
  5676. Abfahtrtszeit in der Angabe: hh.mm<br>
  5677. <li><b>dbplan_addon_options </b></li>
  5678. weitere Optionen, wie sie im API-Dokument der DB beschrieben sind.<br>
  5679. <br>
  5680. <li><b>Steuernde Attribute:</b></li>
  5681. <li><b>dbplan-disable </b></li>
  5682. Device aktivieren / deaktivieren (s. auch FHEM-Doku)<br>
  5683. <li><b>dbplan-reading-deselect </b></li>
  5684. delsektieren von Readings<br>
  5685. <li><b>dbplan-default-char </b></li>
  5686. Hinweis, der angezeigt wird, wenn keine Information für ein reading zur Verfügung steht.<br>
  5687. - "none" ist der Standardhinweis.<br>
  5688. Sofern folgende spezielle Einträge gemacht werden:
  5689. - "delete" nicht genutzte readings werden auch nicht angezeigt.<br>
  5690. - "nochar" das Reading wird mit leerem Inhalt angezeigt.<br>
  5691. <li><b>dbplan-tabel-headers </b></li>
  5692. internes Attribut um die Spaltenbezeichnungen für HTML::TableExtract<br>
  5693. <li><b>dbplan-station-file </b></li>
  5694. Pfad zur Bahnhofstabelle der Deutschen Bahn (evtl. nicht vollständig). Für Für andere Verkehrsunternehmen liegen keine Tabellen vor.<br>
  5695. Diese Tabelle ist als Hilfe für die Suche nach Bahnhöfen anzusehen und hat keine weitere Funktion im Modul.<br>
  5696. <li><b>dbplan-base-type </b></li>
  5697. Anzeige als Bahnhofstabelle (table) oder Verbindungsinformation (plan)<br>
  5698. <br>
  5699. <li><b>HTTPMOD Attribute, siehe entsprechende Doku</b></li>
  5700. <li><b>dbplan-remote-timeout</b></li>
  5701. <li><b>dbplan-remote-noshutdown</b></li>
  5702. <li><b>dbplan-remote-loglevel</b></li>
  5703. <li><b>dbplan-remote-buf</b></li>
  5704. </ul>
  5705. <br>
  5706. <a name="DBPlanReadings"></a>
  5707. <b>Readings</b><br><br>
  5708. <ul>
  5709. <li><a href="#internalReadings">internalReadings</a></li>
  5710. <br>
  5711. <li><b>plan_departure_(1..3) </b></li>
  5712. Abfahrtszeit<br>
  5713. <li><b>plan_arrival_(1..3) </b></li>
  5714. Ankunftszeit<br>
  5715. <li><b>plan_connection_(1..3) </b></li>
  5716. Verbindungstyp<br>
  5717. <li><b>plan_departure_delay_(1..3) </b></li>
  5718. Verspätung in der Abfahrtszeit<br>
  5719. <li><b>plan_arrival_delay_(1..3) </b></li>
  5720. Verspätung in der Ankunftszeit<br>
  5721. <li><b>plan_travel_duration_(1..3) </b></li>
  5722. Reisezeit<br>
  5723. <li><b>plan_travel_change_(1..3) </b></li>
  5724. Anzahl der Umstiege<br>
  5725. <br>
  5726. <li><b>travel_note_(1..3) </b></li>
  5727. Hinweise für die Verbindung<br>
  5728. <li><b>travel_note_link_(1..3) </b></li>
  5729. Link zu den weiteren Verbindungsinformationen<br>
  5730. <li><b>travel_note_text_(1..3) </b></li>
  5731. Verbindungshinweis<br>
  5732. <li><b>travel_note_error_(1..3) </b></li>
  5733. Fehlertext der Detailinformation<br>
  5734. <br>
  5735. <li><b>travel_departure_(1..3) </b></li>
  5736. Informationen über den Abfahtsbahnhof und das Ankunftsgleis<br>
  5737. <li><b>travel_destination_(1..3) </b></li>
  5738. Informationen über den Zielbahnhof und das Ankunftsgleis<br>
  5739. <li><b>travel_price_(1..3) </b></li>
  5740. Fahrpreis<br>
  5741. </ul>
  5742. </ul>
  5743. <p><a name="DFPlayerMini"></a>
  5744. <h3>DFPlayerMini - FN-M16P Embedded MP3 Audio Module</h3>
  5745. <div class='langLinks'>[<a href='commandref.html#DFPlayerMini'>EN</a> DE]</div>
  5746. Dieses Modul integriert den <a href="http://www.flyrontech.com/eproducts/84.html">DFPlayerMini - FN-M16P Embedded MP3 Audio Modul</a> in fhem.
  5747. Siehe auch das <a href="http://www.flyrontech.com/edownload/6.html">Datenblatt</a> des Moduls f&uuml;r technische Details.
  5748. <br>
  5749. Der MP3-Spieler kann direkt mit einer seriellen Schnittstelle verbunden werden oder per Ethernet/WiFi mittels einer Hardware die eine transparente
  5750. serielle &Uuml;bertragung per TCP/IP zur Verf&uuml;gung stellt, z. B. <a href="http://www.letscontrolit.com/wiki/index.php/Ser2Net">ESPEasy Ser2Net</a>.
  5751. <br><br>
  5752. Es ist auch m&ouml;glich ein anderes fhem Device f&uuml;r den Datentransport zu nutzen, z. B. <a href="#MYSENSORS">MYSENSORS</a>.
  5753. <br><br>
  5754. Das Modul unterst&uuml;tzt alle Kommandos des DFPlayers und bietet weitere Funktionen wie
  5755. <ul>
  5756. <li>Integration von <a href="#Text2Speech">Text2Speech</a> um einfach Sprach-MP3-Dateien herunterzuladen</li>
  5757. <li>einfachere Kontrolle dar&uuml;ber welche Dateien abgespielt werden sollen</li>
  5758. <li>Verwaltung aller Dateien die der DFPlayer abspielen kann</li>
  5759. <li>Abspielen mehrerer Dateien hintereinander (playlist)</li>
  5760. <li>Erzeugung und Abspielen von Sprachschnipseln um beliebige Zahlen per Sprache auszugeben</li>
  5761. </ul>
  5762. <br>
  5763. <a name="DFPlayerMinidefine"></a>
  5764. <b>Define</b><br>
  5765. <code>define &lt;name&gt; DFPlayerMini {none | devicename[\@baudrate] | devicename\@directio | hostname:port} </code>
  5766. <br>
  5767. <ul>
  5768. <li>
  5769. Wenn der Player direkt angeschlossen ist wird per &lt;devicename&gt; der Name der seriellen Schnittstelle angegeben
  5770. an die der DFPlayer Mini angeschlossen ist.
  5771. Der Name der seriellen Schnittstelle h&auml;ngt von der Betriebssystemdistribution ab, unter Linux ist
  5772. das cdc_acm kernel Modul verantwortlich, und normalerweise wird ein
  5773. /dev/ttyACM0 oder /dev/ttyUSB0 Device angelegt.
  5774. Man kann auch eine Baudrate angeben in dem dem im Devicenamen nach dem @ Zeichen die Baudrate angegeben wird, z. B.
  5775. /dev/ttyACM0@9600<br><br>Das ist auch die standard Baudrate und sollte normalerweise nicht ge&auml;ndert werden da diese Baudrate beim
  5776. DFPlayer fest eingestellt ist.
  5777. Wenn als Baudrate "directio" angegeben wird (z. B.: /dev/ttyACM0@directio) dann wird das
  5778. perl Modul Device::SerialPort nicht ben&ouml;tigt und fhem &ouml;ffnet das Device
  5779. mit simple file io. Das kann funktionieren wenn das Betriebssystem sinnvolle Voreinstellungen f&uuml;r die Parameter der
  5780. seriellen Schnittstelle verwendet, z. B. einige Linux Distributionen und OSX.<br>
  5781. </li>
  5782. <li>
  5783. Wenn die Verbindung &uuml;ber TCP/IP statt findet spezifiziert &lt;hostname:port&gt; die IP Adresse und den Port des Device das
  5784. die transparente serielle Verbindung zum DFP bereit stellt, e.g. 192.168.2.28:23
  5785. </li>
  5786. <li>
  5787. F&uuml;r andere Arten des Datentransports kann <code>none</code> als Device angegeben werden.
  5788. In diesem Fall sollte das Attribute <code>sendCmd</code> angegeben werden. Antworten vom DFPlayer sollten per <code>set response</code>
  5789. zur&uuml;ck an dieses Module &uuml;bergeben werden.
  5790. </li>
  5791. </ul>
  5792. <br>
  5793. <a name="DFPlayerMiniattr"></a>
  5794. <b>Attribute</b>
  5795. <ul>
  5796. <li>TTSDev<br>
  5797. Der Name eines Text2Speech Devices. Dieses muss bereits vorher mit none als &lt;alsadevice&gt; als Server Device angelegt worden sein. Es sollte ausschlie&szlig;lich
  5798. f&uuml;r dieses Modul zur Verf&uuml;gung stehen und nicht f&uuml;r andere Zwecke verwendet werden.
  5799. </li>
  5800. <li>requestAck<br>
  5801. Der DFPlayer kann f&uuml; jedes Kommando eine Best&auml;tigung senden. Da das zu erh&ouml;hter Kommunikation f&uuml;hrt kann es &uuml;ber dieses
  5802. Attribut abgeschaltet werden. Wenn es eingeschaltet ist wird das n&auml;chste Kommando erst dann zum DFPlayer wenn das vorherige best&auml;tigt wurde.
  5803. Das stellt sicher, dass kein Kommando verloren geht selbst wenn der DFPlayer ausgelastet oder im Schlafzustand ist.
  5804. </li>
  5805. <li>sendCmd<br>
  5806. Ein fhem Kommando das verwendet wird um ein durch diese Modul erzeugtes DFPlayer Kommando an die DFPlayer Hardware zu senden.
  5807. Wenn dieses Attribut gesetzt ist wird kein andere Art der Kommunikation mit dem DFPlayer verwendet.
  5808. Es kann verwendet werden um andere fhem Devices f&uuml;r den Datentransport zu nutzen.<br>
  5809. Um z. B. mittels eines MySensor Devices mit dem Namen mys_dfp zu kommunizieren kann <br>
  5810. <code>
  5811. attr &lt;dfp&gt; sendCmd set mys_dfp value11 $msg
  5812. </code><br>
  5813. verwendet werden. Auf dem MySensors Devices muss eine passende Firmware installiert sein.<br>
  5814. Dieses Modul wird dann ein Kommando an den DFP senden in dem $msg mit dem tats&auml;chlichen Kommando &lt;payload&gt; ersetzt wird und dann das fhem Kommando
  5815. <code>
  5816. set mys_dfp value11 &lt;payload&gt;
  5817. </code>
  5818. <br>
  5819. ausgef&uuml;hrt wird.
  5820. Siehe <code>set response</code> f&uuml;r einen Weg um die Antwort des DFPlayers zur&uuml;ck an dieses Modul zu senden.
  5821. </li>
  5822. <li>uploadPath<br>
  5823. Der DFPlayer spielt Dateien von einer an ihn angeschlossenen SD-Karte oder USB-Stick ab. Die mp3/wav Dateien m&uuml;ssen vom Anwender auf dieses Speichermedium
  5824. kopiert werden.
  5825. Der Player erwartet die Dateien mit speziellen Namen und in spezifischen Verzeichnissen, im Datenblatt stehen die Einzelheiten.
  5826. Das Kopieren der Dateien kann auch von diesem Modul durchgef&uuml;hrt werden. Dazu muss das Speichermedium mit dem Rechner verbunden sein auf dem
  5827. fhem ausgef&uuml;hrt wird. Es muss dazu in dem Pfad gemounted sein der durch diese Attribut angegeben ist.
  5828. <br>
  5829. Siehe auch uploadTTS, uploadTTScache und readFiles Kommandos wo es verwendet wird.
  5830. </li>
  5831. <li>rememberMissingTTS<br>
  5832. Wenn gesetzt erzeugen <code>tts</code> Kommandos ohne eine passende Datei ein spezielles Reading. Siehe <code>set tts</code> und <code>set uploadTTScache</code>.
  5833. </li>
  5834. <li>keepAliveInterval<br>
  5835. Gibt das Intervall in Sekunden zwischen KeepAlive Kommandos an den DFP an. Das kann verwendet werden um automatisch zu pr&uuml;fen, ob der DFP noch
  5836. funktioniert und erreichbar ist.<br>
  5837. Nach drei fehlenden Antwortden wird der Status auf disconnected gesetzt.<br>
  5838. Interval 0 schaltet die Funktion ab, die Voreinstellung ist 60 Sekunden.
  5839. </li>
  5840. </ul>
  5841. <a name="DFPlayerMiniget"></a>
  5842. <br>
  5843. <b>Get</b>
  5844. <br><br>
  5845. Alle Abfrage Kommandos die vom DFP unterst&uuml;tzt werden haben ein zugeh&ouml;riges get Kommando:
  5846. <table>
  5847. <tr><th>get</th><th>DFP cmd byte</th><th>Parameter</th><th>Kommentar</th></tr>
  5848. <tr><td>storage</td><td>0x3F</td><td></td><td></td></tr>
  5849. <tr><td>status</td><td>0x42</td><td></td><td></td></tr>
  5850. <tr><td>volume</td><td>0x43</td><td></td><td></td></tr>
  5851. <tr><td>equalizer</td><td>0x44</td><td></td><td></td></tr>
  5852. <tr><td>noTracksRootUsb</td><td>0x47</td><td></td><td></td></tr>
  5853. <tr><td>noTracksRootSd</td><td>0x48</td><td></td><td></td></tr>
  5854. <tr><td>currentTrackUsb</td><td>0x4B</td><td></td><td></td></tr>
  5855. <tr><td>currentTrackSd</td><td>0x4C</td><td></td><td></td></tr>
  5856. <tr><td>noTracksInFolder</td><td>0x4E</td><td>Verzeichnisnummer</td><td>1-99</td></tr>
  5857. <tr><td>noFolders</td><td>0x4F</td><td></td><td></td></tr>
  5858. </table>
  5859. <a name="DFPlayer Miniset"></a>
  5860. <br>
  5861. <b>Set</b>
  5862. <br><br>
  5863. Alle Kommandos die vom DFP angeboten werden haben ein zugeh&ouml;riges set Kommando:
  5864. <br>
  5865. <table>
  5866. <tr><th>set</th><th>DFP cmd byte</th><th>Parameter</th><th>Kommentar</th></tr>
  5867. <tr><td>next</td><td>0x01</td><td>-</td><td></td></tr>
  5868. <tr><td>prev</td><td>0x02</td><td>-</td><td></td></tr>
  5869. <tr><td>trackNum</td><td>0x03</td><td>Nummer der Datei im Wurzelverzeichnis</td><td>zwischen 1 und 3000 (es wird die Reihenfolge verwendet in der die Dateien angelegt wurden!)</td></tr>
  5870. <tr><td>volumeUp</td><td>0x04</td><td>-</td><td></td></tr>
  5871. <tr><td>volumeDown</td><td>0x05</td><td>-</td><td></td></tr>
  5872. <tr><td>volumeStraight</td><td>0x06</td><td>Lautst&auml;rke</td><td>0-30</td></tr>
  5873. <tr><td>equalizer</td><td>0x07</td><td>Name des Equalizermodus</td><td>Normal, Pop, Rock, Jazz, Classic, Bass</td></tr>
  5874. <tr><td>repeatSingle</td><td>0x08</td><td>-</td><td></td></tr>
  5875. <tr><td>storage</td><td>0x09</td><td>SD oder USB</td><td></td></tr>
  5876. <tr><td>sleep</td><td>0x0A</td><td>-</td><td>vom DFP nicht unterst&uuml;tzt, danach muss er stromlos gemacht werden um wieder zu funktionieren</td></tr>
  5877. <tr><td>wake</td><td>0x0B</td><td>-</td><td>vom DFP nicht unterst&uuml;tzt, aber wahrscheinlich vom FN-M22P</td></tr>
  5878. <tr><td>reset</td><td>0x0C</td><td>-</td><td></td></tr>
  5879. <tr><td>play</td><td>0x0D</td><td>-</td><td>spielt die aktuelle Datei</td></tr>
  5880. <tr><td>play</td><td>0x0F, 0x12, 0x13, 0x14</td><td>Eine durch Leerzeichen getrennte Liste von Dateien die nacheinander abgespielt werden</td><td>Das korrekte DFP Kommando wird automatisch ermittelt.
  5881. Dateien k&ouml;nnen &uuml;ber den Namen ihres Readings, den Readingwert oder Verzeichnisname/Dateinummer angegeben werden. Siehe set readFiles</td></tr>
  5882. <tr><td>pause</td><td>0x0E</td><td>-</td><td></td></tr>
  5883. <tr><td>amplification</td><td>0x10</td><td>Verst&auml;rkungsstufe</td><td>0-31</td></tr>
  5884. <tr><td>repeatRoot</td><td>0x11</td><td>on, off</td><td></td></tr>
  5885. <tr><td>MP3TrackNum</td><td>0x12</td><td>Dateinummer</td><td>1-3000, aus dem Verzeichnis MP3</td></tr>
  5886. <tr><td>intercutAdvert</td><td>0x13</td><td>Dateinummer</td><td>1-3000, aus dem Verzeichnis ADVERT</td></tr>
  5887. <tr><td>folderTrackNum</td><td>0x0F</td><td>Verzeichnisnummer Dateinummer</td><td>Verzeichnis: 1-99, Datei: 1-255</td></tr>
  5888. <tr><td>folderTrackNum3000</td><td>0x14</td><td>Verzeichnisnummer Dateinummer</td><td>Verzeichnis: 1-15, Datei: 1-3000</td></tr>
  5889. <tr><td>stopAdvert</td><td>0x15</td><td>-</td><td></td></tr>
  5890. <tr><td>stop</td><td>0x16</td><td>-</td><td></td></tr>
  5891. <tr><td>repeatFolder</td><td>0x17</td><td>Verzeichnisnummer</td><td>1-99</td></tr>
  5892. <tr><td>shuffle</td><td>0x18</td><td>-</td><td></td></tr>
  5893. <tr><td>repeatCurrentTrack</td><td>0x19</td><td>on, off</td><td></td></tr>
  5894. <tr><td>DAC</td><td>0x1A</td><td>on, off</td><td></td></tr>
  5895. </table>
  5896. <br>
  5897. Alle anderen set Kommandos werden nicht an den DFPlayer geschickt sondern bieten Komfortfunktionen:
  5898. <br>
  5899. <ul>
  5900. <li>
  5901. close
  5902. </li>
  5903. <li>
  5904. raw <br>sendet ein in Hexadezimal kodiertes Kommando direkt und ohne Pr&uuml;fung an den DFP
  5905. </li>
  5906. <li>
  5907. reopen
  5908. </li>
  5909. <li>
  5910. readFiles <br>
  5911. lie&szlig;t alle Dateien auf dem Speichermedium das in <code>uploadPath</code> gemounted ist. Wenn diese Dateien durch den DFP addressiert werden
  5912. k&ouml;nnen (d.h. sie entprechen den Namenskonventionen) so wird ein Reading daf&uuml;r angelegt.
  5913. Der Readingname ist File_&lt;Verzeichnis&gt;/&lt;Dateinummer&gt;.
  5914. Das Verzeichnis kann ., MP3, ADVERT oder 00 bis 99 sein.
  5915. Der Readingwert ist der Dateiname ohne die Dateinummer und das Suffix.<br>
  5916. Beispiel:<br>
  5917. F&uuml;r die Datei MP3/0003SongTitle.mp3 wird das Reading File_MP3/0003 mit dem Wert SongTitle angelegt.
  5918. <br>
  5919. Das <code>set &lt;dfp&gt; play</code> Kommando kann diese Readings verwenden, d.h. es ist m&ouml;glich entweder <code>set &lt;dfp&gt; play File_MP3/0003</code>,
  5920. <code>set &lt;dfp&gt; play MP3/3</code> oder <code>set &lt;dfp&gt; play SongTitle</code> zu verwenden, um die selbe Datei abzuspielen.
  5921. </li>
  5922. <li>
  5923. uploadTTS &lt;destination path&gt; &lt;Text der in Sprache umgewandelt werden soll&gt;<br>
  5924. Der angegebene Text wird in eine MP3 Sprachdatei umgewandelt. Daf&uuml;r wird das Text2Speech Device verwendet das mit attr <code>TTSDev</code> angegebene wurde.
  5925. Die MP3 Datei wird dann in das angegebene Zielverzeichnis unterhalb von uploadPath kopiert.
  5926. <br>
  5927. Beispiele:<br>
  5928. <code>set &lt;dfp&gt; 01/0001Test Dies ist ein Test</code><br>
  5929. <code>set &lt;dfp&gt; ADVERT/0099Hinweis Achtung</code>
  5930. </li>
  5931. <li>
  5932. uploadTTScache<br>
  5933. Kopiert alle Dateien aus dem cache Verzeichnis des <code>TTSDev</code> in <code>uploadPath</code>. Es wird zuerst in das Verzeichnis 01 kopiert.
  5934. Nach 3000 Dateien wird das n&auml;chste Verzeichnis verwendet. Der MD5 Hash wird als Dateiname verwendet. Zum Schluss wird <code>set readFiles</code> ausgef&uuml;hrt.
  5935. Das Kommando <code>set tts</code> verwendet die dadurch angelegten Readings.
  5936. </li>
  5937. <li>
  5938. tts &lt;Text der in Sprache &uuml;bersetzt werden soll&gt;<br>
  5939. <code>TTSDev</code> wird verwendet um den MD5 Hash von &lt;Text der in Sprache &uuml;bersetzt werden soll&gt; zu berechnen. Anschlie&szlig;end wird versucht die Datei mit diesem Hash abzuspielen.
  5940. Wenn kein Reading f&uuml;r diesen Hash existiert und das wenn das Attribute <code>rememberMissingTTS</code> gesetzt ist dann wird ein neues Reading Missing_MD5&lt;md5&gt;
  5941. mit dem Wert &lt;Text der in Sprache &uuml;bersetzt werden soll&gt; angelegt.
  5942. <br>Voraussetzungen:<br>
  5943. Das funktioniert nur, wenn vorher der zu &uuml;bersetzende Text bereits einmal &uuml;bersetzt wurde und die daraus resultierende MP3 Datei im cache Verzeichnis
  5944. des TTSDev gespeichert wurde,
  5945. Die Dateien aus dem Cache m&uuml;ssen auf das Speichermedium mittels <code>set uploadTTScache</code> kopiert werden
  5946. </li>
  5947. <li>
  5948. uploadNumbers Zielverzeichnis<br>
  5949. erzeugt MP3 Dateien f&uuml;r alle Sprachschnipsel die ben&ouml;tigt werden um beliebige deutsche Zahlen zu sprechen.<br>
  5950. Beispiel:<br>
  5951. <code>set &lt;dfp&gt; uploadNumbers 99</code>
  5952. <br>
  5953. erzeugt die ben&ouml;tigten 31 MP3 Dateien im Verzeichnis 99.
  5954. </li>
  5955. <li>
  5956. sayNumber Zahl<br>
  5957. &uuml;bersetzt eine Zahl in Sprache und spielt die ben&ouml;tigten Dateien ab. Setzt voraus, dass vorher uploadNumbers verwendet wurde um die Sprachdateien zu erzeugen.
  5958. <br>
  5959. Beispiel:
  5960. <br>
  5961. <code>sayNumber -34.7</code>
  5962. <br>
  5963. entspricht
  5964. <br>
  5965. <code>play minus vier und dreissig komma sieben</code>
  5966. </li>
  5967. <li>
  5968. response<br> 10 Byte Antwortnachricht vom DFP hexadezimal kodiert
  5969. </li>
  5970. </ul>
  5971. <p><a name="DLNARenderer"></a>
  5972. <h3>DLNARenderer</h3>
  5973. <ul>
  5974. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  5975. hier: <a href='commandref.html#DLNARenderer'>DLNARenderer</a><br/>
  5976. </ul>
  5977. <a name="DOIF"></a>
  5978. <h3>DOIF</h3>
  5979. <div class='langLinks'>[<a href='commandref.html#DOIF'>EN</a> DE]</div>
  5980. <ul>
  5981. DOIF (ausgeprochen: du if, ßbersetzt: tue wenn) ist ein universelles Modul mit UI, welches ereignis- und zeitgesteuert in Abhängigkeit definierter Bedingungen Anweisungen ausfßhrt.<br>
  5982. <br>
  5983. Mit diesem Modul ist es mÜglich, einfache wie auch komplexere Automatisierungsvorgänge zu definieren oder in Perl zu programmieren.
  5984. Ereignisse, Zeittrigger, Readings oder Status werden durch DOIF-spezifische Angaben in eckigen Klammern angegeben. Sie fĂźhren zur Triggerung des Moduls und damit zur Auswertung und AusfĂźhrung der definierten Anweisungen.<br>
  5985. <br>
  5986. Das Modul verfĂźgt Ăźber zwei Modi: FHEM-Modus und <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b></a>. Der Modus eines definierten DOIF-Devices wird automatisch aufgrund der Definition vom Modul erkannt
  5987. (FHEM-Modus beginnt mit einer runden Klammer auf).
  5988. Der Perl-Modus kommt weitgehend ohne Attribute aus, er ist aufgrund seiner Flexibilität,
  5989. der MÜglichkeit strukturiert zu programmieren und seiner hohen Performance insb. bei umfangreichen Automatisierungsaufgaben dem FHEM-Modus vorzuziehen. Hier geht´s zum <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b></a>.
  5990. Beide Modi sind innerhalb eines DOIF-Devices nicht miteinander kombinierbar.<br>
  5991. <br>
  5992. Syntax FHEM-Modus:<br>
  5993. <br>
  5994. <ol><code>define &lt;name&gt; DOIF (&lt;Bedingung&gt;) (&lt;Befehle&gt;) DOELSEIF (&lt;Bedingung&gt;) (&lt;Befehle&gt;) DOELSEIF ... DOELSE (&lt;Befehle&gt;)</code></ol>
  5995. <br>
  5996. Die Angaben werden immer von links nach rechts abgearbeitet. Logische Abfragen werden in DOIF/DOELSEIF-Bedingungen vornehmlich mit Hilfe von and/or-Operatoren erstellt.
  5997. Zu beachten ist, dass nur die Bedingungen ĂźberprĂźft werden,
  5998. die zum ausgelĂśsten Event das dazughĂśrige Device bzw. die dazugehĂśrige Triggerzeit beinhalten.
  5999. Kommt ein Device in mehreren Bedingungen vor, so wird immer nur ein Kommando ausgefĂźhrt, und zwar das erste,
  6000. fĂźr das die dazugehĂśrige Bedingung in der abgearbeiteten Reihenfolge wahr ist.<br><br>
  6001. Das DOIF-Modul arbeitet mit Zuständen. Jeder Ausfßhrungszweig DOIF/DOELSEIF..DOELSEIF/DOELSE stellt einen eigenen Zustand dar (cmd_1, cmd_2, usw.).
  6002. Das Modul merkt sich den zuletzt ausgefßhrten Ausfßhrungszweig und wiederholt diesen standardmä�ig nicht.
  6003. Ein AusfĂźhrungszweig wird erst dann wieder ausgefĂźhrt, wenn zwischenzeitlich ein anderer AusfĂźhrungszweig ausgefĂźhrt wurde, also ein Statuswechsel des DOIF-Moduls stattgefunden hat.
  6004. Dieses Verhalten ist sinnvoll, um zu verhindern, dass zyklisch sendende Sensoren (Temperatur, Feuchtigkeit, Helligkeit, usw.) zu ständiger Wiederholung des selben Befehls oder Befehlsabfolge fßhren.
  6005. Das Verhalten des Moduls im FHEM-Modus kann durch diverse Attribute verändert werden. Im FHEM-Modus wird maximal nur ein Zweig pro Ereignis- oder Zeit-Trigger ausgefßhrt, es gibt nur einen Wait-Timer.<br>
  6006. <br>
  6007. <a name="DOIF_Einfache_Anwendungsbeispiele"></a>
  6008. <u>Einfache Anwendungsbeispiele (vgl. <a href="#DOIF_Einfache_Anwendungsbeispiele_Perl">Anwendungsbeispiele im Perl-Modus</a>):</u><ol>
  6009. <br>
  6010. Fernbedienung (Ereignissteuerung)<br>
  6011. <br>
  6012. <code>define di_rc_tv DOIF ([remotecontol:"on"]) (set tv on) DOELSE (set tv off)</code><br>
  6013. <br>
  6014. Zeitschaltuhr (Zeitsteuerung)<br>
  6015. <br>
  6016. <code>define di_clock_radio DOIF ([06:30|Mo Di Mi] or [08:30|Do Fr Sa So]) (set radio on) DOELSEIF ([08:00|Mo Di Mi] or [09:30|Do Fr Sa So]) (set radio off)</code><br>
  6017. <br>
  6018. Kombinierte Ereignis- und Zeitsteuerung<br>
  6019. <br>
  6020. <code>define di_lamp DOIF ([06:00-09:00] and [sensor:brightness] &lt; 40) (set lamp on) DOELSE (set lamp off)</code><br>
  6021. </ol><br>
  6022. Eine ausfßhrliche Erläuterung der obigen Anwendungsbeispiele kann hier nachgelesen werden:
  6023. <a href="https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen#Erste_Schritte_mit_DOIF:_Zeit-_und_Ereignissteuerung">Erste Schritte mit DOIF</a><br><br>
  6024. <br>
  6025. <a name="DOIF_Inhaltsuebersicht"></a>
  6026. <b>InhaltsĂźbersicht</b> (Beispiele im Perl-Modus sind besonders gekennzeichnet)<br>
  6027. <ul><br>
  6028. <a href="#DOIF_Lesbarkeit_der_Definitionen">Lesbarkeit der Definitionen</a><br>
  6029. <a href="#DOIF_Ereignissteuerung">Ereignissteuerung</a><br>
  6030. <a href="#DOIF_Teilausdruecke_abfragen">TeilausdrĂźcke abfragen</a><br>
  6031. <a href="#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events">Ereignissteuerung Ăźber Auswertung von Events</a><br>
  6032. <a href="#DOIF_Angaben_im_Ausfuehrungsteil">Angaben im AusfĂźhrungsteil</a><br>
  6033. <a href="#DOIF_Filtern_nach_Zahlen">Filtern nach AusdrĂźcken mit Ausgabeformatierung</a><br>
  6034. <a href="#DOIF_aggregation">Aggregieren von Werten</a><br>
  6035. <a href="#DOIF_Zeitsteuerung">Zeitsteuerung</a><br>
  6036. <a href="#DOIF_Relative_Zeitangaben">Relative Zeitangaben</a><br>
  6037. <a href="#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet">Zeitangaben nach Zeitraster ausgerichtet</a><br>
  6038. <a href="#DOIF_Relative_Zeitangaben_nach_Zeitraster_ausgerichtet">Relative Zeitangaben nach Zeitraster ausgerichtet</a><br>
  6039. <a href="#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet_alle_X_Stunden">Zeitangaben nach Zeitraster ausgerichtet alle X Stunden</a><br>
  6040. <a href="#DOIF_Wochentagsteuerung">Wochentagsteuerung</a><br>
  6041. <a href="#DOIF_Zeitsteuerung_mit_Zeitintervallen">Zeitsteuerung mit Zeitintervallen</a><br>
  6042. <a href="#DOIF_Indirekten_Zeitangaben">Indirekten Zeitangaben</a><br>
  6043. <a href="#DOIF_Zeitsteuerung_mit_Zeitberechnung">Zeitsteuerung mit Zeitberechnung</a><br>
  6044. <a href="#DOIF_Intervall-Timer">Intervall-Timer</a><br>
  6045. <a href="#DOIF_Kombination_von_Ereignis_und_Zeitsteuerung_mit_logischen_Abfragen">Kombination von Ereignis- und Zeitsteuerung mit logischen Abfragen</a><br>
  6046. <a href="#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger">Zeitintervalle, Readings und Status ohne Trigger</a><br>
  6047. <a href="#DOIF_Nutzung_von_Readings_Status_oder_Internals_im_Ausfuehrungsteil">Nutzung von Readings, Status oder Internals im AusfĂźhrungsteil</a><br>
  6048. <a href="#DOIF_Berechnungen_im_Ausfuehrungsteil">Berechnungen im AusfĂźhrungsteil</a><br>
  6049. <a href="#DOIF_notexist">Ersatzwert fĂźr nicht existierende Readings oder Status</a><br>
  6050. <a href="#DOIF_wait">VerzĂśgerungen</a><br>
  6051. <a href="#DOIF_timerWithWait">VerzĂśgerungen von Timern</a><br>
  6052. <a href="#DOIF_do_resetwait">ZurĂźcksetzen des Waittimers fĂźr das gleiche Kommando</a><br>
  6053. <a href="#DOIF_repeatcmd">Wiederholung von BefehlsausfĂźhrung</a><br>
  6054. <a href="#DOIF_cmdpause">Zwangspause fßr das Ausfßhren eines Kommandos seit der letzten Zustandsänderung</a><br>
  6055. <a href="#DOIF_repeatsame">Begrenzung von Wiederholungen eines Kommandos</a><br>
  6056. <a href="#DOIF_waitsame">AusfĂźhrung eines Kommandos nach einer Wiederholung einer Bedingung</a><br>
  6057. <a href="#DOIF_waitdel">LĂśschen des Waittimers nach einer Wiederholung einer Bedingung</a><br>
  6058. <a href="#DOIF_checkReadingEvent">Readingauswertung bei jedem Event des Devices</a><br>
  6059. <a href="#DOIF_addStateEvent">Eindeutige Statuserkennung</a><br>
  6060. <a href="#DOIF_selftrigger">Triggerung durch selbst ausgelĂśste Events</a><br>
  6061. <a href="#DOIF_timerevent">Setzen der Timer mit Event</a><br>
  6062. <a href="#DOIF_Zeitspanne_eines_Readings_seit_der_letzten_Aenderung">Zeitspanne eines Readings seit der letzten �nderung</a><br>
  6063. <a href="#DOIF_setList__readingList">Darstellungselement mit EingabemĂśglichkeit im Frontend und Schaltfunktion</a><br>
  6064. <a href="#DOIF_cmdState">Status des Moduls</a><br>
  6065. <a href="#DOIF_uiTable">uiTable, das User Interface</a><br>
  6066. <a href="#DOIF_Reine_Statusanzeige_ohne_Ausfuehrung_von_Befehlen">Reine Statusanzeige ohne AusfĂźhrung von Befehlen</a><br>
  6067. <a href="#DOIF_state">Anpassung des Status mit Hilfe des Attributes <code>state</code></a><br>
  6068. <a href="#DOIF_DOIF_Readings">Erzeugen berechneter Readings<br>
  6069. <a href="#DOIF_initialize">Vorbelegung des Status mit Initialisierung nach dem Neustart mit dem Attribut <code>initialize</code></a><br>
  6070. <a href="#DOIF_disable">Deaktivieren des Moduls</a><br>
  6071. <a href="#DOIF_setcmd">Bedingungslose AusfĂźhren von Befehlszweigen</a><br>
  6072. <a href="#DOIF_Initialisieren_des_Moduls">Initialisieren des Moduls</a><br>
  6073. <a href="#DOIF_Weitere_Anwendungsbeispiele">Weitere Anwendungsbeispiele</a><br>
  6074. <a href="#DOIF_Zu_beachten">Zu beachten</a><br>
  6075. <a href="https://wiki.fhem.de/wiki/DOIF">DOIF im FHEM-Wiki</a><br>
  6076. <a href="https://forum.fhem.de/index.php/board,73.0.html">DOIF im FHEM-Forum</a><br>
  6077. <a href="#DOIF_Kurzreferenz">Kurzreferenz</a><br>
  6078. <!-- Vorlage InhaltsĂźbersicht und Sprungmarke-->
  6079. <a href="#DOIF_"></a><br>
  6080. <a name="DOIF_"></a>
  6081. <!-- Vorlage RĂźcksprung zur InhaltsĂźbersicht-->
  6082. <!--&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>-->
  6083. </ul>
  6084. <a name="DOIF_Attribute"></a>
  6085. <a href="#DOIF_Attribute_kurz"><b>Attribute</b></a><br>
  6086. <ul>
  6087. <a href="#DOIF_addStateEvent">addStateEvent</a> &nbsp;
  6088. <a href="#DOIF_checkall">checkall</a> &nbsp;
  6089. <a href="#DOIF_checkReadingEvent">checkReadingEvent</a> &nbsp;
  6090. <a href="#DOIF_cmdpause">cmdpause</a> &nbsp;
  6091. <a href="#DOIF_cmdState">cmdState</a> &nbsp;
  6092. <a href="#DOIF_DOIF_Readings">DOIF_Readings</a> &nbsp;
  6093. <a href="#DOIF_disable">disable</a> &nbsp;
  6094. <a href="#DOIF_do_always">do always</a> &nbsp;
  6095. <a href="#DOIF_do_resetwait">do resetwait</a> &nbsp;
  6096. <a href="#DOIF_initialize">initialize</a> &nbsp;
  6097. <a href="#DOIF_notexist">notexist</a> &nbsp;
  6098. <a href="#DOIF_repeatcmd">repeatcmd</a> &nbsp;
  6099. <a href="#DOIF_repeatsame">repeatsame</a> &nbsp;
  6100. <a href="#DOIF_selftrigger">selftrigger</a> &nbsp;
  6101. <a href="#DOIF_setList__readingList">readingList</a> &nbsp;
  6102. <a href="#DOIF_setList__readingList">setList</a> &nbsp;
  6103. <a href="#DOIF_startup">startup</a> &nbsp;
  6104. <a href="#DOIF_state">state</a> &nbsp;
  6105. <a href="#DOIF_timerevent">timerevent</a> &nbsp;
  6106. <a href="#DOIF_timerWithWait">timerWithWait</a> &nbsp;
  6107. <a href="#DOIF_uiTable">uiTable</a> &nbsp;
  6108. <a href="#DOIF_wait">wait</a> &nbsp;
  6109. <a href="#DOIF_waitdel">waitdel</a> &nbsp;
  6110. <a href="#DOIF_waitsame">waitsame</a> &nbsp;
  6111. <a href="#DOIF_weekdays">weekdays</a> &nbsp;
  6112. <br><a href="#readingFnAttributes">readingFnAttributes</a> &nbsp;
  6113. </ul>
  6114. <br>
  6115. <a href="#DOIF_setBefehle"><b>Set Befehle</b></a><br>
  6116. <ul>
  6117. <a href="#DOIF_setcheckall">checkall</a> &nbsp;
  6118. <a href="#DOIF_setdisable">disable</a> &nbsp;
  6119. <a href="#DOIF_setenable">enable</a> &nbsp;
  6120. <a href="#DOIF_Initialisieren_des_Moduls">initialize</a> &nbsp;
  6121. <a href="#DOIF_setcmd">cmd</a> &nbsp;
  6122. </ul>
  6123. <br>
  6124. <a href="#DOIF_getBefehle"><b>Get Befehle</b></a><br>
  6125. <ul>
  6126. <a href="#HTML-Code von uiTable">html</a>
  6127. </ul>
  6128. <br>
  6129. <a name="DOIF_Lesbarkeit_der_Definitionen"></a>
  6130. <b>Lesbarkeit der Definitionen</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6131. <br>
  6132. Da die Definitionen im Laufe der Zeit recht umfangreich werden kĂśnnen, sollten die gleichen Regeln, wie auch beim Programmieren in hĂśheren Programmiersprachen, beachtet werden.
  6133. Dazu zählen: das Einrßcken von Befehlen, Zeilenumbrßche sowie das Kommentieren seiner Definition, damit man auch später noch die Funktionalität seines Moduls nachvollziehen kann.<br>
  6134. <br>
  6135. Das Modul unterstĂźtzt dazu EinrĂźckungen, ZeilenumbrĂźche an beliebiger Stelle und Kommentierungen beginnend mit ## bis zum Ende der Zeile.
  6136. Die Formatierungen lassen sich im DEF-Editor der Web-Oberfläche vornehmen.<br>
  6137. <br>
  6138. So kĂśnnte eine Definition aussehen:<br>
  6139. <table>
  6140. <tr><td><code>define di_Modul DOIF ([Switch1] eq "on" and [Switch2] eq "on")</code></td><td>&nbsp;<code>## wenn Schalter 1 und Schalter 2 on ist</code><br></td></tr>
  6141. <tr><td><ol><code>(set lamp on)</code> </td><td>&nbsp;<code>## wird Lampe eingeschaltet</code></ol></td></tr>
  6142. <tr><td><code>DOELSE</code> </td><td>&nbsp;<code>## im sonst-Fall, also wenn einer der Schalter off ist</code><br></td></tr>
  6143. <tr><td><ol><code>(set lamp off)</code> </td><td>&nbsp;<code>## wird die Lampe ausgeschaltet</code></ol></td></tr>
  6144. <br>
  6145. </table><br>
  6146. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6147. <table>
  6148. <code>define di_Modul DOIF </code>
  6149. <tr><td>{<code>&nbsp;if ([Switch1] eq "on" and [Switch2] eq "on") {</code></td><td>&nbsp;<code>## wenn Schalter 1 und Schalter 2 on ist</code><br></td></tr>
  6150. <tr><td><ol><code>fhem_set "lamp on"</code> </td><td>&nbsp;<code>## wird Lampe eingeschaltet</code></ol></td></tr>
  6151. <tr><td><code>&nbsp;&nbsp;}&nbsp;else {</code> </td><td>&nbsp;<code>## im sonst-Fall, also wenn einer der Schalter off ist</code><br></td></tr>
  6152. <tr><td><ol><code>fhem_set "lamp off"</code> </td><td>&nbsp;<code>## wird die Lampe ausgeschaltet</code></ol></td></tr>
  6153. <tr><td><code>&nbsp;&nbsp;}</code><br></td></tr>
  6154. <tr><td><code>}</code><br></td></tr>
  6155. </table>
  6156. <br>
  6157. Im Folgenden wird die Funktionalität des Moduls im Einzelnen an vielen praktischen Beispielen erklärt.<br>
  6158. <br>
  6159. <a name="DOIF_Ereignissteuerung"></a>
  6160. <b>Ereignissteuerung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6161. <br>
  6162. Vergleichende Abfragen werden in der Bedingung, mit Perl-Operatoren <code>==, !=, <, <=, >, >=</code> bei Zahlen und mit <code>eq, ne, lt, le, gt, ge, =~, !~</code> bei Zeichenketten angegeben.
  6163. Logische Verknßpfungen sollten zwecks �bersichtlichkeit mit <code>and</code> bzw. <code>or</code> vorgenommen werden.
  6164. Die Reihenfolge der Auswertung wird, wie in hĂśheren Sprachen Ăźblich, durch runde Klammern beeinflusst.
  6165. Status werden mit <code>[&lt;devicename&gt;]</code>, Readings mit <code>[&lt;devicename&gt;:&lt;readingname&gt;]</code>,
  6166. Internals mit <code>[&lt;devicename&gt;:&&lt;internal&gt;]</code> angegeben.<br>
  6167. <br>
  6168. <u>Anwendungsbeispiel</u>: Einfache Ereignissteuerung, "remotecontrol" ist hier ein Device, es wird in eckigen Klammern angegeben. Ausgewertet wird der Status des Devices - nicht das Event.<br>
  6169. <br>
  6170. <code>define di_garage DOIF ([remotecontrol] eq "on") (set garage on) DOELSEIF ([remotecontrol] eq "off") (set garage off)</code><br>
  6171. <br>
  6172. Das Modul wird getriggert, sobald das angegebene Device hier "remotecontrol" ein Event erzeugt. Das geschieht, wenn irgendein Reading oder der Status von "remotecontrol" aktualisiert wird.
  6173. Ausgewertet wird hier der Zustand des Status von remotecontrol nicht das Event selbst. Im FHEM-Modus arbeitet das Modul mit Zuständen, indem es den eigenen Status auswertet.
  6174. Die Ausfßhrung erfolgt standardmä�ig nur ein mal, bis ein anderer DOIF-Zweig und damit eine �ndernung des eigenen Status erfolgt.
  6175. Das bedeutet, dass ein mehrmaliges Drßcken der Fernbedienung auf "on" nur einmal "set garage on" ausfßhrt. Die nächste mÜgliche Ausfßhrung ist "set garage off", wenn Fernbedienung "off" liefert.
  6176. <a name="DOIF_do_always"></a>
  6177. Wßnscht man eine Ausfßhrung des gleichen Befehls mehrfach nacheinander bei jedem Trigger, unabhängig davon welchen Status das DOIF-Modul hat,
  6178. weil z. B. Garage nicht nur Ăźber die Fernbedienung geschaltet wird, dann muss man das per "do always"-Attribut angeben:<br>
  6179. <br>
  6180. <code>attr di_garage do always</code><br>
  6181. <br>
  6182. Bei der Angabe von zyklisch sendenden Sensoren (Temperatur, Feuchtigkeit, Helligkeit usw.) wie z. B.:<br>
  6183. <br>
  6184. <code>define di_heating DOIF ([sens:temperature] < 20) (set heating on)</code><br>
  6185. <br>
  6186. ist die Nutzung des Attributes <code>do always</code> nicht sinnvoll, da das entsprechende Kommando hier: "set heating on" jedes mal ausgefĂźhrt wird,
  6187. wenn der Temperatursensor in regelmä�igen Abständen eine Temperatur unter 20 Grad sendet.
  6188. Ohne <code>do always</code> wird hier dagegen erst wieder "set heating on" ausgefßhrt, wenn der Zustand des Moduls auf "cmd_2" gewechselt hat, also die Temperatur zwischendurch grÜ�er oder gleich 20 Grad war.<br>
  6189. <br>
  6190. Soll bei Nicht-Erfßllung aller Bedingungen ein Zustandswechsel erfolgen, so muss man ein DOELSE am Ende der Definition anhängen. Ausnahme ist eine einzige Bedingung ohne do always, wie im obigen Beispiel,
  6191. hierbei wird intern ein virtuelles DOELSE angenommen, um bei Nicht-Erfßllung der Bedingung einen Zustandswechsel in cmd_2 zu provozieren, da sonst nur ein einziges Mal geschaltet werden kÜnnte, da das Modul aus dem cmd_1-Zustand nicht mehr herauskäme.<br>
  6192. <br>
  6193. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6194. <br>
  6195. Im Perl-Modus arbeitet das DOIF-Modul im Gegensatz zum FHEM-Modus ohne den eigenen Status auszuwerten. Es kommt immer zur Auswertung des definierten Block, wenn er getriggert wird.
  6196. Diese Verhalten entspricht dem Verhalten mit dem Attribut do always im FHEM-Modus. Damit bei zyklisch sendenden Sensoren nicht zum ständigen Schalten kommt, muss das Schalten unterbunden werden. Das obige Beispiel lässt sich, wie folgt definieren:<br>
  6197. <br>
  6198. <code>define di_heating DOIF {if ([sens:temperature] < 20) {if (Value("heating") ne "on") {fhem_set"heating on"}}}</code><br>
  6199. <br>
  6200. <a name="DOIF_Teilausdruecke_abfragen"></a>
  6201. <b>TeilausdrĂźcke abfragen</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6202. <br>
  6203. Abfragen nach Vorkommen eines Wortes innerhalb einer Zeichenkette kĂśnnen mit Hilfe des Perl-Operators <code>=~</code> vorgenommen werden.<br>
  6204. <br>
  6205. <u>Anwendungsbeispiel</u>: Garage soll beim langen Tastendruck Ăśffnen, hier: wenn das Wort "Long" im Status vorkommt (bei HM-Komponenten stehen im Status noch weitere Informationen).<br>
  6206. <br>
  6207. <code>define di_garage DOIF ([remotecontrol] =~ "Long") (set garage on)<br>
  6208. attr di_garage do always</code><br>
  6209. <br>
  6210. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6211. <code>define di_garage DOIF {if ([remotecontrol] =~ "Long") {fhem_set"garage on"}}</code><br>
  6212. <br>
  6213. Weitere MÜglichkeiten bei der Nutzung des Perl-Operators: <code>=~</code>, insbesondere in Verbindung mit regulären Ausdrßcken, kÜnnen in der Perl-Dokumentation nachgeschlagen werden.<br>
  6214. <br>
  6215. <a name="DOIF_Ereignissteuerung_ueber_Auswertung_von_Events"></a>
  6216. <b>Ereignissteuerung Ăźber Auswertung von Events</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6217. <br>
  6218. Eine Alternative zur Auswertung von Status oder Readings ist das Auswerten von Ereignissen (Events) mit Hilfe von regulären Ausdrßcken. Der Suchstring wird als regulärer Ausdruck in Anfßhrungszeichen angegeben.
  6219. Die Syntax lautet: <code>[&lt;devicename&gt;:"&lt;regex&gt;"]</code><br>
  6220. <br>
  6221. <u>Anwendungsbeispiel</u>: wie oben, jedoch wird hier nur das Ereignis (welches im Eventmonitor erscheint) ausgewertet und nicht der Status von "remotecontrol" wie im vorherigen Beispiel<br>
  6222. <br>
  6223. <code>define di_garage DOIF ([remotecontrol:"on"]) (set garage on) DOELSEIF ([remotecontrol:"off"]) (set garage off)</code><br>
  6224. <br>
  6225. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6226. <code>define di_garage DOIF {if ([remotecontrol:"on"]) {fhem_set"garage on"} elsif ([remotecontrol:"off"]) {fhem_set"garage off"}}</code><br>
  6227. <br>
  6228. In diesem Beispiel wird nach dem Vorkommen von "on" innerhalb des Events gesucht.
  6229. Falls "on" gefunden wird, wird der Ausdruck wahr und der if-Fall wird ausgefĂźhrt, ansonsten wird der else-if-Fall entsprechend ausgewertet.
  6230. Die Auswertung von reinen Ereignissen bietet sich dann an, wenn ein Modul keinen Status oder Readings benutzt, die man abfragen kann, wie z. B. beim Modul "sequence".
  6231. Die Angabe von regulären Ausdrßcken kann recht komplex werden und wßrde die Aufzählung aller MÜglichkeiten an dieser Stelle den Rahmen sprengen.
  6232. Weitere Informationen zu regulären Ausdrßcken sollten in der Perl-Dokumentation nachgeschlagen werden.
  6233. Die logische VerknĂźpfung "and" mehrerer Ereignisse ist nicht sinnvoll, da zu einem Zeitpunkt immer nur ein Ereignis zutreffen kann.<br>
  6234. <br>
  6235. Die alte Syntax <code>[&lt;devicename&gt;:?&lt;regex&gt;]</code> wird aus Kompatibilitätsgrßnden noch unterstßtzt, sollte aber nicht mehr benutzt werden.<br>
  6236. <br>
  6237. Sollen Events verschiedener Devices ausgewertet werden, so lässt sich folgende Syntax anwenden: <code>["&lt;device regex&gt;:&lt;event regex&gt;"]</code><br>
  6238. <br>
  6239. Im Gegensatz zum notify werden vom DOIF-Modul selbst keine Regex-Sonderzeichen hinzugefßgt. Insb. wird kein ^ fßr Anfang vorangestellt, bzw. kein $ fßr Ende angehängt.<br>
  6240. <br>
  6241. Beispiele fĂźr Regex-Angaben: <br>
  6242. <br>
  6243. ["FS"] triggert auf alle Devices, die "FS" im Namen beinhalten <br>
  6244. ["^FS"] triggert auf alle Devices, die mit "FS" im Namen anfangen <br>
  6245. ["FS:temp"] triggert auf alle Devices, die "FS" im Namen und "temp" im Event beinhalten <br>
  6246. ([":^temp"]) triggert auf beliebige Devices, die im Event mit "temp" beginnen <br>
  6247. (["^FS$:^temp$"] triggert auf Devices, die genau "FS" hei�en und im Event genau "temp" vorkommt <br>
  6248. [""] triggert auf alles<br>
  6249. <br>
  6250. In der Bedingung und im AusfĂźhrungsteil werden die SchlĂźsselwĂśrter $SELF durch den eigenen Namen des DOIF-Moduls, $DEVICE durch das aktuelle Device, $EVENT durch die passende Eventzeile, $EVENTS kommagetrennt durch alle Eventzeilen des Triggers ersetzt.<br>
  6251. <br>
  6252. Entsprechend kĂśnnen Perl-Variablen in der DOIF-Bedingung ausgewertet werden, sie werden in Kleinbuchstaben geschrieben. Sie lauten: $device, $event, $events<br>
  6253. <br>
  6254. <u>Anwendungsbeispiele</u>:<br>
  6255. <br>
  6256. "Fenster offen"-Meldung<br>
  6257. <br>
  6258. <code>define di_window_open DOIF (["^window_:open"]) (set Pushover msg 'alarm' 'open windows $DEVICE' '' 2 'persistent' 30 3600)<br>
  6259. attr di_window_open do always</code><br>
  6260. <br>
  6261. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6262. <code>define di_window_open DOIF {if (["^window_:open"]) {fhem_set"Pushover msg 'alarm' 'open windows $DEVICE' '' 2 'persistent' 30 3600"}}</code><br>
  6263. <br>
  6264. Hier werden alle Fenster, die mit dem Device-Namen "window_" beginnen auf "open" im Event Ăźberwacht.<br>
  6265. <br>
  6266. Allgemeine Ereignistrigger kĂśnnen ebenfalls so definiert werden, dass sie nicht nur wahr zum Triggerzeitpunkt und sonst nicht wahr sind,
  6267. sondern Inhalte des Ereignisses zurĂźckliefern. Initiiert wird dieses Verhalten durch die Angabe eines Default-Wertes.<br>
  6268. <br>
  6269. Syntax:<br>
  6270. <br>
  6271. <code>["regex for trigger",&lt;default value&gt;]</code><br>
  6272. <br>
  6273. Anwendungsbeispiel:<br>
  6274. <br>
  6275. <code>define di_warning DOIF ([":^temperature",0]< 0) (set pushmsg danger of frost $DEVICE)</code><br>
  6276. <code>attr di_warning do always</code><br>
  6277. <br>
  6278. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6279. <code>define di_warning DOIF {if ([":^temperature",0]< 0) {fhem_set"pushmsg danger of frost $DEVICE}}</code><br>
  6280. <br>
  6281. Damit wird auf alle Devices getriggert, die mit "temperature" im Event beginnen. ZurĂźckgeliefert wird der Wert, der im Event hinter "temperature: " steht.
  6282. Wenn kein Event stattfindet, wird der Defaultwert, hier 0, zurĂźckgeliefert.
  6283. <br>
  6284. Ebenfalls kann ein Ereignisfilter mit Ausgabeformatierung angegeben werden.<br>
  6285. <br>
  6286. Syntax:<br>
  6287. <br>
  6288. <code>["regex for trigger":"&lt;regex filter&gt;":&lt;output&gt;,&lt;default value&gt;]</code><br>
  6289. <br>
  6290. Regex-Filter- und Output-Parameter sind optional. Der Default-Wert ist verpflichtend.<br>
  6291. <br>
  6292. Die Angaben zum Filter und Output funktionieren, wie die beim Reading-Filter. Siehe: <a href="#DOIF_Filtern_nach_Zahlen">Filtern nach AusdrĂźcken mit Ausgabeformatierung</a><br>
  6293. <br>
  6294. Wenn kein Filter, wie obigen Beispiel, angegeben wird, so wird intern folgende Regex vorbelegt: "[^\:]*: (.*)" Damit wird der Wert hinter der Readingangabe genommen.
  6295. Durch eigene Regex-Filter-Angaben kann man beliebige Teile des Events herausfiltern, ggf. Ăźber Output formatieren und in der Bedingung entsprechend auswerten,
  6296. ohne auf Readings zurĂźckgreifen zu mĂźssen.<br>
  6297. <br>
  6298. <a name="DOIF_Filtern_nach_Zahlen"></a>
  6299. <b>Filtern nach AusdrĂźcken mit Ausgabeformatierung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6300. <br>
  6301. Syntax: <code>[&lt;device&gt;:&lt;reading&gt;|&lt;internal&gt;:d&lt;number&gt|"&lt;regex&gt;":&lt;output&gt;]</code><br>
  6302. <br>
  6303. d - Der Buchstabe "d" ist ein Synonym fßr das Filtern nach Dezimalzahlen, es entspricht intern dem regulären Ausdruck "(-?\d+(\.\d+)?)". Ebenfalls lässt sich eine Dezimalzahl auf eine bestimmte Anzahl von Nachkommastellen runden. Dazu wird an das "d" eine Ziffer angehängt. Mit der Angabe d0 wird die Zahl auf ganze Zahlen gerundet.<br>
  6304. &lt;Regex&gt;- Der reguläre Ausdruck muss in Anfßhrungszeichen angegeben werden. Dabei werden Perl-Mechanismen zu regulären Ausdrßcken mit Speicherung der Ergebnisse in Variablen $1, $2 usw. genutzt.<br>
  6305. &lt;Output&gt; - ist ein optionaler Parameter, hier kĂśnnen die in den Variablen $1, $2, usw. aus der Regex-Suche gespeicherten Informationen fĂźr die Aufbereitung genutzt werden. Sie werden in AnfĂźhrungszeichen bei Texten oder in Perlfunktionen angegeben. Wird kein Output-Parameter angegeben, so wird automatisch $1 genutzt.<br>
  6306. <br>
  6307. Beispiele:<br>
  6308. <br>
  6309. Es soll aus einem Reading, das z. B. ein Prozentzeichen beinhaltet, nur der Zahlenwert fĂźr den Vergleich genutzt werden:<br>
  6310. <br>
  6311. <code>define di_heating DOIF ([adjusting:actuator:d] &lt; 10) (set heating off) DOELSE (set heating on)</code><br>
  6312. <br>
  6313. Alternativen fĂźr die Nutzung der Syntax am Beispiel des Filterns nach Zahlen:<br>
  6314. <br>
  6315. <code>[mydevice:myreading:d]</code><br>
  6316. entspricht:<br>
  6317. <code>[mydevice:myreading:"(-?\d+(\.\d+)?)"]</code><br>
  6318. entspricht:<br>
  6319. <code>[mydevice:myreading:"(-?\d+(\.\d+)?)":$1]</code><br>
  6320. entspricht:<br>
  6321. <code>[mydevice:myreading:"(-?\d+(\.\d+)?)":"$1"]</code><br>
  6322. entspricht:<br>
  6323. <code>[mydevice:myreading:"(-?\d+(\.\d+)?)":sprintf("%s":$1)]</code><br>
  6324. <br>
  6325. Es soll die Zahl aus einem Reading auf 3 Nachkommastellen formatiert werden:<br>
  6326. <br>
  6327. <code>[mydevice:myreading:d3]</code><br>
  6328. <br>
  6329. Es soll aus einem Text eine Zahl herausgefiltert werden und anschlie�end gerundet auf zwei Nachkommastellen mit der Einheit °C ausgeben werden:<br>
  6330. <br>
  6331. <code>... (set mydummy [mydevice:myreading:d2:"$1 °C"])</code><br>
  6332. <br>
  6333. Es sollen aus einem Reading der Form "HH:MM:SS" die Stunden, Minuten und Sekunden separieret werden:<br>
  6334. <br>
  6335. <code>[mydevice:myreading:"(\d\d):(\d\d):(\d\d)":"hours: $1, minutes $2, seconds: $3"]</code><br>
  6336. <br>
  6337. Der Inhalt des Dummys Alarm soll in einem Text eingebunden werden:<br>
  6338. <br>
  6339. <code>[alarm:state:"(.*)":"state of alarm is $1"]</code><br>
  6340. <br>
  6341. Die Definition von regulären Ausdrßcken mit Nutzung der Perl-Variablen $1, $2 usw. kann in der Perldokumentation nachgeschlagen werden.<br>
  6342. <br>
  6343. <a name="DOIF_Angaben_im_Ausfuehrungsteil"></a>
  6344. <b>Angaben im AusfĂźhrungsteil (gilt nur fĂźr FHEM-Modus)</b>:&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6345. <br>
  6346. Der Ausfßhrungsteil wird durch runde Klammern eingeleitet. Es werden standardmä�ig FHEM-Befehle angegeben, wie z. B.: <code>...(set lamp on)</code><br>
  6347. <br>
  6348. Sollen mehrere FHEM-Befehle ausgefĂźhrt werden, so werden sie mit Komma statt mit Semikolon angegeben <code>... (set lamp1 on, set lamp2 off)</code><br>
  6349. <br>
  6350. Falls ein Komma nicht als Trennzeichen zwischen FHEM-Befehlen gelten soll, so muss der FHEM-Ausdruck zusätzlich in runde Klammern gesetzt werden: <code>...((set lamp1,lamp2 on),set switch on)</code><br>
  6351. <br>
  6352. Perlbefehle werden in geschweifte Klammern gesetzt: <code>... {system ("wmail Peter is at home")}</code>. In diesem Fall kĂśnnen die runden Klammern des AusfĂźhrungsteils weggelassen werden.<br>
  6353. <br>
  6354. Perlcode kann im DEF-Editor wie gewohnt programmiert werden: <code>...{my $name="Peter"; system ("wmail $name is at home");}</code><br>
  6355. <br>
  6356. FHEM-Befehle lassen sich mit Perl-Befehlen kombinieren: <code>... ({system ("wmail Peter is at home")}, set lamp on)</code><br>
  6357. <br>
  6358. <a name="DOIF_aggregation"></a><br>
  6359. <b>Aggregieren von Werten</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6360. <br>
  6361. Mit Hilfe der Aggregationsfunktion kĂśnnen mehrere gleichnamige Readings im System ausgewertet werden, die einem bestimmten Kriterium entsprechen. Sie wird in eckigen Klammern durch ein # (aggregierter Wert) oder @ (Liste der passeden Devices) eingeleitet.
  6362. Es kann bestimmt werden: die Anzahl der Readings bzw. Devices, Durchschnittswert, Summe, hĂśchster Wert, niedrigster Wert oder eine Liste der dazugehĂśrigen Devices.
  6363. Die Aggregationsfunktion kann in einer DOIF-Bedingungen, im Ausfßhrungsteil oder mit Hilfe des state-Attributs im Status angegeben werden. In der Bedingung und im Status reagiert sie auf Ereignistrigger. Das lässt sich durch ein vorangestelltes Fragezeichen unterbinden.
  6364. Die Angabe des Readings kann weggelassen werden, dann wird lediglich nach entsprechenden Devices gesucht.<br>
  6365. <br>
  6366. Syntax:<br>
  6367. <br>
  6368. <code>[&lt;function&gt;:&lt;format&gt;:"&lt;regex device&gt;:&lt;regex event&gt;":&lt;reading&gt;|"&lt;regex reading&gt;":&lt;condition&gt;,&lt;default&gt;]</code><br>
  6369. <br>
  6370. &lt;function&gt;:<br>
  6371. <br>
  6372. <b>#</b> Anzahl der betroffenen Devices, der folgende Doppelpunkt kann weggelassen werden<br>
  6373. <b>@</b> kommagetrennte Liste Devices, der folgende Doppelpunkt kann weggelassen werden<br>
  6374. <b>#sum</b> Summe <br>
  6375. <b>#max</b> hĂśchster Wert<br>
  6376. <b>#min</b> niedrigster Wert<br>
  6377. <b>#average</b> Durchschnitt<br>
  6378. <b>@max</b> Device des hĂśchsten Wertes<br>
  6379. <b>@min</b> Device de niedrigsten Wertes<br>
  6380. <br>
  6381. &lt;format&gt; <code>d&lt;number&gt</code> zum Runden des Wertes mit Nachkommastellen, <code>a</code> fĂźr Aliasnamen bei Devicelisten, <code>s(&lt;splittoken&gt)</code> &lt;splittoken&gt sind Trennzeichen in der Device-Liste<br>
  6382. <br>
  6383. "&lt;regex Device&gt;:&lt;regex Event&gt;" spezifiziert sowohl die betroffenen Devices, als auch den Ereignistrigger, die Syntax entspricht der DOIF-Syntax fĂźr Ereignistrigger.<br>
  6384. Die Angabe &lt;regex Event&gt; ist im AusfĂźhrungsteil nicht sinnvoll und sollte weggelassen werden.<br>
  6385. <br>
  6386. &lt;reading&gt; Reading, welches ĂźberprĂźft werden soll<br>
  6387. <br>
  6388. "&lt;regex reading&gt"; Regex fĂźr Readings, die ĂźberprĂźft werden sollen<br>
  6389. <br>
  6390. &lt;condition&gt; Aggregations-Bedingung, $_ ist der Platzhalter fĂźr den aktuellen Wert des internen Schleifendurchlaufs, Angaben in AnfĂźhrungszeichen der Art "&lt;value&gt;" entsprechen $_ =~ "&lt;value&gt;" , hier sind alle Perloperatoren mĂśglich.<br>
  6391. <br>
  6392. &lt;default&gt; Default-Wert, falls kein Device gefunden wird, entspricht der Syntax des Default-Wertes bei Readingangaben<br>
  6393. <br>
  6394. &lt;format&gt;, &lt;reading&gt;, &lt;condition&gt;, &lt;default&gt; sind optional<br>
  6395. <br>
  6396. <u>Syntax-Beispiele im AusfĂźhrungteil</u><br>
  6397. <br>
  6398. Anzahl der Devices, die mit "window" beginnen:<br>
  6399. <br>
  6400. <code>[#"^window"]</code><br>
  6401. <br>
  6402. Liste der Devices, die mit "window" beginnen, es werden Aliasnamen ausgegeben, falls definiert:<br>
  6403. <br>
  6404. <code>[@:a"^window"]</code><br>
  6405. <br>
  6406. Liste der Devices, die mit "windows" beginnen und ein Reading "myreading" beinhalten:<br>
  6407. <br>
  6408. <code>[@"^window":myreading]</code><br>
  6409. <br>
  6410. Liste der Devices, die mit "windows" beginnen und im Status das Wort "open" vorkommt:<br>
  6411. <br>
  6412. <code>[@"^window":state:"open"]</code><br>
  6413. <br>
  6414. entspricht:<br>
  6415. <br>
  6416. <code>[@"^window":state:$_ =~ "open"]</code> siehe Aggregationsbedingung.<br>
  6417. <br>
  6418. Kleinster Wert der Readings des Devices "abfall", in deren Namen "Gruenschnitt" vorkommt und die mit "_days" enden:<br>
  6419. <br>
  6420. <code>[#min:"^abfall$":"Gruenschnitt.*_days$"]</code><br>
  6421. <br>
  6422. Durchschnitt von Readings aller Devices, die mit "T_" beginnen, in deren Reading-Namen "temp" vorkommt:<br>
  6423. <br>
  6424. <code>[#average:"^T_":"temp"]</code><br>
  6425. <br>
  6426. In der Aggregationsbedingung <condition> kĂśnnen alle in FHEM definierten Perlfunktionen genutzt werden. Folgende Variablen sind vorbelegt und kĂśnnen ebenfalls benutzt werden:<br>
  6427. <br>
  6428. <b>$_</b> Inhalt des angegebenen Readings (s.o.)<br>
  6429. <b>$number</b> Nach Zahl gefilteres Reading<br>
  6430. <b>$name</b> Name des Devices<br>
  6431. <b>$TYPE</b> Devices-Typ<br>
  6432. <b>$STATE</b> Status des Devices (nicht das Reading state)<br>
  6433. <b>$room</b> Raum des Devices<br>
  6434. <b>$group</b> Gruppe des Devices<br>
  6435. <br>
  6436. <u>Beispiele fĂźr Definition der Aggregationsbedingung &lt;condition&gt;:</u><br>
  6437. <br>
  6438. Liste der Devices, die mit "rooms" enden und im Reading "temperature" einen Wert gr�er 20 haben:<br>
  6439. <br>
  6440. <code>[@"rooms$":temperature:$_ > 20]</code><br>
  6441. <br>
  6442. Liste der Devices im Raum "livingroom", die mit "rooms" enden und im Reading "temperature" einen Wert gr�er 20 haben:<br>
  6443. <br>
  6444. <code>[@"rooms$":temperature:$_ > 20 and $room eq "livingroom"]</code><br>
  6445. <br>
  6446. Liste der Devices in der Gruppe "windows", die mit "rooms" enden, deren Status (nicht state-Reading) "on" ist:<br>
  6447. <br>
  6448. <code>[@"rooms$"::$STATE eq "on" and $group eq "windows"]</code><br>
  6449. <br>
  6450. Liste der Devices, deren state-Reading "on" ist und das Attribut disable nicht auf "1" gesetzt ist:<br>
  6451. <br>
  6452. <code>[@"":state:$_ eq "on" and AttrVal($name,"disable","") ne "1"]</code><br>
  6453. <br>
  6454. <br>
  6455. Aggregationsangaben in der DOIF-Bedingung reagieren zusätzlich auf Ereignistrigger, hier sollte die regex-Angabe fßr das Device um eine regex-Angabe fßr das zu triggernde Event erweitert werden.<br>
  6456. <br>
  6457. Anzahl der Devices, die mit "window" beginnen. Getriggert wird, wenn eine Eventzeile beginnend mit "window" und dem Wort "open" vorkommt:<br>
  6458. <br>
  6459. <code>[#"^window:open"]</code><br>
  6460. <br>
  6461. <u>Anwendungsbeispiele</u><br>
  6462. <br>
  6463. Statusanzeige: Offene Fenster:<br>
  6464. <br>
  6465. <code>define di_window DOIF<br>
  6466. <br>
  6467. attr di_window state Offene Fenster: [@"^window:open":state:"open","keine"]</code><br>
  6468. <br>
  6469. Statusanzeige: Alle Devices, deren Batterie nicht ok ist:<br>
  6470. <br>
  6471. <code>define di_battery DOIF<br>
  6472. <br>
  6473. attr di_battery state [@":battery":battery:$_ ne "ok","alle OK"]</code><br>
  6474. <br>
  6475. Statusanzeige: Durchschnittstemperatur aller Temperatursensoren in der Gruppe "rooms":<br>
  6476. <br>
  6477. <code>define di_average_temp DOIF<br>
  6478. <br>
  6479. attr di_average_temp state [#average:d2:":temperature":temperature:$group eq "rooms"]</code><br>
  6480. <br>
  6481. Fenster Status/Meldung:<br>
  6482. <br>
  6483. <code>define di_Fenster DOIF (["^Window:open"]) <br>
  6484. (push "Fenster $DEVICE wurde geĂśffnet. Es sind folgende Fenster offen: [@"^Window":state:"open"]")<br>
  6485. DOELSEIF ([#"^Window:closed":state:"open"] == 0)<br>
  6486. (push "alle Fenster geschlossen")<br>
  6487. <br>
  6488. attr di_Fenster do always<br>
  6489. attr di_Fenster cmdState [$SELF:Device] zuletzt geĂśffnet|alle geschlossen</code><br>
  6490. <br>
  6491. Raumtemperatur-�berwachung:<br>
  6492. <br>
  6493. <code>define di_temp DOIF (([08:00] or [20:00]) and [?#"^Rooms":temperature: $_ < 20] != 0)<br>
  6494. (push "In folgenden Zimmern ist zu kalt [@"^Rooms":temperature:$_ < 20,"keine"]")<br>
  6495. DOELSE<br>
  6496. (push "alle Zimmmer sind warm")<br>
  6497. <br>
  6498. attr di_temp do always<br>
  6499. attr di_Raumtemp state In folgenden Zimmern ist zu kalt: [@"^Rooms":temperature:$_ < 20,"keine"])</code><br>
  6500. <br>
  6501. Es soll beim �ffnen eines Fensters eine Meldung ßber alle geÜffneten Fenster erfolgen:<br>
  6502. <br>
  6503. <code>define di_Fenster DOIF (["^Window:open"]) (push "Folgende Fenster: [@"^Window:state:"open"] sind geĂśffnet")</code><br>
  6504. attr di_Fenster do always<br>
  6505. <br>
  6506. Wenn im Wohnzimmer eine Lampe ausgeschaltet wird, sollen alle anderen Lampen im Wohnzimmer ebenfalls ausgeschaltet werden, die noch an sind:<br>
  6507. <br>
  6508. <code>define di_lamp DOIF (["^lamp_livingroom: off"]) (set [@"^lamp_livingroom":state:"on","defaultdummy"] off)<br>
  6509. attr di_lamp DOIF do always</code><br>
  6510. <br>
  6511. Mit der Angabe des Default-Wertes "defaultdummy", wird verhindert, dass der set-Befehl eine Fehlermeldung liefert, wenn die Device-Liste leer ist. Der angegebene Default-Dummy muss zuvor definiert werden.<br>
  6512. <br>
  6513. Fßr reine Perlangaben gibt es eine entsprechende Perlfunktion namens <code>AggrDoIf(&lt;function&gt;,&lt;regex Device&gt;,&lt;reading&gt;,&lt;condition&gt;,&lt;default&gt;)</code> diese liefert bei der Angabe @ ein Array statt einer Stringliste, dadurch lässt sie sich gut bei foreach-Schleifen verwenden.<br>
  6514. <br>
  6515. <u>Beispiele</u><br>
  6516. <br>
  6517. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6518. <code>define di_Fenster DOIF {if (["^Window:open"]) {foreach (AggrDoIf('@','^windows','state','"open"')) {Log3 "di_Fenster",3,"Das Fenster $_ ist noch offen"}}}</code><br>
  6519. <br>
  6520. <code>define di_Temperature DOIF {if (["^room:temperature"]) {foreach (AggrDoIf('@','^room','temperature','$_ < 15')) {Log3 "di_Temperatur",3,"im Zimmer $_ ist zu kalt"}}</code><br>
  6521. <br>
  6522. <a name="DOIF_Zeitsteuerung"></a>
  6523. <b>Zeitsteuerung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6524. <br>
  6525. Zeitangaben in der Bedingung im Format: <code>[HH:MM:SS]</code> oder <code>[HH:MM]</code> oder <code>[Zahl]</code><br>
  6526. <br>
  6527. <u>Anwendungsbeispiele</u>:<br>
  6528. <br>
  6529. Einschalten um 8:00 Uhr, ausschalten um 10:00 Uhr.<br>
  6530. <br>
  6531. <code>define di_light DOIF ([08:00]) (set switch on) DOELSEIF ([10:00]) (set switch off)</code><br>
  6532. <br>
  6533. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6534. <code>define di_light DOIF<br>
  6535. {[08:00];fhem_set"switch on"}<br>
  6536. {[10:00];fhem_set"switch on"}<br>
  6537. </code><br>
  6538. <br>
  6539. Zeitsteuerung mit mehreren Zeitschaltpunkten:<br>
  6540. <br>
  6541. <code>define di_light DOIF ([08:00] or [10:00] or [20:00]) (set switch on) DOELSEIF ([09:00] or [11:00] or [00:00]) (set switch off)</code><br>
  6542. <br>
  6543. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6544. <code>define di_light DOIF<br>
  6545. {if ([08:00] or [10:00] or [20:00]) {fhem_set"switch on"}}<br>
  6546. {if ([09:00] or [11:00] or [00:00]) {fhem_set"switch off"}}</code><br>
  6547. <br>
  6548. <a name="DOIF_Relative_Zeitangaben"></a>
  6549. <b>Relative Zeitangaben</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6550. <br>
  6551. Zeitangaben, die mit Pluszeichen beginnen, werden relativ behandelt, d. h. die angegebene Zeit wird zum aktuellen Zeitpunkt hinzuaddiert.<br>
  6552. <br>
  6553. <u>Anwendungsbeispiel</u>: Automatisches Speichern der Konfiguration im Stundentakt:<br>
  6554. <br>
  6555. <code>define di_save DOIF ([+01:00]) (save)<br>
  6556. attr di_save do always</code><br>
  6557. <br>
  6558. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6559. <code>define di_save DOIF {[+01:00];fhem"save"}</code><br>
  6560. <br>
  6561. Ebenfalls lassen sich relative Angaben in Sekunden angeben. [+01:00] entspricht [+3600];
  6562. <br>
  6563. <a name="DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet"></a>
  6564. <b>Zeitangaben nach Zeitraster ausgerichtet</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6565. <br>
  6566. Das Format lautet: [:MM] MM sind Minutenangaben zwischen 00 und 59.<br>
  6567. <br>
  6568. <u>Anwendungsbeispiel</u>: Viertelstunden-Gong<br>
  6569. <br>
  6570. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6571. <code>define di_gong DOIF<br>
  6572. {[:00];system"mplayer /opt/fhem/Sound/BigBen_00.mp3 -volume 90 �really�quiet &"}<br>
  6573. {[:15];system"mplayer /opt/fhem/Sound/BigBen_15.mp3 -volume 90 �really�quiet &"}<br>
  6574. {[:30];system"mplayer /opt/fhem/Sound/BigBen_30.mp3 -volume 90 �really�quiet &"}<br>
  6575. {[:45];system"mplayer /opt/fhem/Sound/BigBen_45.mp3 -volume 90 �really�quiet &"}</code><br>
  6576. <br>
  6577. <a name="DOIF_Relative_Zeitangaben_nach_Zeitraster_ausgerichtet"></a>
  6578. <b>Relative Zeitangaben nach Zeitraster ausgerichtet</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6579. <br>
  6580. Das Format lautet: [+:MM] MM sind Minutenangaben zwischen 1 und 59.<br>
  6581. <br>
  6582. <u>Anwendungsbeispiel</u>: Gong alle fĂźnfzehn Minuten um XX:00 XX:15 XX:30 XX:45<br>
  6583. <br>
  6584. <code>define di_gong DOIF ([+:15]) (set Gong_mp3 playTone 1)<br>
  6585. attr di_gong do always</code><br>
  6586. <br>
  6587. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6588. <code>define di_gong DOIF {[+:15];fhem_set"Gong_mp3 playTone 1"}</code><br>
  6589. <br>
  6590. <a name="DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet_alle_X_Stunden"></a>
  6591. <b>Zeitangaben nach Zeitraster ausgerichtet alle X Stunden</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6592. <br>
  6593. Format: [+[h]:MM] mit: h sind Stundenangaben zwischen 2 und 23 und MM Minuten zwischen 00 und 59<br>
  6594. <br>
  6595. <u>Anwendungsbeispiel</u>: Es soll immer fĂźnf Minuten nach einer vollen Stunde alle 2 Stunden eine Pumpe eingeschaltet werden, die Schaltzeiten sind 00:05, 02:05, 04:05 usw.<br>
  6596. <br>
  6597. <code>define di_gong DOIF ([+[2]:05]) (set pump on-for-timer 300)<br>
  6598. attr di_gong do always</code><br>
  6599. <br>
  6600. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6601. <code>define di_gong DOIF {[+[2]:05];fhem_set"pump on-for-timer 300"}</code><br>
  6602. <br>
  6603. <a name="DOIF_Wochentagsteuerung"></a>
  6604. <b>Wochentagsteuerung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6605. <br>
  6606. Hinter der Zeitangabe kann ein oder mehrere Wochentage getrennt mit einem Pipezeichen | angegeben werden. Die Syntax lautet:<br>
  6607. <br>
  6608. <code>[&lt;time&gt;|012345678]</code> 0-8 entspricht: 0-Sonntag, 1-Montag, ... bis 6-Samstag sowie 7 fĂźr Wochenende und Feiertage (entspricht $we) und 8 fĂźr Arbeitstage (entspricht !$we)<br>
  6609. <br>
  6610. alternativ mit Buchstaben-KĂźrzeln:<br>
  6611. <br>
  6612. <code>[&lt;time&gt;|So Mo Di Mi Do Fr Sa WE AT]</code> WE entspricht der Ziffer 7 und AT der Ziffer 8<br>
  6613. <br>
  6614. <a name="DOIF_weekdays"></a>
  6615. <a name="weekdays"></a>
  6616. Mit Hilfe des Attributes <code>weekdays</code> kĂśnnen beliebige Wochentagbezeichnungen definiert werden. Die Syntax lautet:<br>
  6617. <br>
  6618. <code>weekdays &lt;Bezeichnung fĂźr Sonntag&gt;,&lt;Bezeichnung fĂźr Montag&gt;,...,&lt;Bezeichnung fĂźr Wochenende&gt;,&lt;Bezeichnung fĂźr Arbeitstage&gt;</code><br>
  6619. <br>
  6620. Beispiel: <code>di_mydoif attr weekdays Son,Mon,Die,Mit,Don,Fre,Sam,Wochenende,Arbeitstag</code><br>
  6621. <br>
  6622. <u>Anwendungsbeispiel</u>: Radio soll am Wochenende und an Feiertagen um 08:30 Uhr eingeschaltet und um 09:30 Uhr ausgeschaltet werden. Am Montag und Mittwoch soll das Radio um 06:30 Uhr eingeschaltet und um 07:30 Uhr ausgeschaltet werden. Hier mit englischen Bezeichnern:<br>
  6623. <br>
  6624. <code>define di_radio DOIF ([06:30|Mo We] or [08:30|WE]) (set radio on) DOELSEIF ([07:30|Mo We] or [09:30|WE]) (set radio off)</code><br>
  6625. <code>attr di_radio weekdays Su,Mo,Tu,We,Th,Fr,Sa,WE,WD</code><br>
  6626. <br>
  6627. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6628. <code>define di_radio DOIF<br>
  6629. {if ([06:30|Mo We] or [08:30|WE]) {fhem_set"radio on"}}<br>
  6630. {if ([07:30|Mo We] or [09:30|WE]) {fhem_set"radio off"}}</code><br>
  6631. <code>attr di_radio weekdays Su,Mo,Tu,We,Th,Fr,Sa,WE,WD</code><br>
  6632. <br>
  6633. Bemerkung: Es ist unerheblich wie die definierten Wochenttagbezeichner beim Timer angegeben werden. Sie kĂśnnen mit beliebigen Trennzeichen oder ohne Trennzeichen direkt aneinander angegeben werden.<br>
  6634. <br>
  6635. Anstatt einer direkten Wochentagangabe, kann ein Status oder Reading in eckigen Klammern angegeben werden. Dieser muss zum Triggerzeitpunkt mit der gewĂźnschten Angabe fĂźr Wochentage, wie oben definiert, belegt sein.<br>
  6636. <br>
  6637. <u>Anwendungsbeispiel</u>: Der Wochentag soll Ăźber einen Dummy bestimmt werden.<br>
  6638. <br>
  6639. <code>define dummy myweekday<br>
  6640. set myweekday monday wednesday thursday weekend<br>
  6641. <br>
  6642. define di_radio DOIF ([06:30|[myweekday]]) (set radio on) DOELSEIF ([07:30|[myweekday]]) (set radio off)<br>
  6643. attr di_radio weekdays sunday,monday,thuesday,wednesday,thursday,friday,saturday,weekend,workdays</code><br>
  6644. <br>
  6645. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6646. <code>define di_radio DOIF<br>
  6647. {[06:30|[myweekday]];fhem_set"radio on"}<br>
  6648. {[07:30|[myweekday]];fhem_set"radio off"}<br><br>
  6649. attr di_radio weekdays sunday,monday,thuesday,wednesday,thursday,friday,saturday,weekend,workdays</code><br>
  6650. <br>
  6651. <a name="DOIF_Zeitsteuerung_mit_Zeitintervallen"></a>
  6652. <b>Zeitsteuerung mit Zeitintervallen</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6653. <br>
  6654. Zeitintervalle werden im Format angegeben: <code>[&lt;begin&gt;-&lt;end&gt;]</code>,
  6655. fĂźr <code>&lt;begin&gt;</code> bzw. <code>&lt;end&gt;</code> wird das gleiche Zeitformat verwendet,
  6656. wie bei einzelnen Zeitangaben. Getriggert wird das Modul zum Zeitpunkt <code>&lt;begin&gt;</code> und zum Zeitpunkt <code>&lt;end&gt;</code>.
  6657. Soll ein Zeitintervall ohne Zeittrigger lediglich zur Abfrage dienen, so muss hinter der eckigen Klammer ein Fragezeichen angegeben werden (siehe Beispiele weiter unten).
  6658. Das Zeitintervall ist als logischer Ausdruck ab dem Zeitpunkt <code>&lt;begin&gt;</code> wahr und ab dem Zeitpunkt <code>&lt;end&gt;</code> nicht mehr wahr.<br>
  6659. <br>
  6660. <u>Anwendungsbeispiele</u>:<br>
  6661. <br>
  6662. Radio soll zwischen 8:00 und 10:00 Uhr an sein:<br>
  6663. <br>
  6664. <code>define di_radio DOIF ([08:00-10:00]) (set radio on) DOELSE (set radio off) </code><br>
  6665. <br>
  6666. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6667. <code>define di_radio DOIF {if ([08:00-10:00]) {fhem_set"radio on"} else {fhem_set"radio off"}}</code><br>
  6668. <br>
  6669. mit mehreren Zeitintervallen:<br>
  6670. <br>
  6671. <code>define di_radio DOIF ([08:00-10:00] or [20:00-22:00]) (set radio on) DOELSE (set radio off) </code><br>
  6672. <br>
  6673. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6674. <code>define di_radio DOIF {if ([08:00-10:00] or [20:00-22:00]) {fhem_set"radio on"} else {fhem_set"radio off"}}</code><br>
  6675. <br>
  6676. Nur montags, mittwochs und freitags:<br>
  6677. <br>
  6678. <code>define di_radio DOIF ([08:00-10:00|135]) (set radio on) DOELSE (set radio off) </code><br>
  6679. <br>
  6680. Nur am Wochenende bzw. an Feiertagen lt. holiday-Datei (7 entspricht $we):<br>
  6681. <br>
  6682. <code>define di_radio DOIF ([08:00-10:00|7]) (set radio on) DOELSE (set radio off) </code><br>
  6683. <br>
  6684. Zeitintervalle Ăźber Mitternacht:<br>
  6685. <br>
  6686. <code>define di_light DOIF ([22:00-07:00]) (set light on) DOELSE (set light off) </code><br>
  6687. <br>
  6688. in Verbindung mit Wochentagen (einschalten am Freitag ausschalten am Folgetag):<br>
  6689. <br>
  6690. <code>define di_light DOIF ([22:00-07:00|5]) (set light on) DOELSE (set light off) </code><br>
  6691. <br>
  6692. Zeitintervalle Ăźber mehrere Tage mĂźssen als Zeitpunkte angegeben werden.<br>
  6693. <br>
  6694. Einschalten am Freitag ausschalten am Montag:<br>
  6695. <br>
  6696. <code>define di_light DOIF ([22:00|5]) (set light on) DOELSEIF ([10:00|1]) (set light off) </code><br>
  6697. <br>
  6698. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6699. <code>define di_light DOIF<br>
  6700. {[22:00|5];fhem_set"light on"}<br>
  6701. {[10:00|1];fhem_set"light off"}</code><br>
  6702. <br>
  6703. Schalten mit Zeitfunktionen, hier: bei Sonnenaufgang und Sonnenuntergang:<br>
  6704. <br>
  6705. <code>define di_light DOIF ([{sunrise(900,"06:00","08:00")}]) (set outdoorlight off) DOELSEIF ([{sunset(900,"17:00","21:00")}]) (set outdoorlight on)</code><br>
  6706. <br>
  6707. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6708. <code>define di_light DOIF<br>
  6709. {[{sunrise(900,"06:00","08:00")}];fhem_set"outdoorlight off"}<br>
  6710. {[{sunset(900,"17:00","21:00")}];fhem_set"outdoorlight on"}</code><br>
  6711. <br>
  6712. <a name="DOIF_Indirekten_Zeitangaben"></a>
  6713. <b>Indirekten Zeitangaben</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6714. <br>
  6715. Oft mÜchte man keine festen Zeiten im Modul angeben, sondern Zeiten, die man z. B. ßber Dummys ßber die Weboberfläche verändern kann.
  6716. Statt fester Zeitangaben kĂśnnen Status, Readings oder Internals angegeben werden. Diese mĂźssen eine Zeitangabe im Format HH:MM oder HH:MM:SS oder eine Zahl beinhalten.<br>
  6717. <br>
  6718. <u>Anwendungsbeispiel</u>: Lampe soll zu einer bestimmten Zeit eingeschaltet werden. Die Zeit soll Ăźber den Dummy <code>time</code> einstellbar sein:<br>
  6719. <br>
  6720. <code>define time dummy<br>
  6721. set time 08:00<br>
  6722. <br>
  6723. define di_time DOIF ([[time]])(set lamp on)<br>
  6724. attr di_time do always</code><br>
  6725. <br>
  6726. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6727. <code>define di_time DOIF {[[time]];fhem_set"lamp on"}</code><br>
  6728. <br>
  6729. Die indirekte Angabe kann ebenfalls mit einer Zeitfunktion belegt werden. Z. B. <br>
  6730. <br>
  6731. <code>set time {sunset()}</code><br>
  6732. <br>
  6733. Das Dummy kann auch mit einer Sekundenzahl belegt werden, oder als relative Zeit angegeben werden, hier z. B. schalten alle 300 Sekunden:<br>
  6734. <br>
  6735. <code>define time dummy<br>
  6736. set time 300<br>
  6737. <br>
  6738. define di_time DOIF ([+[time]])(save)<br>
  6739. attr di_time do always</code><br>
  6740. <br>
  6741. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6742. <code>define di_time DOIF {[+[time]];fhem"save"}</code><br>
  6743. <br>
  6744. Ebenfalls funktionieren indirekte Zeitangaben mit Zeitintervallen. Hier wird die Ein- und Ausschaltzeit jeweils Ăźber einen Dummy bestimmt:<br>
  6745. <br>
  6746. <code>define begin dummy<br>
  6747. set begin 08:00<br>
  6748. <br>
  6749. define end dummy<br>
  6750. set end 10:00<br>
  6751. <br>
  6752. define di_time DOIF ([[begin]-[end]]) (set radio on) DOELSE (set radio off)</code><br>
  6753. <br>
  6754. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6755. <code>define di_time DOIF {if([[begin]-[end]]) {fhem_set"radio on"} else {fhem_set"radio off"}}</code><br>
  6756. <br>
  6757. Indirekte Zeitangaben kÜnnen auch als �bergabeparameter fßr Zeitfunktionen, wie z. B. sunset oder sunrise ßbergeben werden:<br>
  6758. <br>
  6759. <code>define di_time DOIF ([{sunrise(0,"[begin]","09:00")}-{sunset(0,"18:00","[end]")}]) (set lamp off) DOELSE (set lamp on) </code><br>
  6760. <br>
  6761. Bei einer �nderung des angegebenen Status oder Readings wird die geänderte Zeit sofort im Modul aktualisiert.<br>
  6762. <br>
  6763. Angabe eines Readings als Zeitangabe. Beispiel: Schalten anhand eines Twilight-Readings:<br>
  6764. <br>
  6765. <code>define di_time DOIF ([[myTwilight:ss_weather]])(set lamp on)</code><br>
  6766. <code>attr di_timer do always</code><br>
  6767. <br>
  6768. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6769. <code>define di_time DOIF {[[myTwilight:ss_weather]];fhem_set"lamp on"}</code><br>
  6770. <br>
  6771. Indirekte Zeitangaben lassen sich mit Wochentagangaben kombinieren, z. B.:<br>
  6772. <br>
  6773. <code>define di_time DOIF ([[begin]-[end]|7]) (set radio on) DOELSE (set radio off)</code><br>
  6774. <br>
  6775. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6776. <code>define di_time DOIF {if ([[begin]-[end]|7]) {fhem_set"radio on"} else {fhem_set"radio off"}}</code><br>
  6777. <br>
  6778. <a name="DOIF_Zeitsteuerung_mit_Zeitberechnung"></a>
  6779. <b>Zeitsteuerung mit Zeitberechnung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6780. <br>
  6781. Zeitberechnungen werden innerhalb der eckigen Klammern zusätzlich in runde Klammern gesetzt. Die berechneten Triggerzeiten kÜnnen absolut oder relativ mit einem Pluszeichen vor den runden Klammern angegeben werden.
  6782. Es kĂśnnen beliebige AusdrĂźcke der Form HH:MM und Angaben in Sekunden als ganze Zahl in Perl-Rechenoperationen kombiniert werden.
  6783. Perlfunktionen, wie z. B. sunset(), die eine Zeitangabe in HH:MM liefern, werden in geschweifte Klammern gesetzt.
  6784. Zeiten im Format HH:MM bzw. Status oder Readings, die Zeitangaben in dieser Form beinhalten werden in eckige Klammern gesetzt.<br>
  6785. <br>
  6786. <u>Anwendungsbeispiele</u>:<br>
  6787. <br>
  6788. Lampe wird nach Sonnenuntergang zwischen 900 und 1500 (900+600) Sekunden zufällig zeitverzÜgert eingeschaltet. Ausgeschaltet wird die Lampe nach 23:00 Uhr um bis zu 600 Sekunden zufällig verzÜgert:<br>
  6789. <br>
  6790. <code>define di_light DOIF ([({sunset()}+900+int(rand(600)))])<br>
  6791. <ol>(set lamp on)</ol>
  6792. DOELSEIF ([([23:00]+int(rand(600)))])<br>
  6793. <ol>(set lamp off) </ol></code>
  6794. <br>
  6795. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6796. <code>define di_light DOIF<br>
  6797. {[({sunset()}+900+int(rand(600)))];fhem_set"lamp on"}<br>
  6798. {[([23:00]+int(rand(600)))];;fhem_set"lamp off"}<br>
  6799. </code><br>
  6800. <br>
  6801. Zeitberechnung kĂśnnen ebenfalls in Zeitintervallen genutzt werden.<br>
  6802. <br>
  6803. Licht soll eine Stunde vor gegebener Zeit eingeschaltet werden und eine Stunde danach wieder ausgehen:<br>
  6804. <br>
  6805. <code>define Fixtime dummy<br>
  6806. set Fixtime 20:00<br>
  6807. <br>
  6808. define di_light DOIF ([([Fixtime]-[01:00]) - ([Fixtime]+[01:00])])<br>
  6809. <ol>(set lampe on)</ol>
  6810. DOELSE<br>
  6811. <ol>(set lampe off)</ol>
  6812. </code>
  6813. <br>
  6814. Hier das Gleiche wie oben, zusätzlich mit ZufallsverzÜgerung von 300 Sekunden und nur an Wochenenden:<br>
  6815. <br>
  6816. <code>define di_light DOIF ([([Fixtime]-[01:00]-int(rand(300))) - ([Fixtime]+[01:00]+int(rand(300)))]|7])<br>
  6817. <ol>(set lampe on)</ol>
  6818. DOELSE<br>
  6819. <ol>(set lampe off)</ol>
  6820. </code>
  6821. <br>
  6822. Ein �nderung des Dummys Fixtime z. B. durch "set Fixtime ...", fßhrt zur sofortiger Neuberechnung der Timer im DOIF-Modul.<br>
  6823. <br>
  6824. FĂźr die Zeitberechnung wird der Perlinterpreter benutzt, daher sind fĂźr die Berechnung der Zeit keine Grenzen gesetzt.<br>
  6825. <br>
  6826. <a name="DOIF_Intervall-Timer"></a>
  6827. <b>Intervall-Timer</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6828. <br>
  6829. Syntax:<br>
  6830. <br>
  6831. [<code>&lt;begin&gt-&lt;end&gt,&lt;relative timer&gt]</code><br>
  6832. <br>
  6833. Innerhalb des definierten Zeitintervalls, triggert der definierte Timer. Au�erhalb des Zeitintervall wird kein Timer gesetzt.<br>
  6834. <br>
  6835. <u>Anwendungsbeispiel</u>: Zwischen 08:00 und 22:00 Uhr soll eine Pumpe jede halbe Stunde fĂźr fĂźnf Minuten eingeschaltet werden:<br>
  6836. <br>
  6837. <code>define di_pump DOIF ([08:00-22:00,+:30])(set pump on-for-timer 300)<br>
  6838. attr di_pump do always </code><br>
  6839. <br>
  6840. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6841. <code>define di_pump DOIF {[08:00-22:00,+:30];fhem_set"pump on-for-timer 300"}</code><br>
  6842. <br>
  6843. Es wird um 08:00, 08:30, 09:00, ..., 21:30 Uhr die Anweisung ausgefĂźhrt. Um 22:00 wird das letzte Mal getriggert, das Zeitintervall ist zu diesem Zeitpunkt nicht mehr wahr.<br>
  6844. <br>
  6845. Es lassen sich ebenso indirekte Timer, Timer-Funktionen, Zeitberechnungen sowie Wochentage miteinander kombinieren.<br>
  6846. <br>
  6847. <code>define di_rand_lamp DOIF ([{sunset()}-[end:state],+(rand(600)+900)|Sa So])(set lamp on-for-timer 300)<br>
  6848. attr di_rand_lamp do always</code><br>
  6849. <br>
  6850. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6851. <code>define di_rand_lamp DOIF {[{sunset()}-[end:state],+(rand(600)+900)|Sa So];fhem_set"lamp on-for-timer 300"}</code><br>
  6852. <br>
  6853. <a name="DOIF_Kombination_von_Ereignis_und_Zeitsteuerung_mit_logischen_Abfragen"></a>
  6854. <b>Kombination von Ereignis- und Zeitsteuerung mit logischen Abfragen</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6855. <br>
  6856. <u>Anwendungsbeispiel</u>: Lampe soll ab 6:00 Uhr angehen, wenn es dunkel ist und wieder ausgehen, wenn es hell wird, spätestens aber um 9:00 Uhr:<br>
  6857. <br>
  6858. <code>define di_lamp DOIF ([06:00-09:00] and [sensor:brightness] &lt; 40) (set lamp on) DOELSE (set lamp off)</code><br>
  6859. <br>
  6860. <u>Anwendungsbeispiel</u>: Rollläden sollen an Arbeitstagen nach 6:25 Uhr hochfahren, wenn es hell wird, am Wochenende erst um 9:00 Uhr, herunter sollen sie wieder, wenn es dunkel wird:<br>
  6861. <br>
  6862. <code>define di_shutters DOIF ([sensor:brightness]&gt;100 and [06:25-09:00|8] or [09:00|7]) (set shutters up) DOELSEIF ([sensor:brightness]&lt;50) (set shutters down)</code><br>
  6863. <br>
  6864. <a name="DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger"></a>
  6865. <b>Zeitintervalle, Readings und Status ohne Trigger</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6866. <br>
  6867. Angaben in eckigen Klammern, die mit einem Fragezeichen beginnen, fĂźhren zu keiner Triggerung des Moduls, sie dienen lediglich der Abfrage.<br>
  6868. <br>
  6869. <u>Anwendungsbeispiel</u>: Licht soll zwischen 06:00 und 10:00 angehen, getriggert wird nur durch den Taster nicht um 06:00 bzw. 10:00 Uhr und nicht durch das Device Home<br>
  6870. <br>
  6871. <code>define di_motion DOIF ([?06:00-10:00] and [button] and [?Home] eq "present")(set lamp on-for-timer 600)<br>
  6872. attr di_motion do always</code><br>
  6873. <br>
  6874. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  6875. <code>define di_motion DOIF {if ([?06:00-10:00] and [button] and [?Home] eq "present"){fhem_set"lamp on-for-timer 600"}}</code><br>
  6876. <br>
  6877. <a name="DOIF_Nutzung_von_Readings_Status_oder_Internals_im_Ausfuehrungsteil"></a>
  6878. <b>Nutzung von Readings, Status oder Internals im AusfĂźhrungsteil</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6879. <br>
  6880. <u>Anwendungsbeispiel</u>: Wenn ein Taster betätigt wird, soll Lampe1 mit dem aktuellen Zustand der Lampe2 geschaltet werden:<br>
  6881. <br>
  6882. <code>define di_button DOIF ([button]) (set lamp1 [lamp2])<br>
  6883. attr di_button do always</code><br>
  6884. <br>
  6885. <u>Anwendungsbeispiel</u>: Benachrichtigung beim AuslÜsen eines Alarms durch �ffnen eines Fensters:<br>
  6886. <br>
  6887. <code>define di_pushmsg DOIF ([window] eq "open" and [alarm] eq "armed") (set Pushover msg 'alarm' 'open windows [window:LastDevice]' '' 2 'persistent' 30 3600)</code><br>
  6888. <br>
  6889. <a name="DOIF_Berechnungen_im_Ausfuehrungsteil"></a>
  6890. <b>Berechnungen im AusfĂźhrungsteil</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6891. <br>
  6892. Berechnungen kÜnnen in geschweiften Klammern erfolgen. Aus Kompatibilitätsgrßnden, muss die Berechnung unmittelbar mit einer runden Klammer beginnen.
  6893. Innerhalb der Perlberechnung kĂśnnen Readings, Status oder Internals wie gewohnt in eckigen Klammern angegeben werden.<br>
  6894. <br>
  6895. <u>Anwendungsbeispiel</u>: Es soll ein Vorgabewert aus zwei verschiedenen Readings ermittelt werden und an das set Kommando Ăźbergeben werden:<br>
  6896. <br>
  6897. <code>define di_average DOIF ([08:00]) (set TH_Modul desired {([default:temperature]+[outdoor:temperature])/2})<br>
  6898. attr di_average do always</code><br>
  6899. <br>
  6900. <a name="DOIF_notexist"></a>
  6901. <b>Ersatzwert fĂźr nicht existierende Readings oder Status</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6902. <br>
  6903. <a name="notexist"></a>
  6904. Es kommt immer wieder vor, dass in der Definition des DOIF-Moduls angegebene Readings oder Status zur Laufzeit nicht existieren. Der Wert ist dann leer.
  6905. Bei der Definition von Status oder Readings kann fĂźr diesen Fall ein Vorgabewert oder sogar eine Perlberechnung am Ende des Ausdrucks kommagetrennt angegeben werden.<br>
  6906. <br>
  6907. Syntax:<br>
  6908. <br>
  6909. <code>[&lt;device&gt,&lt;default value&gt;]</code><br>
  6910. oder <br>
  6911. <code>[&lt;device&gt:&lt;reading&gt,&lt;default value&gt;]</code><br>
  6912. <br>
  6913. Beispiele:<br>
  6914. <br>
  6915. <code>
  6916. [lamp,"off"]<br>
  6917. [room:temperatur,20]<br>
  6918. [brightness,3*[myvalue]+2]<br>
  6919. [heating,AttrVal("mydevice","myattr","")]<br>
  6920. [[mytime,"10:00"]]<br>
  6921. </code><br>
  6922. MĂśchte man stattdessen einen bestimmten Wert global fĂźr das gesamte Modul definieren,
  6923. so lässt sich das ßber das Attribut <code>notexist</code> bewerkstelligen. Ein angegebener Default-Wert beim Status oder beim Reading ßbersteuert das "notexist"-Attribut.<br>
  6924. <br>
  6925. Syntax: <code>attr &lt;DOIF-module&gt; notexist "&lt;default value&gt;"</code> <br>
  6926. <br>
  6927. <a name="DOIF_wait"></a>
  6928. <b>VerzĂśgerungen</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6929. <br>
  6930. <a name="wait"></a>
  6931. VerzĂśgerungen fĂźr die AusfĂźhrung von Kommandos werden pro Befehlsfolge Ăźber das Attribut "wait" definiert. Syntax:<br>
  6932. <br>
  6933. <code>attr &lt;DOIF-module&gt; wait &lt;Sekunden fĂźr Befehlsfolge des ersten DO-Falls&gt;:&lt;Sekunden fĂźr Befehlsfolge des zweiten DO-Falls&gt;:...<br></code>
  6934. <br>
  6935. Sollen VerzÜgerungen innerhalb von Befehlsfolgen stattfinden, so mßssen diese Kommandos in eigene Klammern gesetzt werden, das Modul arbeitet dann mit Zwischenzuständen.<br>
  6936. <br>
  6937. Beispiel: Bei einer Befehlssequenz, hier: <code>(set lamp1 on, set lamp2 on)</code>, soll vor dem Schalten von <code>lamp2</code> eine VerzĂśgerung von einer Sekunde stattfinden.
  6938. Die Befehlsfolge muss zunächst mit Hilfe von KlammerblÜcke in eine Befehlssequenz aufgespalten werden: <code>(set lamp1 on)(set lamp2 on)</code>.
  6939. Nun kann mit dem wait-Attribut nicht nur fĂźr den Beginn der Sequenz, sondern fĂźr jeden Klammerblock eine VerzĂśgerung, getrennt mit Komma, definieren werden,
  6940. hier also: <code>wait 0,1</code>. Damit wird <code>lamp1</code> sofort, <code>lamp2</code> eine Sekunde danach geschaltet. Die VerzĂśgerungszeit bezieht sich immer auf den vorherigen Befehl.<br>
  6941. <br>
  6942. Beispieldefinition bei mehreren DO-BlĂścken mit Befehlssequenzen:<br>
  6943. <br>
  6944. <code>DOIF (Bedingung1)<br>
  6945. (set ...) ## erster Befehl der ersten Sequenz soll um eine Sekunde verzĂśgert werden<br>
  6946. (set ...) ## zweiter Befehl der ersten Sequenz soll um 2 Sekunden nach dem ersten Befehl verzĂśgert werden<br>
  6947. DOELSEIF (Bedingung2)<br>
  6948. (set ...) ## erster Befehl der zweiten Sequenz soll um 3 Sekunden verzĂśgert werden<br>
  6949. (set ...) ## zweiter Befehl der zweiten Sequenz soll um 0,5 Sekunden nach dem ersten Befehl verzĂśgert werden<br>
  6950. <br>
  6951. attr &lt;DOIF-module&gt; wait 1,2:3,0.5</code><br>
  6952. <br>
  6953. Das Aufspalten einer kommagetrennten Befehlskette in eine Befehlssequenz, wie im obigen Beispiel, sollte nicht vorgenommen werden, wenn keine VerzĂśgerungen zwischen den Befehlen benĂśtigt werden.
  6954. Denn bei einer Befehlssequenz werden Zwischenzustände cmd1_1, cmd1_2 usw. generiert, die Events erzeugen und damit unnÜtig FHEM-Zeit kosten.<br>
  6955. <br>
  6956. Fßr Kommandos, die nicht verzÜgert werden sollen, werden Sekundenangaben ausgelassen oder auf Null gesetzt. Die VerzÜgerungen werden nur auf Events angewandt und nicht auf Zeitsteuerung. Eine bereits ausgelÜste VerzÜgerung wird zurßckgesetzt, wenn während der Wartezeit ein Kommando eines anderen DO-Falls, ausgelÜst durch ein neues Ereignis, ausgefßhrt werden soll.<br>
  6957. <br>
  6958. Statt Sekundenangaben kĂśnnen ebenfalls Status, Readings in eckigen Klammern, Perl-Funktionen sowie Perl-Berechnung angegeben werden. Dabei werden die Trennzeichen Komma und Doppelpunkt in Klammern geschĂźtzt und gelten dort nicht als Trennzeichen.
  6959. Diese Angaben kĂśnnen ebenfalls bei folgenden Attributen gemacht werden: cmdpause, repeatcmd, repeatsame, waitsame, waitdel<br>
  6960. <br>
  6961. Beispiel:<br>
  6962. <br>
  6963. <code>attr my_doif wait 1:[mydummy:state]*3:rand(600)+100,Attr("mydevice","myattr","")</code><br>
  6964. <br>
  6965. <a name="DOIF_timerWithWait"></a>
  6966. <br>
  6967. <b>VerzĂśgerungen von Timern</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  6968. <br>
  6969. <a name="timerWithWait"></a>
  6970. VerzĂśgerungen kĂśnnen mit Hilfe des Attributs <code>timerWithWait</code> auf Timer ausgeweitet werden.<br>
  6971. <br>
  6972. <u>Anwendungsbeispiel</u>: Lampe soll zufällig nach Sonnenuntergang verzÜgert werden.<br>
  6973. <br>
  6974. <code>define di_rand_sunset DOIF ([{sunset()}])(set lamp on)<br>
  6975. attr di_rand_sunset wait rand(1200)<br>
  6976. attr di_rand_sunset timerWithWait 1<br>
  6977. attr di_rand_sunset do always</code><br>
  6978. <br>
  6979. <u>Anwendungsbeispiel</u>: Benachrichtigung "Waschmaschine fertig", wenn Verbrauch mindestens 5 Minuten unter 2 Watt (Perl-Code wird in geschweifte Klammern gesetzt):<br>
  6980. <br>
  6981. <code>define di_washer DOIF ([power:watt]&lt;2) ({system("wmail washer finished")})<br>
  6982. attr di_washer wait 300</code><br>
  6983. <br>
  6984. Eine erneute Benachrichtigung wird erst wieder ausgelĂśst, wenn zwischendurch der Verbrauch Ăźber 2 Watt angestiegen war.<br>
  6985. <br>
  6986. <u>Anwendungsbeispiel</u>: Rollladen um 20 Minuten zeitverzĂśgert bei Sonne runter- bzw. hochfahren (wenn der Zustand der Sonne wechselt, wird die VerzĂśgerungszeit zurĂźckgesetzt):<br>
  6987. <br>
  6988. <code>define di_shutters DOIF ([Sun] eq "on") (set shutters down) DOELSE (set shutters up) <br>
  6989. attr di_shutters wait 1200:1200</code><br>
  6990. <br>
  6991. <u>Anwendungsbeispiel</u>: Beschattungssteuerung abhängig von der Temperatur. Der Rollladen soll runter von 11:00 Uhr bis Sonnenuntergang, wenn die Temperatur ßber 26 Grad ist. Temperaturschwankungen um 26 Grad werden mit Hilfe des wait-Attributes durch eine 15 minutige VerzÜgerung ausgeglichen. <br>
  6992. <br>
  6993. <code>define di_shutters DOIF ([sensor:temperature] &gt; 26 and [11:00-{sunset_abs()}] (set shutters down) DOELSE (set shutters up)<br>
  6994. attr di_shutters wait 900:900 </code><br>
  6995. <br>
  6996. <u>Anwendungsbeispiel</u>: Belßftung in Kombination mit einem Lichtschalter mit Nachlaufsteuerung. Der Lßfter soll angehen, wenn das Licht mindestens 2 Minuten lang brennt oder die Luftfeuchtigkeit 65 % ßberschreitet, der Lßfter soll ausgehen, drei Minuten nachdem die Luftfeuchtigkeit unter 60 % fällt und das Licht aus ist bzw. das Licht ausgeht und die Luftfeuchtigkeit unter 60% ist. Definitionen lassen sich ßber die Weboberfläche (DEF-Eingabebereich) ßbersichtlich gestalten:<br>
  6997. <br>
  6998. <code>define di_fan DOIF ([light] eq "on")<br>
  6999. <ol>
  7000. (set fan on)<br>
  7001. </ol>
  7002. DOELSEIF ([sensor:humidity]&gt;65)<br>
  7003. <ol>
  7004. (set fan on)<br>
  7005. </ol>
  7006. DOELSEIF ([light] eq "off" and [sensor:humidity]&lt;60)<br> <ol>
  7007. (set fan off)<br>
  7008. </ol>
  7009. <br>
  7010. attr di_fan wait 120:0:180</code><br>
  7011. <br>
  7012. <a name="DOIF_do_resetwait"></a>
  7013. <b>ZurĂźcksetzen des Waittimers fĂźr das gleiche Kommando</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7014. <br>
  7015. Im Gegensatz zu <code>do always</code> wird ein Waittimer mit dem Attribut <code>do resetwait</code> auch dann zurĂźckgesetzt, wenn die gleiche Bedingung wiederholt wahr wird.<br>
  7016. Damit kĂśnnen Ereignisse ausgelĂśst werden, wenn etwas innerhalb einer Zeitspanne nicht passiert.<br>
  7017. Das Attribut <code>do resetwait</code> impliziert eine beliebige Wiederholung wie <code>do always</code>. Diese lässt sich allerdings mit dem Attribut <code>repeatsame</code> einschränken s. u.<br>
  7018. <br>
  7019. <u>Anwendungsbeispiel</u>: Meldung beim Ausbleiben eines Events<br>
  7020. <br>
  7021. <code>define di_push DOIF ([Tempsensor])(set pushmsg "sensor failed again")<br>
  7022. attr di_push wait 1800<br>
  7023. attr di_push do resetwait</code><br>
  7024. <br>
  7025. <a name="DOIF_repeatcmd"></a>
  7026. <b>Wiederholung von BefehlsausfĂźhrung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7027. <br>
  7028. <a name="repeatcmd"></a>
  7029. Wiederholungen der AusfĂźhrung von Kommandos werden pro Befehlsfolge Ăźber das Attribut "repeatcmd" definiert. Syntax:<br>
  7030. <br>
  7031. <code>attr &lt;DOIF-modul&gt; repeatcmd &lt;Sekunden fĂźr Befehlsfolge des ersten DO-Falls&gt;:&lt;Sekunden fĂźr Befehlsfolge des zweiten DO-Falls&gt;:...<br></code>
  7032. <br>
  7033. Statt Sekundenangaben kĂśnnen ebenfalls Status in eckigen Klammen oder Perlbefehle angegeben werden.<br>
  7034. <br>
  7035. Die Wiederholung findet so lange statt, bis der Zustand des Moduls in einen anderen DO-Fall wechselt.<br>
  7036. <br>
  7037. <u>Anwendungsbeispiel</u>: Nach dem Eintreffen des Ereignisses wird die push-Meldung stĂźndlich wiederholt, bis Frost ungleich "on" ist.<br>
  7038. <br>
  7039. <code>define di_push DOIF ([frost] eq "on")(set pushmsg "danger of frost")<br>
  7040. attr di_push repeatcmd 3600</code><br>
  7041. <br>
  7042. Eine Begrenzung der Wiederholungen kann mit dem Attribut repeatsame vorgenommen werden<br>
  7043. <code>attr di_push repeatsame 3</code><br>
  7044. <br>
  7045. Ebenso lässt sich das repeatcmd-Attribut mit Zeitangaben kombinieren.<br>
  7046. <br>
  7047. <u>Anwendungsbeispiel</u>: Wiederholung ab einem Zeitpunkt<br>
  7048. <br>
  7049. <code>define di_alarm_clock DOIF ([08:00])(set alarm_clock on)<br>
  7050. attr di_alarm_clock repeatcmd 300<br>
  7051. attr di_alarm_clock repeatsame 3<br>
  7052. attr di_alarm_clock do always</code><br>
  7053. <br>
  7054. Ab 8:00 Uhr wird 3 mal der Weckton jeweils nach 5 Minuten wiederholt.<br>
  7055. <br>
  7056. <u>Anwendungsbeispiel</u>: Warmwasserzirkulation<br>
  7057. <br>
  7058. <code>define di_pump_circ DOIF ([05:00-22:00])(set pump on)(set pump off) DOELSE (set pump off)<br>
  7059. attr di_pump_circ wait 0,300<br>
  7060. attr di_pump_circ repeatcmd 3600</code><br>
  7061. <br>
  7062. Zwischen 5:00 und 22:00 Uhr läuft die Zirkulationspumpe alle 60 Minuten jeweils 5 Minuten lang.<br>
  7063. <br>
  7064. <u>Anwendungsbeispiel</u>: Anwesenheitssimulation<br>
  7065. <br>
  7066. <code>define di_presence_simulation DOIF ([19:00-00:00])(set lamp on-for-timer {(int(rand(1800)+300))}) DOELSE (set lamp off)<br>
  7067. attr di_presence_simulation repeatcmd rand(3600)+2200</code><br>
  7068. <br>
  7069. <br>
  7070. <a name="DOIF_cmdpause"></a>
  7071. <b>Zwangspause fßr das Ausfßhren eines Kommandos seit der letzten Zustandsänderung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7072. <br>
  7073. <a name="cmdpause"></a>
  7074. Mit dem Attribut <code>cmdpause &lt;Sekunden fßr cmd_1&gt;:&lt;Sekunden fßr cmd_2&gt;:...</code> wird die Zeitspanne in Sekunden angegeben fßr eine Zwangspause seit der letzten Zustandsänderung.
  7075. In der angegebenen Zeitspanne wird ein Kommando nicht ausgefĂźhrt, auch wenn die dazugehĂśrige Bedingung wahr wird.<br>
  7076. <br>
  7077. <u>Anwendungsbeispiel</u>: Meldung Ăźber Frostgefahr alle 60 Minuten<br>
  7078. <br>
  7079. <code>define di_frost DOIF ([outdoor:temperature] < 0) (set pushmsg "danger of frost")<br>
  7080. attr di_frost cmdpause 3600<br>
  7081. attr di_frost do always</code><br>
  7082. <br>
  7083. <a name="DOIF_repeatsame"></a>
  7084. <b>Begrenzung von Wiederholungen eines Kommandos</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7085. <br>
  7086. <a name="repeatsame"></a>
  7087. Mit dem Attribut <code>repeatsame &lt;maximale Anzahl von cmd_1&gt;:&lt;maximale Anzahl von cmd_2&gt;:...</code> wird die maximale Anzahl hintereinander folgenden AusfĂźhrungen festgelegt.<br>
  7088. <br>
  7089. <u>Anwendungsbeispiel</u>: Die Meldung soll maximal dreimal erfolgen mit einer Pause von mindestens 10 Minuten <br>
  7090. <br>
  7091. <code>define di_washer DOIF ([Watt]<2) (set pushmeldung "washer finished")<br>
  7092. attr di_washer repeatsame 3<br>
  7093. attr di_washer cmdpause 600 </code><br>
  7094. <br>
  7095. Das Attribut <code>repeatsame</code> lässt sich mit <code>do always</code> oder <code>do resetwait</code> kombinieren.
  7096. Wenn die maximale Anzahl fĂźr ein Kommando ausgelassen oder auf Null gesetzt wird, so gilt fĂźr dieses Kommando der Defaultwert "einmalige Wiederholung";
  7097. in Kombination mit <code>do always</code> bzw. <code>do resetwait</code> gilt fĂźr dieses Kommando "beliebige Wiederholung".<br>
  7098. <br>
  7099. <u>Anwendungsbeispiel</u>: cmd_1 soll beliebig oft wiederholt werden, cmd_2 maximal zweimal<br>
  7100. <br>
  7101. <code>attr di_repeat repeatsame 0:2<br>
  7102. attr di_repeat do always</code><br>
  7103. <br>
  7104. <a name="DOIF_waitsame"></a>
  7105. <b>AusfĂźhrung eines Kommandos nach einer Wiederholung einer Bedingung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7106. <br>
  7107. <a name="waitsame"></a>
  7108. Mit dem Attribut <code>waitsame &lt;Zeitspanne in Sekunden fĂźr cmd_1&gt;:&lt;Zeitspanne in Sekunden fĂźr das cmd_2&gt;:...</code> wird ein Kommando erst dann ausgefĂźhrt, wenn innerhalb einer definierten Zeitspanne die entsprechende Bedingung zweimal hintereinander wahr wird.<br>
  7109. FĂźr Kommandos, fĂźr die <code>waitsame</code> nicht gelten soll, werden die entsprechenden Sekundenangaben ausgelassen oder auf Null gesetzt.<br>
  7110. <br>
  7111. <u>Anwendungsbeispiel</u>: Rollladen soll hoch, wenn innerhalb einer Zeitspanne von 2 Sekunden ein Taster betätigt wird<br>
  7112. <br>
  7113. <code>define di_shuttersup DOIF ([Button])(set shutters up)<br>
  7114. attr di_shuttersup waitsame 2<br>
  7115. attr di_shuttersup do always</code><br>
  7116. <br>
  7117. <a name="DOIF_waitdel"></a>
  7118. <b>LĂśschen des Waittimers nach einer Wiederholung einer Bedingung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7119. <br>
  7120. <a name="waitdel"></a>
  7121. Das GegenstĂźck zum <code>repeatsame</code>-Attribut ist das Attribut <code>waitdel</code>. Die Syntax mit Sekundenangaben pro Kommando entspricht der, des wait-Attributs. Im Gegensatz zum wait-Attribut, wird ein laufender Timer gelĂśscht, falls eine Bedingung wiederholt wahr wird.
  7122. Sekundenangaben kĂśnnen pro Kommando ausgelassen oder auf Null gesetzt werden.<br>
  7123. <br>
  7124. <u>Anwendungsbeispiel</u>: Rollladen soll herunter, wenn ein Taster innerhalb von zwei Sekunden nicht wiederholt wird<br>
  7125. <br>
  7126. <code>define di_shuttersdown DOIF ([Button])(set shutters down)<br>
  7127. attr di_shuttersdown waitdel 2<br>
  7128. attr di_shuttersdown do always</code><br>
  7129. <br>
  7130. "di_shuttersdown" kann nicht mit dem vorherigen Anwendungsbeispiel "di_shuttersup" innerhalb eines DOIF-Moduls kombiniert werden, da in beiden Fällen die gleiche Bedingung vorkommt.<br>
  7131. <a href="#DOIF_Einknopf_Fernbedienung">siehe auch Einknopf-Fernbedienung im Perl-Modus</a><br>
  7132. <br>
  7133. Die Attribute <code>wait</code> und <code>waitdel</code> lassen sich fĂźr verschiedene Kommandos kombinieren. Falls das Attribut fĂźr ein Kommando nicht gesetzt werden soll, kann die entsprechende Sekundenzahl ausgelassen oder eine Null angegeben werden.<br>
  7134. <br>
  7135. <u>Beispiel</u>: FĂźr cmd_1 soll <code>wait</code> gelten, fĂźr cmd_2 <code>waitdel</code><br>
  7136. <br>
  7137. <code>attr di_cmd wait 2:0<br>
  7138. attr di_cmd waitdel 0:2</code><br>
  7139. <a name="DOIF_checkReadingEvent"></a>
  7140. <br>
  7141. <b>Readingauswertung bei jedem Event des Devices</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7142. <br>
  7143. <a name="checkReadingEvent"></a>
  7144. Bei Angaben der Art <code>[&lt;Device&gt;:&lt;Reading&gt;]</code> wird das Modul getriggert, wenn ein Ereignis zum angegebenen Device und Reading kommt. Soll das Modul, wie bei Statusangaben der Art <code>[&lt;Device&gt;]</code>, auf alle Ereignisse des Devices reagieren, so muss das Attribut auf Null gesetzt werden.<br>
  7145. <br>
  7146. Bemerkung: In frĂźheren Versionen des Moduls war <code>checkReadingEvent 0</code> die Voreinstellung des Moduls. Da die aktuelle Voreinstellung des Moduls <code>checkReadingEvent 1</code> ist, hat das Setzen von
  7147. <code>checkReadingEvent 1</code> keine weitere Funktion mehr.<br>
  7148. <br>
  7149. <a name="DOIF_addStateEvent"></a>
  7150. <b>Eindeutige Statuserkennung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7151. <br>
  7152. <a name="addStateEvent"></a>
  7153. Bei �nderungen des Readings state wird in FHEM standardmä�ig, im Gegensatz zu allen anderen Readings, der Readingname hier: "state: " im Event nicht vorangestellt.
  7154. MÜchte man eindeutig eine Statusänderung eines Moduls erkennen, so lässt sich das mit dem Attribut <code>addStateEvent</code> bewerksteligen.
  7155. Bei Statusänderungen eines Devices wird bei der Angabe des Attributes <code>addStateEvent</code> im Event "state: " vorangestellt, darauf kann man dann gezielt im DOIF-Modul triggern.<br>
  7156. <br>
  7157. <u>Beispiel</u>:<br>
  7158. <br>
  7159. <code>define di_lamp ([FB:"^state: on$"]) (set lamp on)<br>
  7160. attr di_lamp do always<br>
  7161. attr di_lamp addStateEvent</code><br>
  7162. <br>
  7163. <a name="DOIF_selftrigger"></a>
  7164. <b>Triggerung durch selbst ausgelĂśste Events</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7165. <br>
  7166. <a name="selftrigger"></a>
  7167. Standardmä�ig unterbindet das DOIF-Modul Selbsttriggerung. D. h. das Modul reagiert nicht auf Events, die es selbst direkt oder indirekt auslÜst. Dadurch werden Endlosschleifen verhindert.
  7168. Wenn das Attribut <code>selftrigger wait</code> gesetzt ist, kann das DOIF-Modul auf selbst ausgelĂśste Events reagieren. Dazu mĂźssen die entsprchenden Kommandos mit wait verzĂśgert werden.
  7169. Bei der Angabe <code>selftrigger all</code> reagiert das Modul grundsätzlich alle selbst ausgelÜsten Trigger.<br>
  7170. <br>
  7171. Zu beachten ist, dass der Zustand des Moduls erst nach der AusfĂźhrung des Befehls gesetzt wird, dadurch wird die Zustandsverwaltung (ohne do always) ausgehebelt.
  7172. Die Auswertung des eigenen Zustands z. B. Ăźber [$SELF:cmd] funktioniert dagegen korrekt, weil dieser immer bei der eigenen Triggerung bereits gesetzt ist.
  7173. Bei der Verwendung des Attributes <code>selftrigger all</code> sollte beachtet werden, dass bereits in der zweiten Rekursion,
  7174. wenn ein Befehl nicht durch wait verzĂśgert wird, FHEM eine weitere Triggerung unterbindet, um Endlosschleifen zu verhindern.<br>
  7175. <br>
  7176. <a name="DOIF_timerevent"></a>
  7177. <b>Setzen der Timer mit Event</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7178. <br>
  7179. <a name="timerevent"></a>
  7180. Wenn das Attribut <code>timerevent</code> ungleich Null gesetzt ist, wird beim Setzen der Timer im DOIF-Modul ein Event erzeugt. Das kann z. B. bei FHEM2FHEM nĂźtzlich sein, um die Timer-Readings zeitnah zu aktualisieren.<br>
  7181. <br>
  7182. <a name="DOIF_Zeitspanne_eines_Readings_seit_der_letzten_Aenderung"></a>
  7183. <b>Zeitspanne eines Readings seit der letzten �nderung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7184. <br>
  7185. Bei Readingangaben kann die Zeitspanne mit <code>[&lt;Device&gt;:&lt;Reading&gt;:sec]</code> in Sekunden seit der letzten �nderung bestimmt werden.<br>
  7186. <br>
  7187. <u>Anwendungsbeispiel</u>: Licht soll angehen, wenn der Status des Bewegungsmelders in den letzten fĂźnf Sekunden upgedatet wurde.<br>
  7188. <br>
  7189. <code>define di_lamp DOIF ([BM:state:sec] < 5) (set lamp on-for-timer 300)<br>
  7190. attr di_lamp do always</code><br>
  7191. <br>
  7192. Bei HM-Bewegungsmelder werden periodisch Readings aktualisiert, dadurch wird das Modul getrigger, auch wenn keine Bewegung stattgefunden hat.
  7193. Der Status bleibt dabei auf "motion". Mit der obigen Abfrage lässt sich feststellen, ob der Status aufgrund einer Bewegung tatsächlich upgedatet wurde.<br>
  7194. <br>
  7195. <a name="DOIF_checkall"></a>
  7196. <b>Alle Bedingungen prĂźfen</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7197. <br>
  7198. <a name="checkall"></a>
  7199. Bei der Abarbeitung der Bedingungen, werden nur die Bedingungen ĂźberprĂźft,
  7200. die zum ausgelÜsten Event das dazughÜrige Device bzw. die dazugehÜrige Triggerzeit beinhalten. Mit dem Attribut <b>checkall</b> lässt sich das Verhalten so verändern,
  7201. dass bei einem Event-Trigger auch Bedingungen geprĂźft werden, die das triggernde Device nicht beinhalten.
  7202. Folgende Parameter kĂśnnen angegeben werden:<br>
  7203. <br>
  7204. <code>checkall event</code> Es werden alle Bedingungen geprĂźft, wenn ein Event-Trigger auslĂśst.<br>
  7205. <code>checkall timer</code> Es werden alle Bedingungen geprĂźft, wenn ein Timer-Trigger auslĂśst.<br>
  7206. <code>checkall all&nbsp;&nbsp;</code> Es werden grundsätzlich alle Bedingungen geprßft.<br>
  7207. <br>
  7208. Zu beachten ist, dass bei einer wahren Bedingung die dazugehĂśrigen Befehle ausgefĂźhrt werden und die Abarbeitung immer beendet wird -
  7209. es wird also grundsätzlich immer nur ein Befehlszweig ausgefßhrt und niemals mehrere.<br>
  7210. <br>
  7211. <a name="DOIF_setList__readingList"></a>
  7212. <b>Darstellungselement mit EingabemĂśglichkeit im Frontend und Schaltfunktion</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7213. <br>
  7214. <a name="setList"></a>
  7215. Die unter <i>Dummy</i> beschriebenen Attribute <i>readingList</i> und <i>setList</i> stehen auch im DOIF zur Verf&uuml;gung. Damit wird erreicht, dass DOIF im WEB-Frontend als Eingabeelement mit Schaltfunktion dienen kann. Zus&auml;tzliche Dummys sind nicht mehr erforderlich. Es k&ouml;nnen im Attribut <i>setList</i>, die in <i>FHEMWEB</i> angegebenen Modifier des Attributs <i>widgetOverride</i> verwendet werden.<br>
  7216. <br>
  7217. <u>Anwendungsbeispiel</u>: Eine Schaltuhr mit time-Widget f&uuml;r die Ein- u. Ausschaltzeiten und der M&ouml;glichkeit &uuml;ber eine Auswahlliste manuell ein und aus zu schalten.<br>
  7218. <br>
  7219. <code>
  7220. define time_switch DOIF (["$SELF:mybutton: on"] or [[$SELF:mybegin,"00:00"]])
  7221. <ol>(set lamp on)</ol>
  7222. DOELSEIF (["$SELF:mybutton: off"] or [[$SELF:myend,"00:00"]])
  7223. <ol>(set lamp off)</ol>
  7224. <br>
  7225. attr time_switch cmdState on|off<br>
  7226. attr time_switch readingList mybutton mybegin myend<br>
  7227. attr time_switch setList mybutton:on,off mybegin:time myend:time<br>
  7228. attr time_switch webCmd mybutton:mybegin:myend
  7229. </code><br>
  7230. <br>
  7231. <u>Anwendungsbeispiel</u>: Ausfßhrung von Befehlen abhängig einer Auswahl ohne Zusatzreading<br>
  7232. <br>
  7233. <code>define di_web DOIF ([$SELF:"myInput first"]) (do something) DOELSEIF ([$SELF:"myInput second"]) (do something else)<br>
  7234. <br>
  7235. attr di_web setList myInput:first,second</code><br>
  7236. <br>
  7237. <u>Links</u><br>
  7238. <a href="#readingList">readingList</a><br>
  7239. <a href="#setList">setList</a><br>
  7240. <a href="#webCmd">webCmd</a><br>
  7241. <a href="#webCmdLabel">webCmdLabel</a><br>
  7242. <a href="#widgetOverride">widgetOverride</a><br>
  7243. <a href="http://www.fhemwiki.de/wiki/DOIF/Ein-_und_Ausgabe_in_FHEMWEB_und_Tablet-UI_am_Beispiel_einer_Schaltuhr">weiterf&uuml;hrendes Beispiel fĂźr Tablet-UI</a><br>
  7244. <a href="#DOIF_Benutzerreadings">benutzerdefinierte Readings</a><br>
  7245. <a href="#DOIF_setcmd">Bedingungsloses Ausf&uuml;hren von Befehlen</a><br>
  7246. <br>
  7247. <a name="DOIF_uiTable"></a>
  7248. <b>uiTable, das User Interface</a></b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7249. <br>
  7250. <a name="uiTable"></a>
  7251. Mit dem Attribut uiTable kann innerhalb eines DOIF-Moduls ein User Interface in Form einer Tabelle erstellt werden. Die Definition der Tabelle wird mit Hilfe von Perl sowie FHEM-Widgets kombiniert mit DOIF-Syntax vorgenommen.<br>
  7252. <br>
  7253. Features:<br>
  7254. <br>
  7255. - pro DOIF eine beliebige UI-Tabelle definierbar<br>
  7256. - alle FHEM-Widgets nutzbar<br>
  7257. - alle FHEM-Icons nutzbar<br>
  7258. - DOIF-Syntax verwendbar<br>
  7259. - alle Devices und Readings in FHEM direkt darstellbar und ansprechbar<br>
  7260. - dynamische Styles (z. B. Temperaturfarbe abhängig vom Temperaturwert)<br>
  7261. - es brauchen keine eigenen CSS- oder js-Dateien definiert werden<br>
  7262. - Nutzung vordefinierter Templates aus Template-Dateien<br>
  7263. <br>
  7264. <b>Aufbau des uiTable-Attributs<br></b>
  7265. <br>
  7266. <code>{<br>
  7267. &lt;Perlblock fĂźr Definition von Template-Attributen, Zellenformatierungen, eigenen Perlfunktionen&gt;<br>
  7268. }<br>
  7269. <br>
  7270. &lt;Template-Methoden&gt;<br>
  7271. <br>
  7272. &lt;Tabellendefinition&gt;<br>
  7273. <br></code>
  7274. <br>
  7275. Der Perlblock ist optional. Er wird in geschweiften Klammern mit wenigen Ausnahmen in Perl definiert. Hier kĂśnnen Template-Attribute fĂźr Zeichenketten, das Layout der Tabelle Ăźber HMTL-Zellenformatierungen sowie eigene Perlfunktionen definiert werden.
  7276. Im Anschlu� an den Perlblock kÜnnen optional Template-Methoden definiert werden, um komplexere wiederverwendbare Widget-Definitionen zu formulieren. Diese werden in der Tabellendefinition benutzt.
  7277. Die eigentliche Tabellendefinition wird Ăźber die Definition von Zellen vorgenommen. Zellen werden mit | voneinander abgegrenzt. Kommentare kĂśnnen an beliebiger Stelle beginnend mit ## bis zum Zeilenende eingefĂźgt werden.<br>
  7278. <br>
  7279. <b>Die Tabellendefinition</b><br>
  7280. <br><code>
  7281. &lt;Zellendefinition erste Zeile erste Spalte&gt; | &lt;Zellendefinition erste Zeile zweite Spalte | ... # Definition der ersten Tabellenzeile<br>
  7282. &lt;Zellendefinition zweite Zeile erste Spalte&gt; | &lt;Zellendefinition zweite Zeile zweite Spalte | ... # Definition der zweiten Tabellenzeile<br>
  7283. usw.<br></code>
  7284. <br>
  7285. Endet eine Zeile mit |, so wird deren Definition in der nächsten Zeile fortgesetzt. Dadurch kÜnnen längere Zeilendefinition einer Tabelle auf mehrerer Zeilen aufgeteilt werden.<br>
  7286. <br>
  7287. Eine Zellendefinition kann sein:<br>
  7288. <br>
  7289. 1) <code>&lt;Perlausdruck mit [DOIF-Syntax]&gt;<br></code>
  7290. <br>
  7291. 2) <code>STY(&lt;Perlausdruck mit [DOIF-Syntax]&gt;,&lt;css-Style-Definition mit [DOIF-Syntax]&gt;)<br></code>
  7292. <br>
  7293. 3) <code>WID([&lt;DEVICE&gt;:&lt;READING&gt;],&lt;FHEM-Widget-Definition mit [DOIF-Syntax]&gt;,"&lt;set-/setreading-Kommando optional&gt;")<br></code>
  7294. <br>
  7295. Die oberen Definitionen kĂśnnen innerhalb einer Zelle mit Punkt bzw. Komma beliebig kombiniert werden. Beim Punkt werden die AusdrĂźcke aneinandergereiht, bei Komma werden die AusdrĂźcke mit Zeilenumbruch untereinander innerhalb einer Zelle angeordnet.<br>
  7296. <br>
  7297. Zu 1)<br>
  7298. <br>
  7299. Diese Definition wird verwendet fĂźr: Texte, Inhalte von Readings oder RechenausdrĂźcke. Angaben, die die Zelle aktualisieren sollen, mĂźssen in gewohnte DOIF-Syntax angegeben werden.
  7300. <br>
  7301. Beispiele:<br>
  7302. <br>
  7303. Einfacher Text: <br>
  7304. <br>
  7305. <code>"Status"<br></code>
  7306. <br>
  7307. Reading:<br>
  7308. <br>
  7309. <code>[outdoor:temperature]<br></code>
  7310. <br>
  7311. Berechnung:<br>
  7312. <br>
  7313. <code>([livingroom:temperature]+[kitchen:temperature])/2<br></code>
  7314. <br>
  7315. Perlfunktion:<br>
  7316. <br>
  7317. <code>min([livingroom:temperature],[ktichen:temperature])<br></code>
  7318. <br>
  7319. Mehrere Angaben einer Zelle kĂśnnen mit einem Punkt, wie auch in Perl bei Zeichenketten Ăźblich, konkateniert werden:<br>
  7320. <br>
  7321. <code>"Temperature: ".[outdoor:temperatur]<br></code>
  7322. <br>
  7323. <code>"Die maximale Temperatur der Kinderzimmer beträgt: ".max([child1:temperature],[child2:temperature])<br></code>
  7324. <br>
  7325. Zu 2)<br>
  7326. <br>
  7327. �ber die Funktion STY werden Angaben mit Formatierungen ßber das CSS-Style-Attribut vorgenommen.<br>
  7328. <br>
  7329. Beispiele:<br>
  7330. <br>
  7331. Formatierter Text:<br>
  7332. <br>
  7333. <code>STY("diningroom","font-weight:bold;font-size:16pt;color:#0000FF")<br></code>
  7334. <br>
  7335. Formatiertes Reading:<br>
  7336. <br>
  7337. <code>STY([fridge:temperature],"color:#0000FF")<br></code>
  7338. <br>
  7339. Formatiertes Reading mit dynamischer Farbgebung abhängig von der Temperatur<br>
  7340. <br>
  7341. <code>STY([basement:humidity],"color:".DOIF_hsv([basement:humidity],50,75,40,264,60,90))<br></code>
  7342. <br>
  7343. DOIF_hsv ist eine DOIF-Funktion, bei der man den Farbverlauf definieren kann.<br>
  7344. <br>
  7345. Syntax fĂźr die DOIF_hsv Funktion:<br>
  7346. <br>
  7347. <code>DOIF_hsv(&lt;value&gt;,&lt;min_value&gt;,&lt;max_value&gt;,&lt;min_hsv&gt;,&lt;max_hsv&gt;,&lt;saturation&gt;,&lt;lightness&gt;)<br></code>
  7348. <br>
  7349. Es wird durch eine feste Vorgabe von saturation und lightness, linear ein Farbton (Hue) fĂźr value errechnet, dabei entspricht min_value min_hsv und max_value max_hsv.<br>
  7350. <br>
  7351. Die gewĂźnschten Werte fĂźr &lt;min_hsv&gt;,&lt;max_hsv&gt;,&lt;saturation&gt;,&lt;lightness&gt; kĂśnnen mit Hilfe eines Color-Pickers bestimmt werden.<br>
  7352. <br>
  7353. Weiterhin lässt sich ebenfalls jede andere Perlfunktion verwenden, die eine beliebige css-Style-Formatierung vornimmt.<br>
  7354. <br>
  7355. Zu 3)<br>
  7356. <br>
  7357. �ber die Funktion WID werden FHEM-Widgets definiert. Es kÜnnen alle in FHEM vorhanden FHEM-Widgets verwendet werden.<br>
  7358. <br>
  7359. Beispiele:<br>
  7360. <br>
  7361. Brennericon<br>
  7362. <br>
  7363. <code>WID([burner:state],"iconLabel,closed,sani_boiler_temp\@DarkOrange,open,sani_boiler_temp")<br></code>
  7364. <br>
  7365. Die Widget-Definition entspricht der Syntax der FHEM-Widgets.<br>
  7366. <br>
  7367. Thermostatdefinition mit Hilfe des knob-Widgets:<br>
  7368. <br>
  7369. <code>WID([TH_Bathroom_HM:desired-temp],"knob,min:17,max:25,width:45,height:40,step:0.5,fgColor:DarkOrange,bgcolor:grey,anglearc:270,angleOffset:225,cursor:10,thickness:.3","set")<br></code>
  7370. <br>
  7371. <b>Der Perlblock: Definition von Template-Attributen, Zellenformatierungen und Perl-Funktionen<br></b>
  7372. <br>
  7373. Im ersten Bereich werden sog. Template-Attribute als Variablen definiert, um wiederholende Zeichenketten in Kurzform anzugeben. Template-Attribute werden intern als hash-Variablen abgelegt. Die Syntax entspricht weitgehend der Perl-Syntax.<br>
  7374. <br>
  7375. Die Syntax lautet:<br>
  7376. <br>
  7377. <code>$TPL{&lt;name&gt;}=&lt;Perlsyntax fĂźr Zeichenketten&gt;<br></code>
  7378. <br>
  7379. <code>&lt;name&gt;</code> ist beliebig wählbar. <br>
  7380. <br>
  7381. Bsp.<br>
  7382. <code>$TPL{HKnob}="knob,min:17,max:25,width:45,height:40,step:0.5,fgColor:DarkOrange,bgcolor:grey,anglearc:270,angleOffset:225,cursor:10,thickness:.3";<br></code>
  7383. <br>
  7384. Damit wĂźrde die obige Beispiel-Definition des Thermostat-Widgets wie folgt aussehen:<br>
  7385. <br>
  7386. <code>WID([TH_Bad_HM:desired-temp],$TPL{HKnob},"set")<br></code>
  7387. <br>
  7388. Weiterhin kĂśnnen die Tabelle, einzelne Zellen-, Zeilen- oder Spaltenformatierungen definiert werden, dazu werden folgende Bezeichner benutzt:<br>
  7389. <br>
  7390. <code>$TABLE="&lt;CSS-Attribute&gt;"<br>
  7391. $TD{&lt;Zellenbereich fĂźr Zeilen&gt;}{&lt;Zellenbereich fĂźr Spalten&gt;}="&lt;CSS-Attribute der Zellen&gt;"<br>
  7392. $TC{&lt;Zellenbereich fĂźr Spalten&gt;}="&lt;CSS-Attribute der Spalten&gt;"<br>
  7393. $TR{Zeilenbereich}="&lt;CSS-Attribute der Zeilen&gt;"<br></code>
  7394. <br>
  7395. mit <br>
  7396. <br>
  7397. <code>&lt;Zellen/Spalten/Zeilen-Bereich&gt;: Zahl|kommagetrennte Aufzählung|Bereich von..bis<br></code>
  7398. <br>
  7399. Beispiele:<br>
  7400. <code>
  7401. $TABLE = "width:300px; height:300px; background-image:url(/fhem/www/pgm2/images/Grundriss.png); background-size: 300px 300px;";<br>
  7402. $TD{0}{0} = "style='border-right-style:solid; border-right-width:10px'";<br>
  7403. $TR{0} = "class='odd' style='font-weight:bold'";<br>
  7404. $TC{1..5} = "align='center'";<br>
  7405. $TC{1,3,5} = "align='center'";<br>
  7406. $TC{last} = "style='font-weight:bold'";<br></code>
  7407. <br>
  7408. Es kĂśnnen ebenfalls beliebige Perl-Funktionen definiert werden, die innerhalb der Tabellendefinition genutzt werden kĂśnnen. Sie sollten mit FUNC_ beginnen. Damit wird sichergestellt, dass die Funktionen systemweit eindeutig sind.<br>
  7409. <br>
  7410. Bsp.<br>
  7411. <br>
  7412. Funktion fßr temperaturabhängige Farbgebung<br>
  7413. <br>
  7414. <code>
  7415. sub FUNC_temp<br>
  7416. {<br>
  7417. my ($temp)=@_<br>
  7418. return ("font-weight:bold;font-size:12pt;color:".DOIF_hsv ($temp,15,35,210,360,60,90));<br>
  7419. }<br>
  7420. <br></code>
  7421. <b>Steuerungsattribute<br></b>
  7422. <br>
  7423. Ausblenden des Status in der Devicezeile:<br>
  7424. <br>
  7425. <code>$SHOWNOSTATE=1;</code><br>
  7426. <br>
  7427. Standardmä�ig werden Texte innerhalb der Tabelle, die einem vorhandenen FHEM-Device entsprechen als Link zur Details-Ansicht dargestellt. Soll diese Funktionalität unterbunden werden, so kann man dies ßber folgendes Attribut unterbinden:<br>
  7428. <br>
  7429. <code>$SHOWNODEVICELINK=1;</code><br>
  7430. <br>
  7431. Die Gerätezeile wird ausgeblendet, wenn der "Reguläre Ausdruck" &lt;regex room&gt; zum Raumnamen passt, gilt nicht fßr den Raum <i>Everything</i>.<br>
  7432. <br>
  7433. <code>$SHOWNODEVICELINE = "&lt;regex room&gt;";</code><br>
  7434. <br>
  7435. Die Detailansicht wird umorganisiert, hilfreich beim Editieren längerer uiTable-Definitionen.<br>
  7436. <br>
  7437. <code>$ATTRIBUTESFIRST = 1;</code><br>
  7438. <br>
  7439. <b>Template-Methoden<br></b>
  7440. <br>
  7441. Bei Widgetdefinition, die mehrfach verwendet werden sollen, kĂśnnen Template-Methoden definiert werden. Die Definition beginnt mit dem SchlĂźsselwort <code>DEF</code>. Die Template_Methode muss mit <code>TPL_</code> beginnen.<br>
  7442. <br>
  7443. Syntax<br>
  7444. <br>
  7445. <code>DEF TPL_&lt;name&gt;(&lt;Definition mit Platzhaltern $1,$2 usw.&gt;)<br></code>
  7446. <br>
  7447. <code>&lt;name&gt;</code> ist beliebig wählbar.<br>
  7448. <br>
  7449. In der Tabellendefinition kÜnnen die zuvor definierten Template-Methoden genutzt werden. Die �bergabeparameter werden an Stelle der Platzhalter $1, $2 usw. eingesetzt.<br>
  7450. <br>
  7451. Beispiel<br>
  7452. <br>
  7453. Template-Methoden-Definition:<br>
  7454. <br>
  7455. <code>DEF TPL_Thermostat(WID($1,$TPL{HKnob},"set"))<br></code>
  7456. <br>
  7457. Nutzung der Template-Methode in der Tabellendefinition:<br>
  7458. <br>
  7459. <code>
  7460. "Bathroom" | TPL_Thermostat([TH_Bathroom_HM:desired-temp])<br>
  7461. "Kitchen" | TPL_Thermostat([TH_Kitchen_HM:desired-temp])<br>
  7462. "Livingroom" | TPL_Thermostat([TH_Livingroom_HM:desired-temp])<br></code>
  7463. <br>
  7464. <b>Import von Templates und Funktionen<br></b>
  7465. <br>
  7466. Mit Hilfe des Befehls IMPORT kĂśnnen Definitionen aus Dateien importiert werden. Damit kann der Perlblock sowie Template-Methoden in eine Datei ausgelagert werden. Der Aufbau der Datei entspricht dem des uiTable-Attributes. Tabellendefinitionen selbst kĂśnnen nicht importiert werden.
  7467. Der IMPORT-Befehl kann vor dem Perlblock oder vor dem Tabellendefintionsbereich angegeben werden. Ebenso kĂśnnen mehrere IMPORT-Befehle angegeben werden. Gleiche Definitionen von Funktionen, Templates usw. aus einer IMPORT-Datei Ăźberlagern die zuvor definierten.
  7468. Der IMPORT-Befehl kann ebenfalls innerhalb einer Import-Datei angegeben werden.<br>
  7469. <br>
  7470. Syntax<br>
  7471. <br>
  7472. <code>IMPORT &lt;Pfad mit Dateinamen&gt<br></code>
  7473. <br>
  7474. Bespiel:<br>
  7475. <br>
  7476. in uiTable<br>
  7477. <br>
  7478. <code>IMPORT /fhem/contrib/DOIF/mytemplates.tpl<br>
  7479. <br>
  7480. ## table definition<br>
  7481. <br>
  7482. "outdoor" | TPL_temp([outdoor:temperature])<br>
  7483. <br></code>
  7484. in mytemplates.tpl<br>
  7485. <br>
  7486. <code>## templates and functions<br>
  7487. {<br>
  7488. $TPL{unit}="°C";<br>
  7489. sub FUNC_temp<br>
  7490. {
  7491. my ($temp)=@_;<br>
  7492. return ("height:6px;font-weight:bold;font-size:16pt;color:".DOIF_hsv ($temp,-10,30,210,360,60,90));<br>
  7493. }<br>
  7494. }<br>
  7495. <br>
  7496. ## template methode<br>
  7497. DEF TPL_temp(STY($1.$TPL{unit},FUNC_temp($1)))<br></code>
  7498. <br>
  7499. <u>Links</u><br>
  7500. <a href="https://wiki.fhem.de/wiki/FHEMWEB/Widgets">FHEMWEB-Widgets</a><br>
  7501. <br>
  7502. <a name="DOIF_cmdState"></a>
  7503. <b>Status des Moduls</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7504. <br>
  7505. <a name="cmdState"></a>
  7506. Der Status des Moduls wird standardmä�ig mit cmd_1, cmd_2, usw., bzw. cmd1_1 cmd1_2 usw. fßr Befehlssequenzen belegt. Dieser lässt sich ßber das Attribut "cmdState" mit Komma bzw. | getrennt umdefinieren:<br>
  7507. <br>
  7508. attr &lt;DOIF-modul&gt; cmdState &lt;Status fĂźr cmd1_1&gt;,&lt;Status fĂźr cmd1_2&gt;,...| &lt;Status fĂźr cmd2_1&gt;,&lt;Status fĂźr cmd2_2&gt;,...|...<br>
  7509. <br>
  7510. Beispiele:<br>
  7511. <br>
  7512. <code>attr di_lamp cmdState on|off</code><br>
  7513. <br>
  7514. Pro Status kĂśnnen ebenfalls Status oder Readings in eckigen Klammern oder Perlfunktionen sowie Berechnungen in Klammern der Form {(...)} angegeben werden.<br>
  7515. Die Trennzeichen Komma und | sind in Klammern und AnfĂźhrungszeichen geschĂźtzt und gelten dort nicht als Trennzeichen.<br>
  7516. <br>
  7517. Zustände cmd1_1, cmd1 und cmd2 sollen wie folgt umdefiniert werden:<br>
  7518. <br>
  7519. <code>attr di_mytwilight cmdState [mytwilight:ss_astro], {([mytwilight:twilight_weather]*2+10)}|My attribut is: {(Attr("mydevice","myattr",""))}</code><br>
  7520. <br>
  7521. <a name="DOIF_Reine_Statusanzeige_ohne_Ausfuehrung_von_Befehlen"></a>
  7522. <b>Reine Statusanzeige ohne AusfĂźhrung von Befehlen</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7523. <br>
  7524. Der AusfĂźhrungsteil kann jeweils ausgelassen werden.<br>
  7525. <br>
  7526. <u>Anwendungsbeispiel</u>: Aktuelle Au�enfeuchtigkeit im Status<br>
  7527. <br>
  7528. <code>define di_hum DOIF ([outdoor:humidity]&gt;70) DOELSEIF ([outdoor:humidity]&gt;50) DOELSE<br>
  7529. attr di_hum cmdState wet|normal|dry</code><br>
  7530. <br>
  7531. <a name="DOIF_state"></a>
  7532. <b>Anpassung des Status mit Hilfe des Attributes <code>state</code></b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7533. <br>
  7534. <a name="state"></a>
  7535. Es kĂśnnen beliebige Reading und Status oder Internals angegeben werden.<br>
  7536. <br>
  7537. <u>Anwendungsbeispiel</u>: Aktuelle Au�enfeuchtigkeit inkl. Klimazustand (Status des Moduls wurde mit cmdState definiert s. o.)<br>
  7538. <br>
  7539. <code>attr di_hum state The current humidity is [outdoor:humidity], it is [di_hum]</code><br>
  7540. <br>
  7541. Es kÜnnen beim Attribut state ebenfalls Berechnungen in geschweiften Klammern durchgefßhrt werden. Aus Kompatibilitätsgrßnden, muss die Berechnung mit einer runden Klammer beginnen.<br>
  7542. <br>
  7543. <u>Anwendungsbeispiel</u>: Berechnung des Mittelwertes zweier Readings:<br>
  7544. <br>
  7545. <code>define di_average DOIF <br>
  7546. attr di_average state Average of the two rooms is {([room1:temperature]+[room2:temperature])/2}</code><br>
  7547. <br>
  7548. Der Status wird automatisch aktualisiert, sobald sich eine der Temperaturen ändert<br>
  7549. <br>
  7550. Da man beliebige Perl-Ausdrßcke verwenden kann, lässt sich z. B. der Mittelwert auf eine Stelle mit der Perlfunktion sprintf formatieren:<br>
  7551. <br>
  7552. <code>attr di_average state Average of the two rooms is {(sprintf("%.1f",([room1:temperature]+[room2:temperature])/2))}</code><br>
  7553. <br>
  7554. <a name="DOIF_DOIF_Readings"></a>
  7555. <b>Erzeugen berechneter Readings</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7556. <br>
  7557. <a name="DOIF_Readings"></a>
  7558. Mit Hilfe des Attributes DOIF_Readings kĂśnnen eigene Readings innerhalb des DOIF definiert werden, auf die man im selben DOIF-Device zugreifen kann.
  7559. Die Nutzung ist insbesondere dann sinnvoll, wenn zyklisch sendende Sensoren, im Perl-Modus oder mit dem Attribut do always, abgefragt werden.
  7560. DOIF_Readings-Berechnungen funktionieren ressourcenschonend ohne Erzeugung FHEM-Events nach au�en. �nderungen dieser Readings triggern allerdings das eigene DOIF-Modul, allerdings nur, wenn sich deren Inhalt ändert.<br>
  7561. <br>
  7562. Syntax<br>
  7563. <br>
  7564. <code>attr &lt;DOIF-Modul&gt; DOIF_Readings &lt;readingname1&gt;:&lt;definiton&gt;, &lt;readingname2&gt;:&lt;definition&gt;,...</code><br>
  7565. <br>
  7566. <code>&lt;definition&gt;</code>: Beliebiger Perlausdruck ergänzt um DOIF-Syntax in eckigen Klammern. Angaben in eckigen Klammern wirken triggernd und aktualisieren das definierte Reading.<br>
  7567. <br>
  7568. Beispiel<br>
  7569. <br>
  7570. <a href="#DOIF_Perl_Modus"><b>Perl-Modus</b>:</a><br>
  7571. <code>define heating DOIF {if ([switch] eq "on" and [$SELF:frost]) {fhem_set"heating on"} else {fhem_set"heating off"}}<br>
  7572. attr heating DOIF_Readings frost:([outdoor:temperature] < 0)</code><br>
  7573. <br>
  7574. Das Reading frost triggert nur dann die definierte Abfrage, wenn sich sein Zustand ändert. Dadurch wird sichergestellt, dass ein wiederholtes Schalten der Heizung vermieden wird, obwohl der Sensor outdoor zyklisch sendet.<br>
  7575. <br>
  7576. Beispiel: Push-Mitteilung Ăźber die durchschnittliche Temperatur aller Zimmer<br>
  7577. <br>
  7578. <code>define di_temp DOIF ([$SELF:temperature]&gt;20) (push "Die Durchschnittstemperatur ist hÜher als 20 Grad, sie beträgt [$SELF:temperature]")<br>
  7579. <br>
  7580. attr di_temp DOIF_Readings temperature:[#average:d2:":temperature":temperature]<br></code>
  7581. <br>
  7582. Hierbei wird der aufwändig berechnete Durchschnittswert nur einmal berechnet, statt zwei mal, wenn man die Aggregationsfunktion direkt in der Bedingung und im Ausfßhrungsteil angeben wßrde.<br>
  7583. <br>
  7584. <a name="DOIF_initialize"></a>
  7585. <b>Vorbelegung des Status mit Initialisierung nach dem Neustart</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7586. <br>
  7587. <a name="initialize"></a>
  7588. Mit dem Attribut <code>initialize</code> Wird der Status vorbelegt, mit Initialisierung nach dem Neustart.<br>
  7589. <br>
  7590. <u>Anwendungsbeispiel</u>: Nach dem Neustart soll der Zustand von <code>di_lamp</code> mit "initialized" vorbelegt werden. Das Reading <code>cmd_nr</code> wird auf 0 gesetzt, damit wird ein Zustandswechsel provoziert, das Modul wird initialisiert - der nächste Trigger fßhrt zum Ausfßhren eines Kommandos.<br>
  7591. <br>
  7592. <code>attr di_lamp intialize initialized</code><br>
  7593. <br>
  7594. Das ist insb. dann sinnvoll, wenn das System ohne Sicherung der Konfiguration (unvorhergesehen) beendet wurde und nach dem Neustart die zuletzt gespeicherten Zustände des Moduls nicht mit den tatsächlichen ßbereinstimmen.<br>
  7595. <br>
  7596. <a name="DOIF_startup"></a>
  7597. <b>AusfĂźhren von Befehlsketten beim Starten von FHEM</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7598. <br>
  7599. <a name="startup"></a>
  7600. Beim Hochfahren von FHEM lässt sich eine bestimme Aktion ausfßhren. Es kann dazu genutzt werden, um sofort nach dem Hochfahren des Systems einen definierten Zustand des Moduls zu erreichen.
  7601. Dabei wird sichergestellt, dass die angegebenen Befehle erst dann ausgefĂźhrt werden, wenn FHEM komplett hochgefahren ist.<br>
  7602. <br>
  7603. Symtax:<br>
  7604. <br>
  7605. <code>attr &lt;DOIF-Modul&gt; startup &lt;FHEM-Befehl oder Perl-Befehl in geschweiften Klammern mit DOIF-Syntax&gt;</code><br>
  7606. <br>
  7607. Die Syntax entspricht der eines DOIF-AusfĂźhrungsteils (runde Klammern brauchen nicht angegeben werden).<br>
  7608. <br>
  7609. Beispiele:<br>
  7610. <br>
  7611. <code>attr di_test startup set $SELF cmd_1</code><br>
  7612. <code>attr di_test startup set $SELF checkall</code><br>
  7613. <code>attr di_test startup sleep 60;set lamp1 off;set lamp2 off</code><br>
  7614. <code>attr di_test startup {myfunction()},set lamp1 on,set lamp2 on</code><br>
  7615. <br>
  7616. <a name="DOIF_disable"></a>
  7617. <b>Deaktivieren des Moduls</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7618. <br>
  7619. <a name="disable"></a>
  7620. Ein DOIF-Modul kann mit Hilfe des Attributes disable, deaktiviert werden. Dabei werden alle Timer und Readings des Moduls gelĂśscht.
  7621. Soll das Modul nur vorĂźbergehend deaktiviert werden, so kann das durch <code>set &lt;DOIF-modul&gt; disable</code> geschehen.
  7622. <br>
  7623. <br>
  7624. <a name="DOIF_setBefehle"></a>
  7625. <b>Set-Befehle</b><br>
  7626. <br>
  7627. <a name="DOIF_setcheckall"></a>
  7628. <b>�berprßfung aller DOIF-Bedingungen mit Ausfßhrung eines DOIF-Zweiges</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7629. <br>
  7630. <a name="checkall"></a>
  7631. Mit dem set-Befehl <code>checkall</code> werden wie beim gleichnamigen Attribut alle DOIF-Bedingung ĂźberprĂźft, sobald eine Bedingung als wahr geprĂźft ist, wird das dazugehĂśrige Kommando ausgefĂźhrt.
  7632. Zu beachten ist, dass nur der erste wahre DOIF-Zweig ausgefĂźhrt wird und dass nur Zustandsabfragen sowie Zeitintervalle sinnvoll ĂźberprĂźft werden kĂśnnen.
  7633. Ereignisabfragen sowie Zeitpunkt-Definitionen, sind zum Zeitpunkt der checkall-Abfrage normalerweise nicht wahr.<br>
  7634. <br>
  7635. Beispiel:<br>
  7636. <br>
  7637. <code>attr di_test startup set $SELF checkall</code><br>
  7638. <br>
  7639. <a name="DOIF_setdisable"></a>
  7640. <b>Inaktivieren des Moduls</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7641. <br>
  7642. <a name="disable"></a>
  7643. Mit dem set-Befehl <code>disable</code> wird ein DOIF-Modul inaktiviert. Hierbei bleiben alle Timer aktiv, sie werden aktualisiert - das Modul bleibt im Takt, allerdings werden keine Befehle ausgefĂźhrt.
  7644. Das Modul braucht mehr Rechenzeit, als wenn es komplett Ăźber das Attribut <code>disable</code> deaktiviert wird. Ein inaktiver Zustand bleibt nach dem Neustart erhalten.
  7645. Ein inaktives Modul kann Ăźber set-Befehle <code>enable</code> bzw. <code>initialize</code> wieder aktiviert werden.<br>
  7646. <br>
  7647. <a name="DOIF_setenable"></a>
  7648. <b>Aktivieren des Moduls</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7649. <br>
  7650. <a name="enable"></a>
  7651. Mit dem set-Befehl <code>enable</code> wird ein inaktives DOIF-Modul wieder aktiviert. Im Gegensatz zum set-Befehl <code>initialize</code> wird der letzte Zustand vor der Inaktivierung des Moduls wieder hergestellt.<br>
  7652. <br>
  7653. <a name="DOIF_Initialisieren_des_Moduls"></a>
  7654. <b>Initialisieren des Moduls</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7655. <br>
  7656. mit dem set-Befehl <code>initialize</code> wird ein DOIF-Modul initialisiert. Ein inaktives DOIF-Modul wieder aktiviert.
  7657. Im Gegensatz zum set-Befehl <code>enable</code> wird der letzte Zustand des Moduls gelÜscht, damit wird ein Zustandswechsel herbeigefßhrt, der nächste Trigger fßhrt zur Ausfßhrung eines wahren DOIF-Zweiges.
  7658. Diese Eigenschaft kann auch dazu genutzt werden, ein bereits aktives Modul zu initialisieren.<br>
  7659. <br>
  7660. <a name="DOIF_setcmd"></a>
  7661. <b>AufĂźhren von Befehlszweigen ohne Auswertung der Bedingung</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7662. <br>
  7663. <a name="cmd_1"></a>
  7664. Mit <code>set &lt;DOIF-modul&gt; cmd_&lt;nr&gt</code> lässt sich ein Befehlszweig (cmd_1, cmd_2, usw.) bedingunglos ausfßhren.<br>
  7665. <br>
  7666. Der Befehl hat folgende Eigenschaften:<br>
  7667. <br>
  7668. 1) der set-Befehl Ăźbersteuert alle Attribute wie z. B. wait, do, usw.<br>
  7669. 2) ein laufender Wait-Timer wird unterbrochen<br>
  7670. 3) beim deaktivierten oder im Modus disable befindlichen Modul wird der set Befehl ignoriert<br>
  7671. <br>
  7672. <u>Anwendungsbeispiel</u>: Schaltbare Lampe Ăźber Fernbedienung und Webinterface<br>
  7673. <br>
  7674. <code>
  7675. define di_lamp DOIF ([FB:"on"]) (set lamp on) DOELSEIF ([FB:"off"]) (set lamp off)<br>
  7676. <br>
  7677. attr di_lamp devStateIcon cmd_1:on:cmd_2 initialized|cmd_2:off:cmd_1<br>
  7678. </code><br>
  7679. Mit der Definition des Attributes <code>devStateIcon</code> fĂźhrt das Anklicken des on/off-Lampensymbol zum AusfĂźhren von <code>set di_lamp cmd_1</code> bzw. <code>set di_lamp cmd_2</code> und damit zum Schalten der Lampe.<br>
  7680. <br>
  7681. Wenn mit <code>cmdState</code> eigene Zuständsbezeichnungen definiert werden, so kÜnnen diese ebenfalls per set-Befehl angegeben werden.<br>
  7682. <br>
  7683. <code>
  7684. define di_lamp DOIF ([FB:"on"]) (set lamp on) DOELSEIF ([FB:"off"]) (set lamp off)<br>
  7685. <br>
  7686. attr di_lamp cmdState on|off<br>
  7687. attr di_lamp setList on off<br>
  7688. </code>
  7689. <br>
  7690. <code>set di_lamp on</code> entspricht hier <code>set di_lamp cmd_1</code> und <code>set di_lamp off set di_lamp cmd_2</code><br>
  7691. Zusätzlich fßhrt die Definition von <code>setList</code> zur Ausfßhrung von <code>set di_lamp on/off</code> durch das Anlicken des Lampensymbols wie im vorherigen Beispiel.<br>
  7692. <br>
  7693. <br>
  7694. <a name="DOIF_Weitere_Anwendungsbeispiele"></a>
  7695. <b>Weitere Anwendungsbeispiele</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7696. <br>
  7697. Zweipunktregler a la THRESHOLD<br>
  7698. <br>
  7699. <code>define di_threshold DOIF ([sensor:temperature]<([$SELF:desired]-1))<br>
  7700. (set heating on)<br>
  7701. DOELSEIF ([sensor:temperature]>[$SELF:desired])<br>
  7702. (set heating off)<br>
  7703. <br>
  7704. attr di_threshold cmdState on|off<br>
  7705. attr di_threshold readingList desired<br>
  7706. attr di_threshold setList desired:17,18,19,20,21,22<br>
  7707. attr di_threshold webCmd desired<br>
  7708. </code><br>
  7709. Die Hysterese ist hier mit einem Grad vorgegeben. Die Vorwahltemperatur wird per Dropdown-Auswahl eingestellt.<br>
  7710. <br>
  7711. on-for-timer<br>
  7712. <br>
  7713. Die Nachbildung eines on-for-timers lässt sich wie folgt realisieren:<br>
  7714. <br>
  7715. <code>define di_on_for_timer ([detector:"motion"])<br>
  7716. (set light on)<br>
  7717. (set light off)<br>
  7718. attr di_on_for_timer do resetwait<br>
  7719. attr di_on_for_timer wait 0,30</code><br>
  7720. <br>
  7721. Hiermit wird das Licht bei Bewegung eingeschaltet. Dabei wird, solange es brennt, bei jeder Bewegung die Ausschaltzeit neu auf 30 Sekunden gesetzt, "set light on" wird dabei nicht unnĂśtig wiederholt.<br>
  7722. <a href="#DOIF_Treppenhauslicht mit Bewegungsmelder">siehe auch Treppenhauslicht mit Bewegungsmelder im Perl-Modus</a><br>
  7723. <br>
  7724. Die Beispiele stellen nur eine kleine Auswahl von mÜglichen ProblemlÜsungen dar. Da sowohl in der Bedingung (hier ist die komplette Perl-Syntax mÜglich), als auch im Ausfßhrungsteil, keine Einschränkungen gegeben sind, sind die MÜglichkeiten zur LÜsung eigener Probleme mit Hilfe des Moduls sehr vielfältig.<br>
  7725. <br>
  7726. <a name="DOIF_Zu_beachten"></a>
  7727. <b>Zu beachten</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7728. <br>
  7729. In jeder Bedingung muss mindestens ein Trigger angegeben sein (Angaben in eckigen Klammern). Die entsprechenden DO-Fälle werden nur dann ausgewertet, wenn auch das entsprechende Event oder Zeit-Trigger ausgelÜst wird.<br>
  7730. <br>
  7731. Zeitangaben der Art: <br>
  7732. <br>
  7733. <code>define di_light DOIF ([08:00] and [10:00]) (set switch on)</code><br>
  7734. <br>
  7735. sind nicht sinnvoll, da diese Bedingung nie wahr sein wird.<br>
  7736. <br>
  7737. Angaben, bei denen aufgrund der Definition kein Zustandswechsel erfolgen kann z. B.:<br>
  7738. <br>
  7739. <code>define di_light DOIF ([08:00]) (set switch on)<br>
  7740. attr di_light do always</code><br>
  7741. <br>
  7742. mĂźssen mit Attribut <code>do always</code> definiert werden, damit sie nicht nur einmal, sondern jedes mal (hier jeden Tag) ausgefĂźhrt werden.<br>
  7743. <br>
  7744. Bei Devices, die mit Zwischenzuständen arbeiten, insbesondere HM-Komponenten (Zwischenzustand: set_on, set_off), sollte die Definition mÜglichst genau formuliert werden, um unerwßnschte Effekte zu vermeiden: <br>
  7745. <br>
  7746. statt:<br>
  7747. <br>
  7748. <code>define di_lamp DOIF ([HM_switch] eq "on") (set lamp on) DOELSE (set lamp off)</code><br>
  7749. <br>
  7750. konkreter spezifizieren:<br>
  7751. <br>
  7752. <code>define di_lamp DOIF ([HM_switch] eq "on") (set lamp on) DOELSEIF ([HM_switch] eq "off") (set lamp off)</code><br>
  7753. <br>
  7754. Namenskonvention: Da der Doppelpunkt bei Readingangaben als Trennzeichen gilt, darf er nicht im Namen des Devices vorkommen. In solchen Fällen bitte das Device umbenennen.<br>
  7755. <br>
  7756. Standardmä�ig, ohne das Attribut <code>do always</code>, wird das Wiederholen desselben Kommmandos vom Modul unterbunden. Daher sollte nach MÜglichkeit eine ProblemlÜsung mit Hilfe eines und nicht mehrerer DOIF-Module realisiert werden, getreu dem Motto "wer die Lampe einschaltet, soll sie auch wieder ausschalten".
  7757. Dadurch wird erreicht, dass unnĂśtiges (wiederholendes) Schalten vom Modul unterbunden werden kann, ohne dass sich der Anwender selbst darum kĂźmmern muss.<br>
  7758. <br>
  7759. Mehrere Bedingungen, die zur Ausfßhrung gleicher Kommandos fßhren, sollten zusammengefasst werden. Dadurch wird ein unnÜtiges Schalten aufgrund verschiedener Zustände verhindert.<br>
  7760. <br>
  7761. Beispiel:<br>
  7762. <br>
  7763. <code>define di_lamp DOIF ([brightness] eq "off") (set lamp on) DOELSEIF ([19:00]) (set lamp on) DOELSE (set lamp off)</code><br>
  7764. <br>
  7765. Hier wird um 19:00 Uhr Lampe eingeschaltet, obwohl sie evtl. vorher schon durch das Ereignis brightness "off" eingeschaltet wurde.<br>
  7766. <br>
  7767. <code>define di_lamp DOIF ([brightness] eq "off" or [19:00]) (set lamp on) DOELSE (set lamp off)</code><br>
  7768. <br>
  7769. Hier passiert das nicht mehr, da die ursprßnglichen Zustände cmd_1 und cmd_2 jetzt nur noch einen Zustand cmd_1 darstellen und dieser wird nicht wiederholt.<br>
  7770. <br>
  7771. <!-- Beginn der Kurzreferenz -->
  7772. <a name="DOIF_Kurzreferenz"></a>
  7773. <b>Kurzreferenz</b>&nbsp;&nbsp;&nbsp;<a href="#DOIF_Inhaltsuebersicht">back</a><br>
  7774. <ul>
  7775. &lang;&rang; kennzeichnet optionale Angaben
  7776. </ul>
  7777. <br>
  7778. <u><a href="#DOIF">Definition</a></u>
  7779. <ul>
  7780. <dl>
  7781. <dt> <code><b>define</b> &lt;name&gt; <b>DOIF </b>&lang;<b>(</b>&lt;Bedingung&gt;<b>) </b>&lang;&lang;<b>(</b>&lang;&lt;Befehle&gt;&rang;<b>)</b>&rang; &lang;&lang;&lang;<b>DOELSEIF (</b>&lt;Bedingung&gt;<b>) </b>&lang;<b>(</b>&lang;&lt;Befehle&gt;&rang;<b>)</b>&rang;&rang; ... &rang;&lang;<b>DOELSE </b>&lang;<b>(</b>&lang;&lt;Befehle&gt;&rang;<b>)</b>&rang;&rang;&rang;&rang;&rang;</code>
  7782. </dt>
  7783. <dd>Befehlstrennzeichen ist das Komma<code><b> (</b>&lt;Befehl&gt;<b>,</b> &lt;Befehl&gt;, ...<b>)</b></code>
  7784. </dd>
  7785. <dd>Befehlssequenzen werden in runde Klammern gesetzt <code><b>(</b>&lt;Befehlssequenz A&gt;<b>) (</b>&lt;Befehlssequenz B&gt;<b>) ...</b></code>
  7786. </dd>
  7787. <dd>Enth&auml;lt ein Befehl Kommata, ist er zus&auml;tzlich in runde Klammern einzuschliessen <code><b>(</b>&lt;Befehlsteil a&gt;<b>, </b>&lt;Befehlsteil b&gt; ... <b>)</b></code>
  7788. </dd>
  7789. <dd>Perl-Befehle <code><b>{</b>&lt;Perl-Befehl&gt;<b>}</b></code> sind in geschweifte Klammern einzuschliessen
  7790. </dd>
  7791. <dd>Jede <a href="#DOIF_Berechnungen_im_Ausfuehrungsteil">Berechnung</a> <code><b>{(</b>&lt;Berechnung&gt;<b>)</b>&lang;&lt;Berechnung&gt;&rang;<b>}</b></code> in einem Befehl ist in geschweifte Klammern einzuschliessen und muss mit einer ge&ouml;ffneten runden Klammer beginnen.
  7792. </dd>
  7793. </dl>
  7794. </ul>
  7795. <br>
  7796. <u>Readings</u>
  7797. <ul>
  7798. <dl>
  7799. <dt>Device</dt>
  7800. <dd>Name des ausl&ouml;senden Ger&auml;tes</dd>
  7801. <br>
  7802. <dt>block_&lt;block name&gt;</dt>
  7803. <dd>Zeigt die AusfĂźhrung eines Perl-Blocks an (Perl).</dd>
  7804. <br>
  7805. <dt>cmd</dt>
  7806. <dd>Nr. des letzten ausgef&uuml;hrten Befehls als Dezimalzahl oder 0 nach Initialisierung des DOIF, in der Form &lt;Nr. des Befehlszweiges&gt;&lang;.&lt;Nr. der Sequenz&gt;&rang;</dd>
  7807. <br>
  7808. <dt>cmd_event</dt>
  7809. <dd>Angabe des ausl&ouml;senden Ereignisses</dd>
  7810. <br>
  7811. <dt>cmd_nr</dt>
  7812. <dd>Nr. des letzten ausgef&uuml;hrten Befehlszweiges</dd>
  7813. <br>
  7814. <dt>cmd_seqnr</dt>
  7815. <dd>Nr. der letzten ausgef&uuml;hrten Befehlssequenz</dd>
  7816. <br>
  7817. <dt>e_&lt;Device&gt;_&lt;Reading&gt;|&lt;Internal&gt;|Events</dt>
  7818. <dd>Bezeichner und Wert der ausl&ouml;senden Ger&auml;te mit Readings, Internals oder Events</dd>
  7819. <br>
  7820. <dt>error</dt>
  7821. <dd>Enthält Fehlermeldungen oder R&uuml;ckgabewerte von Befehlen, siehe <a href="http://www.fhemwiki.de/wiki/DOIF/Tools_und_Fehlersuche#Besonderheit_des_Error-Reading">Besonderheit des Error-Reading</a></dd>
  7822. <br>
  7823. <dt>last_cmd</dt>
  7824. <dd>letzter Status</dd>
  7825. <br>
  7826. <dt>matched_event_c&lt;lfd. Nr. der Bedingung&gt;_&lt;lfd. Nr. des Events&gt;</dt>
  7827. <dd>Wert, der mit dem Regul&auml;ren Ausdruck &uuml;bereinstimmt</dd>
  7828. <br>
  7829. <dt>mode</dt>
  7830. <dd>der Modus, in dem sich DOIF befindet: &lt;enabled|disabled|deactivated&gt;</dd>
  7831. <br>
  7832. <dt>state</dt>
  7833. <dd>Status des DOIF nach Befehlsausf&uuml;hrung, Voreinstellung: cmd_&lt;Nr. des Befehlszweiges&gt;&lang;_&lt;Nr. der Befehlssequenz&gt;&rang;</dd>
  7834. <br>
  7835. <dt>timer_&lt;lfd. Nr.&gt;_c&lt;Nr. des Befehlszweiges&gt;</dt>
  7836. <dd>verwendete Timer mit Angabe des n&auml;chsten Zeitpunktes</dd>
  7837. <br>
  7838. <dt>timer_&lt;timer name&gt;</dt>
  7839. <dd>verwendete, benannte Timer mit Angabe des n&auml;chsten Zeitpunktes (Perl)</dd>
  7840. <br>
  7841. <dt>wait_timer</dt>
  7842. <dd>Angabe des aktuellen Wait-Timers</dd>
  7843. <br>
  7844. <dt>warning</dt>
  7845. <dd>Perl-Warnung bei der Auswertung einer Bedingung</dd>
  7846. <br>
  7847. <a name="DOIF_Benutzerreadings"></a>
  7848. <dt>&lt;A-Z&gt;_&lt;readingname&gt;</dt>
  7849. <dd>Readings, die mit einem Gro�buchstaben und nachfolgendem Unterstrich beginnen, sind fßr User reserviert und werden auch zuk&uuml;nftig nicht vom Modul selbst benutzt.</dd>
  7850. </dl>
  7851. <br>
  7852. </ul>
  7853. <a name="DOIF_Operanden"></a>
  7854. <u>Operanden in der Bedingung und den Befehlen und im Perl-Modus</u>
  7855. <ul>
  7856. <dl>
  7857. <dt><a href="#DOIF_Ereignissteuerung">Status</a> <code><b>[</b>&lt;Device&gt;&lang;<b>,</b>&lt;Default&gt;&rang;<b>]</b></code></dt>
  7858. <dd></dd>
  7859. <br>
  7860. <dt><a href="#DOIF_Ereignissteuerung">Readings</a> <code><b>[</b>&lt;Device&gt;<b>:</b>&lt;Reading&gt;&lang;<b>,</b>&lt;Default&gt;&rang;<b>]</b></code></dt>
  7861. <dd></dd>
  7862. <br>
  7863. <dt><a href="#DOIF_Ereignissteuerung">Internals</a> <code><b>[</b>&lt;Device&gt;<b>:&amp;</b>&lt;Internal&gt;&lang;<b>,</b>&lt;Default&gt;&rang;<b>]</b></code></dt>
  7864. <dd></dd>
  7865. <br>
  7866. <dt><a href="#DOIF_Filtern_nach_Zahlen">Filtern allgemein</a> nach Ausdr&uuml;cken mit Ausgabeformatierung: <code><b>[</b>&lt;Device&gt;:&lt;Reading&gt;|&lt;Internal&gt;:"&lt;Filter&gt;"&lang;:&lt;Output&gt;&rang;&lang;<b>,</b>&lt;Default&gt;&rang;<b>]</b></code></dt>
  7867. <br>
  7868. <dt><a href="#DOIF_Filtern_nach_Zahlen">Filtern einer Zahl</a> <code><b>[</b>&lt;Device&gt;<b>:</b>&lt;Reading&gt;<b>:d</b>&lang;<b>,</b>&lt;Default&gt;&rang;<b>]</b></code></dt>
  7869. <br>
  7870. <dt><a href="#DOIF_Zeitspanne_eines_Readings_seit_der_letzten_Aenderung">Zeitspanne eines Readings seit der letzten &Auml;nderung</a> <code><b>[</b>&lt;Device&gt;<b>:</b>&lt;Reading&gt;<b>:sec</b>&lang;<b>,</b>&lt;Default&gt;&rang;<b>]</b></code></dt>
  7871. <br>
  7872. <dt>$DEVICE</dt>
  7873. <dd>f&uuml;r den Ger&auml;tenamen</dd>
  7874. <br>
  7875. <dt>$EVENT</dt>
  7876. <dd>f&uuml;r das zugeh&ouml;rige Ereignis</dd>
  7877. <br>
  7878. <dt>$EVENTS</dt>
  7879. <dd>f&uuml;r alle zugeh&ouml;rigen Ereignisse eines Triggers</dd>
  7880. <br>
  7881. <dt>$SELF</dt>
  7882. <dd>f&uuml;r den Ger&auml;tenamen des DOIF</dd>
  7883. <br>
  7884. <dt>&lt;Perl-Funktionen&gt;</dt>
  7885. <dd>vorhandene und selbsterstellte Perl-Funktionen</dd>
  7886. </dl>
  7887. <br>
  7888. </ul>
  7889. <u>Operanden in der Bedingung und im Perl-Modus</u>
  7890. <ul>
  7891. <dl>
  7892. <dt><a href="#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events">Events</a> <code><b>[</b>&lt;Device&gt;<b>:"</b>&lt;Regex-Events&gt;"<b>]</b></code> oder <code><b>["</b>&lt;Regex-Devices&gt;<b>:</b>&lt;Regex-Events&gt;<b>"]</b></code> oder <code><b>["</b>&lt;Regex-Devices&gt;<b>"</b>&lang;<b>:"</b>&lt;Regex-Filter&gt;<b>"</b>&rang;&lang;<b>:</b>&lt;Output&gt;&rang;<b>,</b>&lt;Default&gt;<b>]</b></code></dt>
  7893. <dd>f&uuml;r <code>&lt;Regex&gt;</code> gilt: <code><b>^</b>&lt;ist eindeutig&gt;<b>$</b></code>, <code><b>^</b>&lt;beginnt mit&gt;</code>, <code>&lt;endet mit&gt;<b>$</b></code>, <code><b>""</b></code> entspricht <code><b>".*"</b></code>, Regex-Filter ist mit <code><b>[^\:]*: (.*)</b></code> vorbelegt siehe auch <a target=blank href="https://wiki.selfhtml.org/wiki/Perl/Regul%C3%A4re_Ausdr%C3%BCcke">Regul&auml;re Ausdr&uuml;cke</a> und Events des Ger&auml;tes <a target=blank href="#global">global</a>
  7894. </dd>
  7895. <br>
  7896. <dt><a href="#DOIF_Zeitsteuerung">Zeitpunkte</a> <code><b>[</b>&lt;time&gt;<b>]</b> </code></dt>
  7897. <dd>als <code><b>[HH:MM]</b></code>, <code><b>[HH:MM:SS]</b></code> oder <code><b>[Zahl] </b></code> in Sekunden nach Mitternacht</dd>
  7898. <br>
  7899. <dt><a href="#DOIF_Zeitsteuerung_mit_Zeitintervallen">Zeitintervalle</a> <code><b>[</b>&lt;begin&gt;<b>-</b>&lt;end&gt;<b>]</b></code></dt>
  7900. <dd>als <code><b>[HH:MM]</b></code>, <code><b>[HH:MM:SS]</b></code> oder <code><b>[Zahl]</b></code> in Sekunden nach Mitternacht</dd>
  7901. <br>
  7902. <dt><a href="#DOIF_Indirekten_Zeitangaben">indirekte Zeitangaben</a> <code><b>[[</b>&lt;indirekte Zeit&gt;<b>]]</b></code></dt>
  7903. <dd>als <code><b>[HH:MM]</b></code>, <code><b>[HH:MM:SS]</b></code> oder <code><b>[Zahl]</b></code> in Sekunden nach Mitternacht, <code>&lt;indirekte Zeit&gt;</code> ist ein Status, Reading oder Internal</dd>
  7904. <br>
  7905. <dt><a href="#DOIF_Relative_Zeitangaben">relative Zeitangaben</a> <code><b>[+</b>&lt;time&gt;<b>]</b></code></dt>
  7906. <dd>als <code><b>[HH:MM]</b></code>, <code><b>[HH:MM:SS]</b></code> oder <code><b>[Zahl]</b></code> in Sekunden</dd>
  7907. <br>
  7908. <dt><a href="#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet">ausgerichtete Zeitraster</a> <code><b>[:MM]</b></code></dt>
  7909. <dd>in Minuten zwischen 00 und 59</dd>
  7910. <br>
  7911. <dt><a href="#DOIF_Relative_Zeitangaben_nach_Zeitraster_ausgerichtet">rel. Zeitraster ausgerichtet</a> <code><b>[+:MM]</b></code></dt>
  7912. <dd>in Minuten zwischen 1 und 59</dd>
  7913. <br>
  7914. <dt><a href="#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet_alle_X_Stunden">rel. Zeitraster ausgerichtet alle X Stunden</a> <code><b>[+[h]:MM]</b></code></dt>
  7915. <dd><b>MM</b> in Minuten zwischen 1 und 59, <b>h</b> in Stunden zwischen 2 und 23</dd>
  7916. <br>
  7917. <dt><a href="#DOIF_Wochentagsteuerung">Wochentagsteuerung</a> <code><b>[</b>&lt;time&gt;<b>|012345678]</b></code>, <code><b>[</b>&lt;begin&gt;<b>-</b>&lt;end&gt;<b>]</b><b>|012345678]</b></code></dt>
  7918. <dd>Pipe, gefolgt von ein o. mehreren Ziffern. Bedeutung: 0 bis 6 f&uuml;r So. bis Sa., 7 f&uuml;r $we, Wochenende oder Feiertag, 8 f&uuml;r !$we, Werktags.</dd>
  7919. <br>
  7920. <dt><a href="#DOIF_Zeitsteuerung_mit_Zeitberechnung">berechnete Zeitangaben</a> <code><b>[(</b>&lt;Berechnung, gibt Zeit in Sekunden zur&uuml;ck, im Sinne von <a target=blank href="http://perldoc.perl.org/functions/time.html">time</a>&gt;<b>)]</b></code></dt>
  7921. <dd>Berechnungen sind mit runden Klammern einzuschliessen. Perlfunktionen, die HH:MM zur&uuml;ckgeben sind mit geschweiften Klammern einzuschliessen.</dd>
  7922. <br>
  7923. <dt><a href="#DOIF_Intervall-Timer">Intervall-Timer</a> <code><b>[</b>&lt;begin&gt;<b>-</b>&lt;end&gt;<b>,</b>&lt;relativ timer&gt;<b>]</b></code></dt>
  7924. <dd>L&ouml;st zu den aus &lt;relativ timer&gt; berechneten Zeitpunkten im angegebenen Zeitintervall &lt;begin&gt;-&lt;end&gt; aus.</dd>
  7925. <br>
  7926. <dt><a href="#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger">Trigger verhindern</a> <code><b>[?</b>&lt;devicename&gt;<b>]</b></code>, <code><b>[?</b>&lt;devicename&gt;<b>:</b>&lt;readingname&gt;<b>]</b></code>, <code><b>[?</b>&lt;devicename&gt;<b>:&amp;</b>&lt;internalname&gt;<b>]</b></code>, <code><b>[?</b>&lt;time specification&gt;<b>]</b></code></dt>
  7927. <dd>Werden Status, Readings, Internals und Zeitangaben in der Bedingung mit einem Fragezeichen eingeleitet, triggern sie nicht.</dd>
  7928. <br>
  7929. <dt>$device, $event, $events</dt>
  7930. <dd>Perl-Variablen mit der Bedeutung der Schl&uuml;sselworte $DEVICE, $EVENT, $EVENTS</dd>
  7931. <br>
  7932. <dt>$cmd</dt>
  7933. <dd>Perl-Variablen mit der Bedeutung [$SELF:cmd]</dd>
  7934. <br>
  7935. <dt>&lt;Perl-Zeitvariablen&gt;</dt>
  7936. <dd>Variablen f&uuml;r Zeit- und Datumsangaben, $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst, $week, $hms, $hm, $md, $ymd</dd>
  7937. </dl>
  7938. <br>
  7939. </ul>
  7940. <u>set-Befehle</u>
  7941. <ul>
  7942. <dl>
  7943. <dt><a href="#DOIF_setcheckall">disable</a> <code><b> set </b>&lt;name&gt;<b> checkall</b></code></dt>
  7944. <dd>�berprßfung aller DOIF-Bedingungen mit Ausfßhrung eines wahren DOIF-Zweiges</dd>
  7945. <br>
  7946. <dt><a href="#DOIF_setdisable">disable</a> <code><b> set </b>&lt;name&gt;<b> disable</b></code></dt>
  7947. <dd>blockiert die Befehlsausf&uuml;hrung</dd>
  7948. <br>
  7949. <dt><a href="#DOIF_Initialisieren_des_Moduls">initialize</a> <code><b> set </b>&lt;name&gt;<b> initialize</b></code></dt>
  7950. <dd>initialisiert das DOIF und aktiviert die Befehlsausf&uuml;hrung</dd>
  7951. <br>
  7952. <dt><a href="#DOIF_setenable">enable</a> <code><b> set </b>&lt;name&gt;<b> enable</b></code></dt>
  7953. <dd>aktiviert die Befehlsausf&uuml;hrung, im Gegensatz zur obigen Initialisierung bleibt der letzte Zustand des Moduls erhalten</dd>
  7954. <br>
  7955. <dt><a href="#DOIF_setcmd">cmd_&lt;nr&gt</a> <code><b> set </b>&lt;name&gt;<b> cmd_&lt;nr&gt;</b></code></dt>
  7956. <dd>fĂźhrt ohne Auswertung der Bedingung den Befehlszweig mit der Nummer &lt;nr&gt; aus</dd>
  7957. </dl>
  7958. <br>
  7959. </ul>
  7960. <a name="DOIF_getBefehle"></a>
  7961. <u>get-Befehle</u>
  7962. <ul>
  7963. <dl>
  7964. <dt><a name="HTML-Code von uiTable">html</a></dt>
  7965. <dd>liefert HTML-Code einer definierten uiTable zurĂźck.</dd>
  7966. </dl>
  7967. <br>
  7968. </ul>
  7969. <a name="DOIF_Attribute_kurz"></a>
  7970. <u>Attribute</u>
  7971. <ul>
  7972. <dl>
  7973. <dt><a href="#DOIF_wait">Verz&ouml;gerungen</a> <code><b>attr</b> &lt;name&gt; <b>wait </b>&lt;timer_1_1&gt;<b>,</b>&lt;timer_1_2&gt;<b>,...:</b>&lt;timer_2_1&gt;<b>,</b>&lt;timer_2_2&gt;<b>,...:...</b></code></dt>
  7974. <dd>Zeit in Sekunden als direkte Angabe oder Berechnung, ein Doppelpunkt trennt die Timer der Bedingungsweige, ein Komma die Timer der Befehlssequenzen eines Bedingungszweiges.</dd>
  7975. <br>
  7976. <dt><a href="#DOIF_timerWithWait">Verz&ouml;gerung von Timern</a> <code><b>attr</b> &lt;name&gt; <b>timerWithWait</b></code></dt>
  7977. <dd>erweitert <code>wait</code> auf Zeitangaben</dd>
  7978. <br>
  7979. <a name="do"></a>
  7980. <dt><code><b>attr</b> &lt;name&gt; <b>do </b>&lt;<b>always</b>|<b>resetwait</b>&gt;</code></dt>
  7981. <dd><code>always</code> wiederholt den Ausf&uuml;hrungsteil, wenn die selbe Bedingung wiederholt wahr wird.<br>
  7982. <code>resetwait</code> setzt den Waittimer zurĂźck, wenn die selbe Bedingung wiederholt wahr wird.<br>
  7983. </dd>
  7984. <a name="DOIF_EndOfItem"></a>
  7985. <br>
  7986. <dt><a href="#DOIF_repeatcmd">Befehle wiederholen</a> <code><b>attr</b> &lt;name&gt; <b>repeatcmd </b>&lt;timer Bedingungszweig 1&gt;<b>:</b>&lt;timer Bedingungszweig 2&gt;<b>:...</b></code></dt>
  7987. <dd>Zeit in Sekunden als direkte Angabe oder Berechnung, nach der Befehle wiederholt werden.</dd>
  7988. <br>
  7989. <dt><a href="#DOIF_cmdpause">Pause f&uuml;r Wiederholung</a> <code><b>attr</b> &lt;name&gt; <b>cmdpause </b>&lt;Pause cmd_1&gt;<b>:</b>&lt;Pause cmd_2&gt;<b>:...</b></code></dt>
  7990. <dd>Zeit in Sekunden als direkte Angabe oder Berechnung, blockiert die Befehlsausf&uuml;hrung w&auml;hrend der Pause.</dd>
  7991. <br>
  7992. <dt><a href="#DOIF_repeatsame">Begrenzung von Wiederholungen</a> <code><b>attr</b> &lt;name&gt; <b>repeatsame </b>&lt;maximale Anzahl von cmd_1&gt;<b>:</b>&lt;maximale Anzahl von cmd_2&gt;<b>:...</b></code></dt>
  7993. <dd>Anzahl als direkte Angabe oder Berechnung, begrenzt die maximale Anzahl unmittelbar folgender Befehlsausf&uuml;hrungen.</dd>
  7994. <br>
  7995. <dt><a href="#DOIF_waitsame">Warten auf Wiederholung</a> <code><b>attr</b> &lt;name&gt; <b>waitsame </b>&lt;Wartezeit cmd_1&gt;<b>:</b>&lt;Wartezeit cmd_2&gt;<b>:...</b></code></dt>
  7996. <dd>Wartezeit in Sekunden als direkte Angabe oder Berechnung, f&uuml;r ein unmittelbar wiederholtes Zutreffen einer Bedingung.</dd>
  7997. <br>
  7998. <dt><a href="#DOIF_waitdel">L&ouml;schen des Waittimers</a> <code><b>attr</b> &lt;name&gt; <b>waitdel </b>&lt;timer_1_1&gt;<b>,</b>&lt;timer_1_2&gt;<b>,...:</b>&lt;timer_2_1&gt;<b>,</b>&lt;timer_2_2&gt;<b>,...:...</b></code></dt>
  7999. <dd>Zeit in Sekunden als direkte Angabe oder Berechnung, ein laufender Timer wird gel&ouml;scht und die Befehle nicht ausgef&uuml;hrt, falls eine Bedingung vor Ablauf des Timers wiederholt wahr wird.</dd>
  8000. <br>
  8001. <dt><a href="#DOIF_checkReadingEvent">Readingauswertung bei jedem Event des Devices</a> <code><b>attr</b> &lt;name&gt; <b>checkReadingEvent </b>&lt;<b>0</b>|<b>1</b>&gt;</code></dt>
  8002. <dd>0 deaktiviert, 1 keine Funktion mehr, entspricht internen der Voreinstellung des Moduls.</dd>
  8003. <br>
  8004. <dt><a href="#DOIF_selftrigger">Selbsttriggerung</a> <code><b>attr</b> &lt;name&gt; <b>selftrigger </b>&lt;<b>wait</b>|<b>all</b>&gt;</code></dt>
  8005. <dd>lässt die Triggerung des Gerätes durch sich selbst zu. <code>wait</code> zugelassen fßr verzÜgerte Befehle, <code>all</code> zugelassen auch fßr nicht durch wait verzÜgerte Befehle; es ist nur eine Rekusion mÜglich</dd>
  8006. <br>
  8007. <dt><a href="#DOIF_timerevent">Event beim Setzen eines Timers</a> <code><b>attr</b> &lt;name&gt; <b>timerevent </b>&lt;<b>0</b>|<b>ungleich Null</b>&gt;</code></dt>
  8008. <dd>erzeugt beim Setzen eines Timers ein Event. ungleich Null aktiviert, 0 deaktiviert</dd>
  8009. <br>
  8010. <dt><a href="#DOIF_cmdState">Ger&auml;testatus ersetzen</a> <code><b>attr</b> &lt;name&gt; <b>cmdState </b>&lt;Ersatz cmd_1_1&gt;<b>,</b>...<b>,</b>&lt;Ersatz cmd_1&gt;<b>|</b>&lt;Ersatz cmd_2_1&gt;<b>,</b>...<b>,</b>&lt;Ersatz cmd_2&gt;<b>|...</b></code></dt>
  8011. <dd>ersetzt die Standartwerte des Ger&auml;testatus als direkte Angabe oder Berechnung, die Ersatzstatus von Befehlssequenzen werden durch Kommata, die von Befehlszweigen durch Pipe Zeichen getrennt.</dd>
  8012. <br>
  8013. <dt><a href="#DOIF_startup">Befehle bei FHEM-Start ausf&uuml;hren </a> <code><b>attr</b> &lt;name&gt; <b>startup </b>&lt;FHEM-Befehle&gt;|<b>{</b>&lt;Perl-Befehle mit DOIF-Syntax&gt;<b>}</b></code></dt>
  8014. <dd></dd>
  8015. <br>
  8016. <dt><a href="#DOIF_state">dynamischer Status </a> <code><b>attr</b> &lt;name&gt; <b>state </b>&lt;content&gt;</code></dt>
  8017. <dd>&lt;content&gt; ist das Ergebnis eines Perl-Ausdrucks, DOIF-Syntax ([&lt;device&gt;:&lt;reading&gt;], usw.) triggert bei Event die Berechnung.</dd>
  8018. <br>
  8019. <dt><a href="#DOIF_DOIF_Readings">Erzeugen berechneter Readings </a> <code><b>attr</b> &lt;name&gt; <b>DOIF_Readings </b>&lt;readingname_1&gt;<b>:</b>&lt;content_1&gt;<b>,</b>&lt;readingname_2&gt;<b>:</b>&lt;content_2&gt; ...</code></dt>
  8020. <dd>&lt;content_n&gt; ist das Ergebnis von Perl-AusdrĂźcken, DOIF-Syntax ([&lt;device&gt;:&lt;reading&gt;], usw.) triggert bei Event die Berechnung.</dd>
  8021. <br>
  8022. <dt><a href="#DOIF_notexist">Ersatzwert fĂźr nicht existierende Readings oder Status</a> <code><b>attr</b> &lt;name&gt; <b>notexist </b>"&lt;Ersatzwert&gt;"</code></dt>
  8023. <dd></dd>
  8024. <br>
  8025. <dt><a href="#DOIF_initialize">Status Initialisierung nach Neustart</a> <code><b>attr</b> &lt;name&gt; <b>intialize </b>&lt;Status nach Neustart&gt;</code></dt>
  8026. <dd></dd>
  8027. <br>
  8028. <dt><a href="#DOIF_disable">Ger&auml;t vollst&auml;ndig deaktivieren</a> <code><b>attr</b> &lt;name&gt; <b>disable </b>&lt;<b>0</b>|<b>1</b>&gt;</code></dt>
  8029. <dd>1 deaktiviert das Modul vollst&auml;ndig, 0 aktiviert es.</dd>
  8030. <br>
  8031. <dt><a href="#DOIF_checkall">Alle Bedingungen pr&uuml;fen</a> <code><b>attr</b> &lt;name&gt; <b>checkall </b>&lt;<b>event</b>|<b>timer</b>|<b>all</b>&gt;</code></dt>
  8032. <dd><code>event</code> Alle Bedingungen werden geprĂźft, wenn ein Event-Trigger (EreignisauslĂśser) auslĂśst.<br>
  8033. <code>timer</code> Alle Bedingungen werden geprĂźft, wenn ein Timer-Trigger (ZeitauslĂśser) auslĂśst.<br>
  8034. <code>all&nbsp;&nbsp;</code> Alle Bedingungen werden gepr&uuml;ft.<br>
  8035. Die Befehle nach der ersten wahren Bedingung werden ausgef&uuml;hrt.
  8036. </dd>
  8037. <br>
  8038. <dt><a href="#DOIF_addStateEvent">Eindeutige Statuserkennung</a> <code><b>attr</b> &lt;name&gt; <b>addStateEvent </b>&lt;<b>0</b>|<b>ungleich Null</b>&gt;</code></dt>
  8039. <dd>fĂźgt einem Ger&auml;testatus-Event "state:" hinzu. ungleich Null aktiviert, 0 deaktiviert, siehe auch <a href="#addStateEvent">addStateEvent</a></dd>
  8040. <br>
  8041. <a name="readingList"></a>
  8042. <dt><code><b>attr</b> &lt;name&gt; <b>readingList </b>&lt;Reading1&gt;&nbsp;&lt;Reading2&gt; ...</code></dt>
  8043. <dd>fĂźgt zum set-Befehl direkt setzbare, durch Leerzeichen getrennte Readings hinzu.</dd>
  8044. <br>
  8045. <dt><code><b>attr</b> &lt;name&gt; <b>setList </b>&lt;Reading1&gt;<b>:</b>&lang;&lt;Modifier1&gt;<b>,</b>&rang;&lt;Value1&gt;<b>,</b>&lt;Value2&gt;<b>,</b>&lt;...&gt;<b> </b>&lt;Reading2&gt;<b>:</b>&lang;&lt;Modifier2&gt;<b>,</b>&rang;&lt;Value1&gt;<b>,</b>&lt;Value2&gt;<b>,</b>&lt;...&gt; ...</code></dt>
  8046. <dd>fĂźgt einem Reading einen optionalen Widgetmodifier und eine Werteliste (, getrennt) hinzu. <a href="#setList">setList</a>, <a href="#widgetOverride">widgetOverride</a>, und <a href="#webCmd">webCmd</a></dd>
  8047. <br>
  8048. <dt><a href="#DOIF_uiTable">User Interface f&uuml;r DOIF</a> <code><b>attr</b> &lt;name&gt; <b>uiTable</b> &lang;<b>{</b>&lt;perl code (format specification, template specification, function definition, control variable, ...)&gt;<b>}\n</b>&rang;&lt;template file import, method definition, table definition&gt;</code></dt>
  8049. <dd><u>format specification:</u></dd>
  8050. <dd><code>$TABLE = "&lt;CSS-Attribute&gt;"</code> ergänzt das table-Elemente um CSS-Attribute.</dd>
  8051. <dd><code>$TD{&lt;rows&gt;}{&lt;columns&gt;} = "&lt;HTML Attribute&gt;"</code> ergänzt td-Elemente um HTML-Attribute.</dd>
  8052. <dd><code>$TR{&lt;rows&gt;} = "&lt;HTML Attribute&gt;"</code> ergänzt tr-Elemente um HTML-Attribute.</dd>
  8053. <dd><code>$TC{&lt;columns&gt;} = "&lt;HTML Attribute&gt;"</code> ergänzt zu columns gehÜrende td-Elemente um HTML-Attribute.</dd>
  8054. <dd><u>template specification:</u></dd>
  8055. <dd><code>$TPL{&lt;name&gt;} = "&lt;Zeichenkette&gt;"</code> speichert ein Template.</dd>
  8056. <dd><u>function definition:</u></dd>
  8057. <dd><code>sub FUNC_&lt;name&gt; {&lt;function BLOCK&gt;}</code> definiert eine Funktion.</dd>
  8058. <dd><u>control variables:</u></dd>
  8059. <dd><code>$ATTRIBUTESFIRST = 1;</code> organisiert die Detailansicht um.</dd>
  8060. <dd><code>$SHOWNOSTATE = 1;</code> blendet den Status in der Gerätezeile aus.</dd>
  8061. <dd><code>$SHOWNODEVICELINE = "&lt;regex room&gt;";</code> blendet die Gerätezeile aus, wenn &lt;regex room&gt; zum Raumnamen passt, gilt nicht fßr den Raum <i>Everything</i>.</dd>
  8062. <dd><code>$SHOWNODEVICELINK = 1;</code> schaltet das Ersetzen des Gerätenamen durch einen Link auf die Detailseite aus.</dd>
  8063. <br>
  8064. <dd><u>template file import:</u></dd>
  8065. <dd><code>IMPORT &lt;path with filename&gt;</code> importiert eine Templatedatei.</dd>
  8066. <dd><u>method definition:</u></dd>
  8067. <dd><code>DEF TPL_&lt;name&gt;(&lt;definition with place holder $1,$2 usw.&gt;)</code> erzeugt ein Methodentemplate zur wiederholten Nutzung in der Tabellendefinition.</dd>
  8068. <dd><u>table definition:</u></dd>
  8069. <dd>Schreiben die nachstehenden Elemente HTML-Code in die Tabellenzelle, so wird er interpretiert.</dd>
  8070. <dd><code>&crarr;</code> oder <code>&crarr;&crarr;</code> trennt Tabellenzeilen.</dd>
  8071. <dd><code>|</code> oder <code>|&crarr;</code> trennt Tabellenzellen.</dd>
  8072. <dd><code>&gt;&crarr;</code> oder <code>,&crarr;</code> sind zur Textstrukturierung zugelassen.</dd>
  8073. <dd><code>WID([&lt;device&gt;:&lt;reading&gt;],"&lt;widget modifier&gt;"&lang;,"&lt;command&gt;"&rang;)</code> bindet ein Widget an &lt;device&gt;:&lt;reading&gt;, &lt;command&gt; steht fĂźr <i>set</i> oder <i>setreading</i>, siehe <a href="#widgetOverride"> widgetOverride </a> und <a href="https://wiki.fhem.de/wiki/FHEMWEB/Widgets"> FHEMWEB-Widgets </a></dd>
  8074. <dd><code>STY(&lt;content&gt;,&lt;CSS style attributes&gt;)</code> schreibt den Inhalt von &lt;content&gt; in die Zelle und formatiert ihn mit &lt;CSS style attributes&gt;.</dd>
  8075. <dd><code>&lt;content&gt;</code> schreibt den Inhalt von &lt;content&gt; in die Zelle.</dd>
  8076. <dd>&lt;content&gt; und &lt;CSS style attributes&gt; sind das Ergebnis von Perl-AusdrĂźcken. Enthalten sie DOIF-Syntax ([&lt;device&gt;:&lt;reading&gt;], usw.), werden sie dynamisch erzeugt.</dd>
  8077. <dd><code>PUP(&lt;DOIF-name to show interface table&gt;, &lt;iconname[@color number]&gt;)</code></dd>
  8078. <dd>gibt ein Link zum �ffnen eines Popup-Fensters zurßck.</dd>
  8079. <dd>&lt;DOIF-name to show interface table&gt; Name des DOIF-Gerätes dessen Benutzerschnittstelle angezeigt werden soll.</dd>
  8080. <dd>&lt;iconname[@color number]|string&gt; gibt ein Icon an, wenn das Icon nicht verfĂźgbar ist, wird &lt;string&gt; angezeigt.</dd>
  8081. <br>
  8082. <dt><a href="#readingFnAttributes">readingFnAttributes</a></dt>
  8083. <dd></dd>
  8084. </dl>
  8085. <br>
  8086. </ul>
  8087. <a name="DOIF_PerlFunktionen_kurz"></a>
  8088. <u>Perl-Funktionen</u>
  8089. <ul>
  8090. <dl>
  8091. <dt><code>DOIF_hsv(&lt;current value&gt;, &lt;lower value&gt;, &lt;upper value&gt;, &lt;lower HUE value&gt;, &lt;upper HUE value&gt;, &lt;saturation&gt;, &lt;lightness&gt;)</code></dt>
  8092. <dd>gibt eine im HSV-Raum interpolierte HTML Farbnummer zurĂźck, mit Prefix <b>#</b></dd>
  8093. <dd>&lt;current value&gt; aktueller Wert, fĂźr den die Farbnummer erzeugt wird.</dd>
  8094. <dd>&lt;lower value&gt; unterer Wert, des Bereiches auf den die Farbnummer skaliert wird.</dd>
  8095. <dd>&lt;upper value&gt; oberer Wert, des Bereiches auf den die Farbnummer skaliert wird.</dd>
  8096. <dd>&lt;lower HUE value&gt; unterer HUE-Wert, der mit dem unteren Wert korrespondiert (0-360).</dd>
  8097. <dd>&lt;upper HUE value&gt; oberer HUE-Wert, der mit dem oberen Wert korrespondiert (0-360).</dd>
  8098. <dd>&lt;saturation&gt; Farbsättigung (0-100).</dd>
  8099. <dd>&lt;lightness&gt; Hellwert (0-100).</dd>
  8100. <br>
  8101. <dt><code>DOIF_rgb(&lt;start color number&gt;, &lt;end color number&gt;, &lt;lower value&gt;, &lt;upper value&gt;, &lt;current value&gt;)</code></dt>
  8102. <dd>gibt eine linear interpolierte RGB Farbnummer zurßck, abhängig vom Prefix der Start- o. Endfarbnummer mit oder ohne Prefix <b>#</b>.</dd>
  8103. <dd>&lt;start color number&gt; Startfarbnummer des Farbbereiches, mit oder ohne Prefix <b>#</b>.</dd>
  8104. <dd>&lt;end color number&gt; Endfarbnummer des Farbbereiches, mit oder ohne Prefix <b>#</b>.</dd>
  8105. <dd>&lt;lower value&gt; unterer Wert, des Bereiches auf den die Farbnummer skaliert wird.</dd>
  8106. <dd>&lt;upper value&gt; oberer Wert, des Bereiches auf den die Farbnummer skaliert wird.</dd>
  8107. <dd>&lt;current value&gt; aktueller Wert, fĂźr den die Farbnummer erzeugt wird.</dd>
  8108. <br>
  8109. <dt><code>FW_makeImage(&lt;iconname[@color number]&gt;)</code></dt>
  8110. <dd>gibt HTML-Code zurĂźck, der ein FHEM icon einbindet.</dd>
  8111. <dd>&lt;color number&gt; optionale Farbnummer in Gro�schreibung, mit oder ohne Prefix <b>#</b>.</dd>
  8112. <dd>weitere Infos im Quelltext von 01_FHEMWEB.pm.</dd>
  8113. </dl>
  8114. </ul>
  8115. <!-- Ende der Kurzreferenz -->
  8116. <br>
  8117. <a name="DOIF_Perl_Modus"></a>
  8118. <b>Perl Modus</b><br>
  8119. <br>
  8120. Der Perl-Modus ist sowohl fßr einfache, als auch fßr komplexere Automatisierungsabläufe geeignet. Der Anwender hat mehr Einfluss auf den Ablauf der Steuerung als im FHEM-Modus.
  8121. Die Abläufe lassen sich, wie in hÜheren Programmiersprachen ßblich, strukturiert programmieren. Zum Zeitpunkt der Definition werden alle DOIF-spezifischen Angaben in Perl ßbersetzt, zum Zeitpunkt der Ausfßhrung wird nur noch Perl ausgefßhrt, dadurch wird maximale Performance gewährleistet.<br>
  8122. <br>
  8123. Syntax Perl-Modus:<br>
  8124. <br>
  8125. <ol><code>define &lt;name&gt; DOIF &lt;Blockname&gt; {&lt;Ereignisblock: Perlcode mit Ereignis-/Zeittriggern in eckigen Klammern&gt;}</code></ol>
  8126. <br>
  8127. Ein Ereignisblock wird ausgefĂźhrt, wenn dieser bedingt durch <a href="#DOIF_Operanden">Ereignis- und Zeittrigger in eckigen Klammern</a> innerhalb des Blocks, getriggert wird.
  8128. Es wird die vollständige Perl-Syntax unterstßtzt. Es kÜnnen beliebig viele EreignisblÜcke innerhalb eines DOIF-Devices definiert werden. Sie werden unabhängig voneinander durch passende Trigger ausgefßhrt. Der Name eines Ereignisblocks ist optional.<br>
  8129. <br>
  8130. Der Status des Moduls wird nicht vom Modul gesetzt, er kann vom Anwender mit Hilfe der Funktion <code>set_State</code> verändert werden, siehe <a href="#DOIF_Spezifische_Perl-Funktionen_im_Perl-Modus">spezifische Perl-Funktionen im Perl-Modus</a>.
  8131. FHEM-Befehle werden durch den Aufruf der Perlfunktion <code>fhem("...")</code> ausgefßhrt. Fßr den häufig genutzten fhem-Befehl <b>set</b> wurde eine kompatible Perlfunktion namens <b>fhem_set</b> definiert.
  8132. Sie ist performanter und sollte bevorzugt verwendet werden, da das Parsen nach dem FHEM set-Befehl entfällt.<br>
  8133. <br>
  8134. Der Benutzer kann mit der Funktion <code>set_Exec</code> beliebig viele eigene Timer definieren, die unabhängig voneinander gesetzt und ausgewertet werden kÜnnen, siehe <a href="#DOIF_Spezifische_Perl-Funktionen_im_Perl-Modus">Spezifische Perl-Funktionen im Perl-Modus</a>.<br>
  8135. <br>
  8136. Definitionen im FHEM-Modus mit do-Attribut der Form:<br>
  8137. <br>
  8138. <ol><code>DOIF (&lt;Bedingung mit Trigger&gt;) (&lt;FHEM-Befehle&gt;) DOELSE (&lt;FHEM-Befehle&gt;)</code><br></ol>
  8139. <br>
  8140. lassen sich wie folgt in Perl-Modus Ăźbertragen:<br>
  8141. <br>
  8142. <ol><code>DOIF {if (&lt;Bedingung mit Trigger&gt;) {fhem"&lt;FHEM-Befehle&gt;"} else {fhem"&lt;FHEM-Befehle&gt;"}}</code><br></ol>
  8143. <br>
  8144. Die Bedingungen des FHEM-Modus kÜnnen ohne �nderungen in Perl-Modus ßbernommen werden.<br>
  8145. <br>
  8146. <a name="DOIF_Einfache_Anwendungsbeispiele_Perl"></a>
  8147. <u>Einfache Anwendungsbeispiele (vgl. <a href="#DOIF_Einfache_Anwendungsbeispiele">Anwendungsbeispiele im FHEM-Modus</a>):</u>
  8148. <ol>
  8149. <br>
  8150. <code>define di_rc_tv DOIF {if ([remotecontol:"on"]) {fhem_set"tv on"} else {fhem_set"tv off"}}</code><br>
  8151. <br>
  8152. <code>define di_clock_radio DOIF {if ([06:30|Mo Di Mi] or [08:30|Do Fr Sa So]) {fhem_set"radio on"}} {if ([08:00|Mo Di Mi] or [09:30|Do Fr Sa So]) {fhem_set"radio off"}}</code><br>
  8153. <br>
  8154. <code>define di_lamp DOIF {if ([06:00-09:00] and [sensor:brightness] < 40) {fhem_set"lamp:FILTER=STATE!=on on"} else {fhem_set"lamp:FILTER=STATE!=off off"}}</code><br>
  8155. <br>
  8156. </ol>
  8157. Bemerkung: Im Gegensatz zum FHEM-Modus arbeitet der Perl-Modus ohne Auswertung des eigenen Status (Zustandsauswertung),
  8158. daher muss der Anwender selbst darauf achten, wiederholende Ausfßhrungen zu vermeiden (im oberen Beispiel z.B. mit FILTER-Option). Elegant lässt sich das Problem der wiederholenden Ausfßhrung bei zyklisch sendenden Sensoren mit Hilfe des Attributes <a href="#DOIF_DOIF_Readings">DOIF_Readings</a> lÜsen.<br>
  8159. <br>
  8160. Es kÜnnen beliebig viele EreignisblÜcke definiert werden, die unabhängig von einander durch einen oder mehrere Trigger ausgewertet und zur Ausfßhrung fßhren kÜnnen:<br>
  8161. <br>
  8162. <code>DOIF<br>
  8163. { if (&lt;Bedingung mit Triggern&gt;) ... }<br>
  8164. { if (&lt;Bedingung mit Triggern&gt;) ... }<br>
  8165. ...</code><br>
  8166. <br>
  8167. Einzelne Ereignis-/Zeittrigger, die nicht logisch mit anderen Bedingungen oder Triggern ausgewertet werden mĂźssen, kĂśnnen auch ohne if-Anweisung angegeben werden, z. B.:<br>
  8168. <br>
  8169. <code>DOIF<br>
  8170. {["lamp:on"];...}<br>
  8171. {[08:00];...}<br>
  8172. ...</code><br>
  8173. <br>
  8174. Ereignis-/Zeittrigger sind intern Perlfunktionen, daher kĂśnnen sie an beliebiger Stelle im Perlcode angegeben werden, wo Perlfunktionen vorkommen dĂźrfen, z. B.:<br>
  8175. <br>
  8176. <code>DOIF {Log 1,"state of lamp: ".[lamp:state]}</code><br>
  8177. <br>
  8178. <code>DOIF {fhem_set("lamp ".[remote:state])}</code><br>
  8179. <br>
  8180. Es sind beliebige Hierarchietiefen mĂśglich:<br>
  8181. <br>
  8182. <code>DOIF<br>
  8183. { if (&lt;Bedingung&gt;) {<br>
  8184. &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&lt;Bedingung&gt;)&nbsp;{<br>
  8185. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&lt;Bedingung mit Triggern&gt;...<br>
  8186. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>
  8187. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
  8188. &nbsp;&nbsp;&nbsp;&nbsp;}<br>
  8189. &nbsp;&nbsp;}<br>
  8190. }</code><br>
  8191. <br>
  8192. Bemerkung: Innerhalb eines Ereignisblocks muss mindestens ein Trigger definiert werden, damit der gesamte Block beim passenden Trigger ausgefĂźhrt wird.<br>
  8193. <br>
  8194. <a name="DOIF_Inhaltsuebersicht"></a>
  8195. <b>InhaltsĂźbersicht</b> (Beispiele im Perlmodus sind besonders gekennzeichnet)<br>
  8196. <ul><br>
  8197. <a href="#DOIF_Lesbarkeit_der_Definitionen">Lesbarkeit der Definitionen</a><br>
  8198. <a href="#DOIF_Ereignissteuerung">Ereignissteuerung</a><br>
  8199. <a href="#DOIF_Teilausdruecke_abfragen">TeilausdrĂźcke abfragen</a><br>
  8200. <a href="#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events">Ereignissteuerung Ăźber Auswertung von Events</a><br>
  8201. <a href="#DOIF_Angaben_im_Ausfuehrungsteil">Angaben im AusfĂźhrungsteil</a><br>
  8202. <a href="#DOIF_Filtern_nach_Zahlen">Filtern nach AusdrĂźcken mit Ausgabeformatierung</a><br>
  8203. <a href="#DOIF_aggregation">Aggregieren von Werten</a><br>
  8204. <a href="#DOIF_Zeitsteuerung">Zeitsteuerung</a><br>
  8205. <a href="#DOIF_Relative_Zeitangaben">Relative Zeitangaben</a><br>
  8206. <a href="#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet">Zeitangaben nach Zeitraster ausgerichtet</a><br>
  8207. <a href="#DOIF_Relative_Zeitangaben_nach_Zeitraster_ausgerichtet">Relative Zeitangaben nach Zeitraster ausgerichtet</a><br>
  8208. <a href="#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet_alle_X_Stunden">Zeitangaben nach Zeitraster ausgerichtet alle X Stunden</a><br>
  8209. <a href="#DOIF_Wochentagsteuerung">Wochentagsteuerung</a><br>
  8210. <a href="#DOIF_Zeitsteuerung_mit_Zeitintervallen">Zeitsteuerung mit Zeitintervallen</a><br>
  8211. <a href="#DOIF_Indirekten_Zeitangaben">Indirekten Zeitangaben</a><br>
  8212. <a href="#DOIF_Zeitsteuerung_mit_Zeitberechnung">Zeitsteuerung mit Zeitberechnung</a><br>
  8213. <a href="#DOIF_Intervall-Timer">Intervall-Timer</a><br>
  8214. <a href="#DOIF_Kombination_von_Ereignis_und_Zeitsteuerung_mit_logischen_Abfragen">Kombination von Ereignis- und Zeitsteuerung mit logischen Abfragen</a><br>
  8215. <a href="#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger">Zeitintervalle, Readings und Status ohne Trigger</a><br>
  8216. <a href="#DOIF_notexist">Ersatzwert fĂźr nicht existierende Readings oder Status</a><br>
  8217. <a href="#DOIF_Zeitspanne_eines_Readings_seit_der_letzten_Aenderung">Zeitspanne eines Readings seit der letzten �nderung</a><br>
  8218. <a href="#DOIF_setList__readingList">Darstellungselement mit EingabemĂśglichkeit im Frontend und Schaltfunktion</a><br>
  8219. <a href="#DOIF_uiTable">uiTable, das User Interface</a><br>
  8220. <a href="#DOIF_Reine_Statusanzeige_ohne_Ausfuehrung_von_Befehlen">Reine Statusanzeige ohne AusfĂźhrung von Befehlen</a><br>
  8221. <a href="#DOIF_state">Anpassung des Status mit Hilfe des Attributes <code>state</code></a><br>
  8222. <a href="#DOIF_DOIF_Readings">Erzeugen berechneter Readings<br>
  8223. <a href="#DOIF_disable">Deaktivieren des Moduls</a><br>
  8224. <a href="https://wiki.fhem.de/wiki/DOIF">DOIF im FHEM-Wiki</a><br>
  8225. <a href="https://forum.fhem.de/index.php/board,73.0.html">DOIF im FHEM-Forum</a><br>
  8226. <a href="#DOIF_Kurzreferenz">Kurzreferenz</a><br>
  8227. </ul><br>
  8228. <u>Eigene Funktionen</u><br>
  8229. <br>
  8230. Ein besonderer Block ist der Block namens <b>subs</b>. In diesem Block werden Perlfunktionen definiert, die innerhalb des DOIFs genutzt werden.
  8231. Um eine mÜglichst hohe Kompatibilität zu Perl sicherzustellen, wird keine DOIF-Syntax in eckigen Klammern unterstßtzt, insb. gibt es keine Trigger, die den Block ausfßhren kÜnnen.<br>
  8232. <br>
  8233. Beispiel:<br>
  8234. <br><code>
  8235. DOIF
  8236. subs { ## Definition von Perlfunktionen lamp_on und lamp_off<br>
  8237. &nbsp; sub lamp_on {<br>
  8238. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fhem_set("lamp&nbsp;on");<br>
  8239. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_State("on");<br>
  8240. &nbsp;&nbsp;}<br>
  8241. &nbsp;&nbsp;sub&nbsp;lamp_off&nbsp;{<br>
  8242. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fhem_set("lamp&nbsp;off");<br>
  8243. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_State("off");<br>
  8244. &nbsp;&nbsp;}<br>
  8245. }<br>
  8246. {[06:00];lamp_on()}&nbsp;&nbsp;## Um 06:00 Uhr wird die Funktion lamp_on aufgerufen<br>
  8247. {[08:00];lamp_off()} ## Um 08:00 Uhr wird die Funktion lamp_off aufgerufen<br>
  8248. </code><br>
  8249. <br>
  8250. <u>Eigene Funktionen mit Parametern</u><br>
  8251. <br>
  8252. Unter Verwendung von Funktionsparamerter lassen sich Definitionen oft vereinfachen, das obige Beispiel lässt sich mit Hilfe nur einer Funktion kßrzer wie folgt definieren:<br>
  8253. <br><code>
  8254. DOIF
  8255. subs { ## Definition der Perlfunktion lamp<br>
  8256. &nbsp; sub lamp {<br>
  8257. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my ($state)=@_;&nbsp;&nbsp# Variable $state mit dem Parameter belegen<br>
  8258. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fhem_set("lamp&nbsp;$state");<br>
  8259. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_State($state);<br>
  8260. &nbsp;&nbsp;}<br>
  8261. }<br>
  8262. {[06:00];lamp("on")}&nbsp;&nbsp;## Um 06:00 Uhr wird die Funktion lamp mit Parameter "on" aufgerufen<br>
  8263. {[08:00];lamp("off")} ## Um 08:00 Uhr wird die Funktion lamp mit dem Parameter "off" aufgerufen<br>
  8264. </code><br>
  8265. <br>
  8266. Der Namensraum im Perl-Modus ist gekapselt. Selbstdefinierte Funktionen im DOIF-Device kĂśnnen nicht bereits existierende Perlfunktionen in FHEM (Namensraum main) Ăźberschreiben.
  8267. Funktionen aus dem Namensraum main mĂźssen mit vorangestellem Doppelpunkt angegeben werden: <code>::&lt;perlfunction&gt;</code><br>
  8268. <br>
  8269. Eigene Perlfunktionen, die in myutils ausgelagert sind, befinden sich ebenfalls im Namensraum main. Wenn sie ausschlie�ich in DOIF-Devices benutzt werden sollen, so kann am Anfang vor deren Definition in myutils "package DOIF;" angegeben werden.
  8270. In diesen Fall sind auch diese Funktion im DOIF-Device bekannt - sie kĂśnnen dann ohne vorangestellten Doppelpunkt genutzt werden.<br>
  8271. <br>
  8272. Folgende FHEM-Perlfunktionen wurden ebenfalls im DOIF-Namensraum definiert, sie kĂśnnen, wie gewohnt ohne Doppelpunkt genutzt werden:<br>
  8273. <br>
  8274. <code><b>fhem, Log, Log3, InternVal, InternalNum, OldReadingsVal, OldReadingsNum, OldReadingsTimestamp, ReadingsVal, ReadingsNum, ReadingsTimestamp, ReadingsAge, Value, OldValue, OldTimestamp, AttrVal, AttrNum</code></b><br>
  8275. <br>
  8276. <a name="DOIF_Spezifische_Perl-Funktionen_im_Perl-Modus"></a>
  8277. <b>Spezifische Perl-Funktionen im Perl-Modus</b><br>
  8278. <br>
  8279. FHEM set-Befehl ausfßhren: <code><b>fhem_set(&lt;content&gt;)</code></b>, mit &lt;content&gt; �bergabeparameter des FHEM set-Befehls<br>
  8280. <br>
  8281. Beispiel: Lampe ausschalten:<br>
  8282. <br>
  8283. <code>fhem_set("lamp off");</code><br>
  8284. <br>
  8285. entspricht:<br>
  8286. <br>
  8287. <code>fhem("set lamp off");</code><br>
  8288. <br>
  8289. Der Aufruf der fhem_set-Funktion ist performater, da das Parsen nach dem set-Befehl im Gegensatz zum Aufruf mit der Funktion <code>fhem</code> entfällt.<br>
  8290. <br>
  8291. Ein beliebiges FHEM-Event absetzen: <code><b>set_Event(&lt;Event&gt;)</code></b><br>
  8292. <br>
  8293. Beispiel: Setze das Event "on":<br>
  8294. <br>
  8295. <code>set_Event("on");</code><br>
  8296. <br>
  8297. Status setzen: <code><b>set_State(&lt;value&gt;,&lt;trigger&gt;)</code></b>, mit &lt;trigger&gt;: 0 ohne Trigger, 1 mit Trigger, &lt;trigger&gt; ist optional, default ist 1<br>
  8298. <br>
  8299. Beispiel: Status des eignen DOIF-Device auf "on" setzen:<br>
  8300. <br>
  8301. <code>set_State("on");</code><br>
  8302. <br>
  8303. Status des eigenen DOIF-Devices holen: <code><b>get_State()</code></b><br>
  8304. <br>
  8305. Beispiel: Schalte lampe mit dem eigenen Status:<br>
  8306. <br>
  8307. <code>fhem_set("lamp ".get_State());</code><br>
  8308. <br>
  8309. Reading des eigenen DOIF-Devices schreiben: <code><b>set_Reading(&lt;readingName&gt;,&lt;value&gt;,&lt;trigger&gt;)</code></b>, mit &lt;trigger&gt;: 0 ohne Trigger, 1 mit Trigger, &lt;trigger&gt; ist optional, default ist 0<br>
  8310. <br>
  8311. <code>set_Reading("weather","cold");</code><br>
  8312. <br>
  8313. Reading des eigenen DOIF-Devices holen: <code><b>get_Reading(&lt;readingName&gt;)</code></b><br>
  8314. <br>
  8315. Beispiel: Schalte Lampe mit dem Inhalt des eigenen Readings "dim":<br>
  8316. <br>
  8317. <code>fhem_set("lamp ".get_Reading("dim"));</code><br>
  8318. <br>
  8319. Setzen mehrerer Readings des eigenen DOIF-Devices in einem Eventblock:<br>
  8320. <br>
  8321. <code><b>set_Reading_Begin()</code></b><br>
  8322. <code><b>set_Reading_Update(&lt;readingName&gt;,&lt;value&gt;,&lt;change&gt;)</code></b>, &lt;change&gt; ist optional<br>
  8323. <code><b>set_Reading_End(&lt;trigger&gt;)</code></b>, mit &lt;trigger&gt;: 0 ohne Trigger, 1 mit Trigger, &lt;trigger&gt;<br>
  8324. <br>
  8325. Die obigen Funktionen entsprechen den FHEM-Perlfunktionen: <code>readingsBegin, readingsBulkUpdate, readingsEndUpdate</code>.<br>
  8326. <br>
  8327. Beispiel:<br>
  8328. <br>
  8329. Die Readings "temperature" und "humidity" sollen in einem Eventblock mit dem zuvor belegten Inhalt der Variablen $temp bzw. $hum belegt werden.<br>
  8330. <br>
  8331. <code>set_Reading_Begin;</code><br>
  8332. <code>set_Reading_Update("temperature",$temp);</code><br>
  8333. <code>set_Reading_Update("humidity",$hum);</code><br>
  8334. <code>set_Reading_End(1);</code><br>
  8335. <br>
  8336. <u>AusfĂźhrungstimer</u><br>
  8337. <br>
  8338. Mit Hilfe von AusfĂźhrungstimern kĂśnnen Anweisungen verzĂśgert ausgefĂźhrt werden. Im Gegensatz zum FHEM-Modus kĂśnnen beliebig viele Timer gleichzeitig genutzt werden.
  8339. Ein Ausfßhrungstimer wird mit einem Timer-Namen eindeutig definiert. �ber den Timer-Namen kann die Restlaufzeit abgefragt werden, ebenfalls kann er vor seinem Ablauf gelÜscht werden.<br>
  8340. <br>
  8341. Timer setzen: <code><b>set_Exec(&lt;timerName&gt;, &lt;seconds&gt;, &lt;perlCode&gt, &lt;parameter&gt)</code></b>, mit &lt;timerName&gt;: beliebige Angabe, sie spezifiziert eindeutig einen Timer,
  8342. welcher nach Ablauf den angegebenen Perlcode &lt;perlCode&gt; aufruft. Falls als Perlcode eine Perlfunktion angegeben wird, kann optional ein �bergabeparameter &lt;parameter&gt; angegeben werden. Die Perlfunkion muss eindeutig sein und in FHEM zuvor deklariert worden sein.
  8343. Wird set_Exec mit dem gleichen &lt;timerName&gt; vor seinem Ablauf erneut aufgerufen, so wird der laufender Timer gelĂśscht und neugesetzt.<br>
  8344. <br>
  8345. Timer holen: <code><b>get_Exec(&lt;timerName&gt;)</code></b>, Returnwert: 0, wenn Timer abgelaufen oder nicht gesetzt ist, sonst Anzahl der Sekunden bis zum Ablauf des Timers<br>
  8346. <br>
  8347. Laufenden Timer lĂśschen: <code><b>del_Exec(&lt;timerName&gt;)</code></b><br>
  8348. <br>
  8349. Beispiel: Funktion namens "lamp" mit dem �bergabeparameter "on" 30 Sekunden verzÜgert aufrufen:<br>
  8350. <br>
  8351. <code>set_Exec("lamp_timer",30,'lamp','on');</code><br>
  8352. <br>
  8353. alternativ<br>
  8354. <br>
  8355. <code>set_Exec("lamp_timer",30,'lamp("on")');</code><br>
  8356. <br>
  8357. Beispiel: Lampe verzĂśgert um 30 Sekunden ausschalten:<br>
  8358. <br>
  8359. <code>set_Exec("off",30,'fhem_set("lamp off")');</code><br>
  8360. <br>
  8361. Beispiel: Das Event "off" 30 Sekunden verzĂśgert auslĂśsen:<br>
  8362. <br>
  8363. <code>set_Exec("off_Event",30,'set_Event("off")');</code><br>
  8364. <br>
  8365. <u>init-Block</u><br>
  8366. <br>
  8367. Wird ein Ereignisblock mit dem Namen <b>init</b> benannt, so wird dieser Block beim Systemstart ausgefĂźhrt. Er bietet sich insb. an, um Device-Variablen des Moduls vorzubelegen.<br>
  8368. <br>
  8369. <u>Device-Variablen</u><br>
  8370. <br>
  8371. Device-Variablen sind sogenannte Instanzvariablen, die global innerhalb eines DOIF-Devices genutzt werden kÜnnen. Deren Inhalt bleibt während der Laufzeit des System erhalten. Sie beginnen mit <b>$_</b> und mßssen nicht deklariert werden.
  8372. Wenn sie nicht vorbelegt werden, gelten sie als nicht definiert. Das lässt sich abfragen mit:<br>
  8373. <br>
  8374. <code>if (defined $_...) ...</code><br>
  8375. <br>
  8376. Instanzvariablen Ăźberleben nicht den Neustart, sie kĂśnnen jedoch z.B. im init-Block, der beim Systemstart ausgewertet wird, aus Readings vorbelegt werden.<br>
  8377. <br>
  8378. Bsp. Vorbelgung einer Instanzvariablen beim Systemstart mit dem Status des Moduls:<br>
  8379. <br>
  8380. <code>init {$_status=get_State()}</code><br>
  8381. <br>
  8382. Instanzvariablen lassen sich indizieren, z. B.:<br>
  8383. <br>
  8384. <code>my $i=0;<br>
  8385. $_betrag{$i}=100;</code><br>
  8386. <br>
  8387. Ebenso funktionieren hash-Variablen z. B.: <br>
  8388. <code>$_betrag{heute}=100;</code><br>
  8389. <br>
  8390. <u>Blokierende Funktionsaufrufe (blocking calls)</u><br>
  8391. <br>
  8392. DOIF verwaltet blockierende Funktionsaufrufe, d.h. die in diesem Zusammenhang gestarteten FHEM-Instanzen werden gel&ouml;scht, beim Herunterfahren (shutdown), Wiedereinlesen der Konfiguration (rereadcfg) &Auml;nderung der Konfiguration (modify) und Deaktivieren des Ger&auml;tes (disabled).<br>
  8393. <br>
  8394. Die Handhabung von blockierenden Funktionsaufrufen ist im FHEMwiki erkl&auml;rt, s. <a href="https://wiki.fhem.de/wiki/Blocking_Call">Blocking Call</a>.<br>
  8395. <br>
  8396. Der von der Funktion BlockingCall zur&uuml;ckgegebene Datensatz ist unterhalb von <b>$_blockingcalls</b> abzulegen, z.B.<br>
  8397. <br>
  8398. <code>$_blockingcalls{&lt;blocking call name&gt;} = ::BlockingCall(&lt;blocking function&gt;, &lt;argument&gt;, &lt;finish function&gt;, &lt;timeout&gt;, &lt;abort function&gt;, &lt;abort argument&gt;) unless(defined($_blockingcalls{&lt;blocking call name&gt;}));</code><br>
  8399. <br>
  8400. F&uuml;r unterschiedliche blockierende Funktionen ist jeweils ein eigener Name (&lt;blocking call name&gt;) unterhalb von $_blockingcalls anzulegen.<br>
  8401. <br>
  8402. Wenn <i>&lt;blocking function&gt;</i>, <i>&lt;finish function&gt;</i> und <i>&lt;abort function&gt;</i> im Package DOIF definiert werden, dann ist dem Funktionsnamen <i>DOIF::</i> voranzustellen, im Aufruf der Funktion BlockingCall, z.B. <code>DOIF::&lt;blocking function&gt;</code> <br>
  8403. <br>
  8404. <b>$_blockingcalls</b> ist eine f&uuml;r DOIF reservierte Variable und darf nur in der beschriebener Weise verwendet werden.<br>
  8405. <br>
  8406. <a name="DOIF_Attribute_Perl_Modus"></a>
  8407. <u>Nutzbare Attribute im Perl-Modus</u><br>
  8408. <br>
  8409. <ul>
  8410. <a href="#DOIF_addStateEvent">addStateEvent</a> &nbsp;
  8411. <a href="#DOIF_checkReadingEvent">checkReadingEvent</a> &nbsp;
  8412. <a href="#DOIF_DOIF_Readings">DOIF_Readings</a> &nbsp;
  8413. <a href="#DOIF_disable">disable</a> &nbsp;
  8414. <a href="#DOIF_notexist">notexist</a> &nbsp;
  8415. <a href="#DOIF_setList__readingList">readingList</a> &nbsp;
  8416. <a href="#DOIF_setList__readingList">setList</a> &nbsp;
  8417. <a href="#DOIF_uiTable">uiTable</a> &nbsp;
  8418. <a href="#DOIF_weekdays">weekdays</a> &nbsp;
  8419. <br><a href="#readingFnAttributes">readingFnAttributes</a> &nbsp;
  8420. </ul>
  8421. <br>
  8422. <b>Weitere Anwendungsbeispiele:</b><br>
  8423. <br>
  8424. <a name="DOIF_Treppenhauslicht mit Bewegungsmelder"></a>
  8425. <u>Treppenhauslicht mit Bewegungsmelder</u><br>
  8426. <br><code>
  8427. define&nbsp;di_light&nbsp;DOIF&nbsp;{<br>
  8428. &nbsp;&nbsp;if&nbsp;(["FS:motion"])&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;bei&nbsp;Bewegung<br>
  8429. &nbsp;&nbsp;&nbsp;&nbsp;fhem_set("lamp&nbsp;on")&nbsp;if&nbsp;([?lamp]&nbsp;ne&nbsp;"on");&nbsp;&nbsp;&nbsp;#&nbsp;Lampe&nbsp;einschalten,&nbsp;wenn&nbsp;sie&nbsp;nicht&nbsp;an&nbsp;ist<br>
  8430. &nbsp;&nbsp;&nbsp;&nbsp;set_Exec("off",30,'fhem_set("lamp&nbsp;off")');&nbsp;&nbsp;#&nbsp;Timer&nbsp;namens&nbsp;"off"&nbsp;fßr&nbsp;das&nbsp;Ausschalten&nbsp;der&nbsp;Lampe&nbsp;auf&nbsp;30&nbsp;Sekunden&nbsp;setzen&nbsp;bzw.&nbsp;verlängern<br>
  8431. &nbsp;&nbsp;}<br>
  8432. }<br>
  8433. </code>
  8434. <br>
  8435. <a name="DOIF_Einknopf_Fernbedienung"></a>
  8436. <u>Einknopf-Fernbedienung</u><br>
  8437. <br>
  8438. Anforderung: Wenn eine Taste innerhalb von zwei Sekunden zwei mal betätig wird, soll der Rollladen nach oben, bei einem Tastendruck nach unten.<br>
  8439. <br>
  8440. <code>
  8441. define&nbsp;di_shutter&nbsp;DOIF&nbsp;{<br>
  8442. &nbsp;&nbsp;if&nbsp;(["FS:^on$"]&nbsp;and&nbsp;!get_Exec("shutter")){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;wenn&nbsp;Taste&nbsp;betätigt&nbsp;wird&nbsp;und&nbsp;kein&nbsp;Timer&nbsp;läuft<br>
  8443. &nbsp;&nbsp;&nbsp;&nbsp;set_Exec("shutter",2,'fhem_set("shutter&nbsp;down")');&nbsp;#&nbsp;Timer&nbsp;zum&nbsp;shutter&nbsp;down&nbsp;auf&nbsp;zwei&nbsp;Sekunden&nbsp;setzen<br>
  8444. &nbsp;&nbsp;}&nbsp;else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;wenn&nbsp;Timer&nbsp;läuft,&nbsp;d.h.&nbsp;ein&nbsp;weitere&nbsp;Tastendruck&nbsp;innerhalb&nbsp;von&nbsp;zwei&nbsp;Sekunden<br>
  8445. &nbsp;&nbsp;&nbsp;&nbsp;del_Exec("shutter");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Timer&nbsp;lĂśschen<br>
  8446. &nbsp;&nbsp;&nbsp;&nbsp;fhem_set("shutter&nbsp;up");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Rollladen&nbsp;hoch<br>
  8447. &nbsp;&nbsp;}<br>
  8448. }<br>
  8449. </code>
  8450. <br>
  8451. <u>Aktion auslĂśsen, wenn innerhalb einer bestimmten Zeitspanne ein Ereignis x mal eintritt</u><br>
  8452. <br>
  8453. Im folgenden Beispiel wird die Nutzung von Device-Variablen demonstriert.<br>
  8454. <br>
  8455. <code>
  8456. define&nbsp;di_count&nbsp;DOIF&nbsp;{<br>
  8457. &nbsp;&nbsp;if&nbsp;(["FS:on"]&nbsp;and&nbsp;!get_Exec("counter"))&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;wenn&nbsp;Ereignis&nbsp;(hier&nbsp;"FS:on")&nbsp;eintritt&nbsp;und&nbsp;kein&nbsp;Timer&nbsp;läuft<br>
  8458. &nbsp;&nbsp;&nbsp;&nbsp;$_count=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;setze&nbsp;count-Variable&nbsp;auf&nbsp;1<br>
  8459. &nbsp;&nbsp;&nbsp;&nbsp;set_Exec("counter",3600,'Log&nbsp;(3,"count:&nbsp;$_count&nbsp;action")&nbsp;if&nbsp;($_count&nbsp;>&nbsp;10)');&nbsp;&nbsp;#&nbsp;setze&nbsp;Timer&nbsp;auf&nbsp;eine&nbsp;Stunde&nbsp;zum&nbsp;Protokollieren&nbsp;der&nbsp;Anzahl&nbsp;der&nbsp;Ereignisse,&nbsp;wenn&nbsp;sie&nbsp;Ăźber&nbsp;10&nbsp;ist<br>
  8460. &nbsp;&nbsp;}&nbsp;else&nbsp;{<br>
  8461. &nbsp;&nbsp;&nbsp;&nbsp;$_count++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;wenn&nbsp;Timer&nbsp;bereits&nbsp;läuft&nbsp;zähle&nbsp;Ereignis<br>
  8462. &nbsp;&nbsp;}<br>
  8463. }<br>
  8464. </code>
  8465. <br>
  8466. <a name="DOIF_Fenster_offen_Meldung"></a>
  8467. <u>VerzĂśgerte Fenster-offen-Meldung mit Wiederholung fĂźr mehrere Fenster</u><br>
  8468. <br>
  8469. <code>
  8470. define di_window DOIF<br>
  8471. subs {<br>
  8472. &nbsp;&nbsp;sub logwin {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Definition der Funktion namens "logwin"<br>
  8473. &nbsp;&nbsp;&nbsp;&nbsp;my ($window)=@_;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Ăźbernehme Parameter in die Variable $window<br>
  8474. &nbsp;&nbsp;&nbsp;&nbsp;Log 3,"Fenster offen, bitte schlie�en: $window"; # protokolliere Fenster-Offen-Meldung<br>
  8475. &nbsp;&nbsp;&nbsp;&nbsp;set_Exec ("$window",1800,"logwin",$window);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# setze Timer auf 30 Minuten fĂźr eine wiederholte Meldung<br>
  8476. &nbsp;&nbsp;}<br>
  8477. }<br>
  8478. { if (["_window$:open"]) {set_Exec ("$DEVICE",600,'logwin',"$DEVICE")}} # wenn, Fenster geĂśffnet wird, dann setze Timer auf Funktion zum Loggen namens "logwin"<br>
  8479. { if (["_window$:closed"]) {del_Exec ("$DEVICE")}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # wenn, Fenster geschlossen wird, dann lĂśsche Timer<br>
  8480. </code>
  8481. </ul>
  8482. <p><a name="DOIFtools"></a>
  8483. <h3>DOIFtools</h3>
  8484. <div class='langLinks'>[<a href='commandref.html#DOIFtools'>EN</a> DE]</div>
  8485. <ul>
  8486. DOIFtools stellt Funktionen zur Unterstßtzung von DOIF-Geräten bereit.<br>
  8487. <br>
  8488. <ul>
  8489. <li>erstellen von readingsGroup Definitionen, zur Beschriftung von Frontendelementen.</li>
  8490. <li>erstellen eines Debug-Logfiles, in dem mehrere DOIF und zugehÜrige Geräte geloggt werden.</li>
  8491. <li>optionales DOIF-Listing bei jeder Status und Wait-Timer Aktualisierung im Debug-Logfile.</li>
  8492. <li>Navigation zwischen den DOIF-Listings im Logfile, wenn es Ăźber DOIFtools geĂśffnet wird.</li>
  8493. <li>erstellen von userReadings in DOIF-Geräten zur Anzeige des realen Datums bei Wochentag behafteten Timern.</li>
  8494. <li>lĂśschen von benutzerdefinierten Readings in DOIF-Definitionen Ăźber eine Mehrfachauswahl.</li>
  8495. <li>lÜschen von Readings in anderen Geräten ßber eine Mehrfachauswahl, nicht <i>state</i>.</li>
  8496. <li>erfassen statistischer Daten Ăźber Events.</li>
  8497. <li>Begrenzung der Datenaufzeichnungsdauer.</li>
  8498. <li>erstellen eines Statistikreports.</li>
  8499. <li>Liste aller DOIF-Definitionen in <i>probably associated with</i>.</li>
  8500. <li>Zugriff auf DOIFtools aus jeder DOIF-Definition Ăźber die Liste in <i>probably associated with</i>.</li>
  8501. <li>Zugriff aus DOIFtools auf vorhandene DOIFtoolsLog-Logdateien.</li>
  8502. <li>zeigt den Event Monitor in der Detailansicht von DOIFtools.</li>
  8503. <li>ermĂśglicht den Zugriff auf den Event Monitor in der Detailansicht von DOIF.</li>
  8504. <li>erzeugt DOIF-Operanden aus einer Event-Zeile des Event-Monitors.</li>
  8505. <ul>
  8506. <li>Ist der <b>Event-Monitor in DOIF</b> geÜffnet, dann kann die Definition des <b>DOIF geändert</b> werden.</li>
  8507. <li>Ist der <b>Event-Monitor in DOIFtools</b> geĂśffnet, dann kann die Definition eines <b>DOIF erzeugt</b> werden.</li>
  8508. </ul>
  8509. <li>prĂźfen der Definitionen mit Empfehlungen fĂźr DOIF-Modus FHEM.</li>
  8510. <li>erstellen von Shortcuts</li>
  8511. <li>optionalen MenĂźeintrag erstellen</li>
  8512. <li>Liste der laufenden Wait-Timer anzeigen</li>
  8513. <li>skaliert Werte zu Farbnummern und RGB Werten zum Einfärben, z.B. von Icons.</li>
  8514. </ul>
  8515. <br>
  8516. <b>Inhalt</b><br>
  8517. <ul>
  8518. <a href="#DOIFtoolsBedienungsanleitung">Bedienungsanleitung</a><br>
  8519. <a href="#DOIFtoolsDefinition">Definition</a><br>
  8520. <a href="#DOIFtoolsSet">Set-Befehl</a><br>
  8521. <a href="#DOIFtoolsGet">Get-Befehl</a><br>
  8522. <a href="#DOIFtoolsAttribute">Attribute</a><br>
  8523. <a href="#DOIFtoolsReadings">Readings</a><br>
  8524. <a href="#DOIFtoolsLinks">Links</a><br>
  8525. </ul><br>
  8526. <a name="DOIFtoolsBedienungsanleitung"></a>
  8527. <b>Bedienungsanleitung</b>
  8528. <br>
  8529. <ul>
  8530. Eine <a href="https://wiki.fhem.de/wiki/DOIFtools">Bedienungsanleitung fĂźr DOIFtools</a> gibt es im FHEM-Wiki.
  8531. </ul>
  8532. <br>
  8533. <a name="DOIFtoolsDefinition"></a>
  8534. <b>Definition</b>
  8535. <br>
  8536. <ul>
  8537. <code>define &lt;name&gt; DOIFtools</code><br>
  8538. Es ist nur eine Definition pro FHEM Installation mÜglich. Die Definition wird mit den vorhanden DOIF-Namen ergänzt, daher erscheinen alle DOIF-Geräte in der Liste <i>probably associated with</i>. Zusätzlich wird in jedem DOIF-Gerät in dieser Liste auf das DOIFtool verwiesen.<br>
  8539. <br>
  8540. <u>Definitionsvorschlag</u> zum Import mit <a href="https://wiki.fhem.de/wiki/DOIF/Import_von_Code_Snippets">Raw definition</a>:<br>
  8541. <code>
  8542. defmod DOIFtools DOIFtools<br>
  8543. attr DOIFtools DOIFtoolsEventMonitorInDOIF 1<br>
  8544. attr DOIFtools DOIFtoolsExecuteDefinition 1<br>
  8545. attr DOIFtools DOIFtoolsExecuteSave 1<br>
  8546. attr DOIFtools DOIFtoolsMenuEntry 1<br>
  8547. attr DOIFtools DOIFtoolsMyShortcuts ##My Shortcuts:,,list DOIFtools,fhem?cmd=list DOIFtools,remove_DOIFtoolsLog,fhem?cmd=delete DOIFtoolsLog;%22rm ./log/DOIFtoolsLog*.log%22<br>
  8548. </code>
  8549. </ul>
  8550. <br>
  8551. <a name="DOIFtoolsSet"></a>
  8552. <b>Set</b>
  8553. <br>
  8554. <ul>
  8555. <a name="deleteReadingInTargetDOIF"></a>
  8556. <code>set &lt;name&gt; deleteReadingInTargetDOIF &lt;readings to delete name&gt;</code><br>
  8557. <b>deleteReadingInTargetDOIF</b> lĂśscht die benutzerdefinierten Readings im Ziel-DOIF<br>
  8558. <br>
  8559. <a name="targetDOIF"></a>
  8560. <code>set &lt;name&gt; targetDOIF &lt;target name&gt;</code><br>
  8561. <b>targetDOIF</b> vor dem LĂśschen der Readings muss das Ziel-DOIF gesetzt werden.<br>
  8562. <br>
  8563. <a name="deleteReadingInTargetDevice"></a>
  8564. <code>set &lt;name&gt; deleteReadingInTargetDevice &lt;readings to delete name&gt;</code><br>
  8565. <b>deleteReadingInTargetDevice</b> lÜscht sichtbare Readings, ausser <i>state</i> im Ziel-Gerät. Bitte den Gefahrenhinweis zum Befehl <i>deletereading</i> beachten ! <a href="https://fhem.de/commandref_DE.html#deletereading">Commandref#deletereading</a><br>
  8566. <br>
  8567. <a name="targetDevice"></a>
  8568. <code>set &lt;name&gt; targetDevice &lt;target name&gt;</code><br>
  8569. <b>targetDevice</b> vor dem LÜschen der Readings muss das Ziel-Gerät gesetzt werden.<br>
  8570. <br>
  8571. <a name="sourceAttribute"></a>
  8572. <code>set &lt;name&gt; sourceAttribute &lt;readingList&gt; </code><br>
  8573. <b>sourceAttribute</b> vor dem Erstellen einer ReadingsGroup muss das Attribut gesetzt werden aus dem die Readings gelesen werden, um die ReadingsGroup zu erstellen und zu beschriften. <b>Default, readingsList</b><br>
  8574. <br>
  8575. <a name="statisticsDeviceFilterRegex"></a>
  8576. <code>set &lt;name&gt; statisticsDeviceFilterRegex &lt;regular expression as device filter&gt;</code><br>
  8577. <b>statisticsDeviceFilterRegex</b> setzt einen Filter auf Gerätenamen, nur die gefilterten Geräte werden im Bericht ausgewertet. <b>Default, ".*"</b>.<br>
  8578. <br>
  8579. <a name="statisticsTYPEs"></a>
  8580. <code>set &lt;name&gt; statisticsTYPEs &lt;List of TYPE used for statistics generation&gt;</code><br>
  8581. <b>statisticsTYPEs</b> setzt eine Liste von TYPE fĂźr die Statistikdaten erfasst werden, bestehende Statistikdaten werden gelĂśscht. <b>Default, ""</b>.<br>
  8582. <br>
  8583. <a name="statisticsShowRate_ge"></a>
  8584. <code>set &lt;name&gt; statisticsShowRate_ge &lt;integer value for event rate&gt;</code><br>
  8585. <b>statisticsShowRate_ge</b> setzt eine Event-Rate, ab der ein Gerät in die Auswertung einbezogen wird. <b>Default, 0</b>.<br>
  8586. <br>
  8587. <a name="specialLog"></a>
  8588. <code>set &lt;name&gt; specialLog &lt;0|1&gt;</code><br>
  8589. <b>specialLog</b> <b>1</b> DOIF-Listing bei Status und Wait-Timer Aktualisierung im Debug-Logfile. <b>Default, 0</b>.<br>
  8590. <br>
  8591. <a name="doStatistics"></a>
  8592. <code>set &lt;name&gt; doStatistics &lt;enabled|disabled|deleted&gt;</code><br>
  8593. <b>doStatistics</b><br>
  8594. &emsp;<b>deleted</b> setzt die Statistik zurĂźck und lĂśscht alle <i>stat_</i> Readings.<br>
  8595. &emsp;<b>disabled</b> pausiert die Statistikdatenerfassung.<br>
  8596. &emsp;<b>enabled</b> startet die Statistikdatenerfassung.<br>
  8597. <br>
  8598. <a name="recording_target_duration"></a>
  8599. <code>set &lt;name&gt; recording_target_duration &lt;hours&gt;</code><br>
  8600. <b>recording_target_duration</b> gibt an wie lange Daten erfasst werden sollen. <b>Default, 0</b> die Dauer ist nicht begrenzt.<br>
  8601. <br>
  8602. </ul>
  8603. <a name="DOIFtoolsGet"></a>
  8604. <b>Get</b>
  8605. <br>
  8606. <ul>
  8607. <a name="DOIF_to_Log"></a>
  8608. <code>get &lt;name&gt; DOIF_to_Log &lt;DOIF names for logging&gt;</code><br>
  8609. <b>DOIF_to_Log</b> erstellt eine FileLog-Definition, die fßr alle angegebenen DOIF-Definitionen loggt. Der <i>Reguläre Ausdruck</i> wird aus den, direkt in den DOIF-Greräte angegebenen und den wahrscheinlich verbundenen Geräten, ermittelt.<br>
  8610. <br>
  8611. <a name="checkDOIF"></a>
  8612. <code>get &lt;name&gt; checkDOIF</code><br>
  8613. <b>checkDOIF</b> fßhrt eine einfache Syntaxprßfung durch und empfiehlt �nderungen fßr DOIF-Modus FHEM.<br>
  8614. <br>
  8615. <a name="readingsGroup_for"></a>
  8616. <code>get &lt;name&gt; readingsGroup_for &lt;DOIF names to create readings groups&gt;</code><br>
  8617. <b>readingsGroup_for</b> erstellt readingsGroup-Definitionen fĂźr die angegebenen DOIF-namen. <b>sourceAttribute</b> verweist auf das Attribut, dessen Readingsliste als Basis verwendet wird. Die Eingabeelemente im Frontend werden mit den Readingsnamen beschriftet.<br>
  8618. <br>
  8619. <a name="userReading_nextTimer_for"></a>
  8620. <code>get &lt;name&gt; userReading_nextTimer_for &lt;DOIF names where to create real date timer readings&gt;</code><br>
  8621. <b>userReading_nextTimer_for</b> erstellt userReadings-Attribute fĂźr Timer-Readings mit realem Datum fĂźr Timer, die mit Wochentagangaben angegeben sind, davon ausgenommen sind indirekte Wochentagsangaben.<br>
  8622. <br>
  8623. <a name="statisticsReport"></a>
  8624. <code>get &lt;name&gt; statisticsReport </code><br>
  8625. <b>statisticsReport</b> erstellt einen Bericht aus der laufenden Datenerfassung.<br><br>Die Statistik kann genutzt werden, um Geräte mit hohen Ereignisaufkommen zu erkennen. Bei einer hohen Rate, sollte im Interesse der Systemperformance geprßft werden, ob die Events eingeschränkt werden kÜnnen. Werden keine Events eines Gerätes weiterverarbeitet, kann das Attribut <i>event-on-change-reading</i> auf <i>none</i> oder eine andere Zeichenfolge, die im Gerät nicht als Readingname vorkommt, gesetzt werden.<a href="https://wiki.fhem.de/wiki/Event">FHEM-Wiki: Events</a><br>
  8626. <br>
  8627. <a name="runningTimerInDOIF"></a>
  8628. <code>get &lt;name&gt; runningTimerInDOIF</code><br>
  8629. <b>runningTimerInDOIF</b> zeigt eine Liste der laufenden Timer. Damit kann entschieden werden, ob bei einem Neustart wichtige Timer gelĂśscht werden und der Neustart ggf. verschoben werden sollte. Zeigt nachrichtlich das Ergebnis von blockinginfo an.<br>
  8630. <br>
  8631. <a name="SetAttrIconForDOIF"></a>
  8632. <code>get &lt;name&gt; SetAttrIconForDOIF &lt;DOIF names for setting the attribute icon to helper_doif&gt;</code><br>
  8633. <b>SetAttrIconForDOIF</b> setzt fßr die ausgewählten DOIF das Attribut <i>icon</i> auf <i>helper_doif</i>.<br>
  8634. <br>
  8635. <a name="linearColorGradient"></a>
  8636. <code>get &lt;name&gt; linearColorGradient &lt;start color number&gt;,&lt;end color number&gt;,&lt;minimal value&gt;,&lt;maximal value&gt;,&lt;step width&gt;</code><br>
  8637. <b>linearColorGradient</b> erzeugt eine Tabelle mit linear abgestuften Farbnummern und RGB-Werten.<br>
  8638. &lt;start color number&gt;, ist eine HTML-Farbnummer, Beispiel: #0000FF fĂźr Blau.<br>
  8639. &lt;end color number&gt;, , ist eine HTML-Farbnummer, Beispiel: #FF0000 fĂźr Rot.<br>
  8640. &lt;minimal value&gt;, der Minimalwert auf den die Startfarbnummer skaliert wird, Beispiel: 7.<br>
  8641. &lt;maximal value&gt;, der Maximalwert auf den die Endfarbnummer skaliert wird, Beispiel: 30.<br>
  8642. &lt;step width&gt;, fĂźr jeden Schritt wird ein Farbwert erzeugt, Beispiel: 0.5.
  8643. <br>
  8644. Beispiel: <code>get DOIFtools linearColorGradient #0000FF,#FF0000,7,30,0.5</code><br>
  8645. <br>
  8646. <a name="modelColorGradient"></a>
  8647. <code>get &lt;name&gt; modelColorGradient &lt;minimal value&gt;,&lt;middle value&gt;,&lt;maximal value&gt;,&lt;step width&gt;,&lt;color model&gt;</code><br>
  8648. <b>modelColorGradient</b> erzeugt eine Tabelle mit modellbedingt abgestuften Farbnummern und RGB-Werten, siehe FHEM-Wiki Farbskala mit Color::pahColor<br>
  8649. &lt;minimal value&gt;, der Minimalwert auf den die Startfarbnummer skaliert wird, Beispiel: 7.<br>
  8650. &lt;middle value&gt;, der Mittenwert ist ein Fixpunkt zwischen Minimal- u. Maximalwert, Beispiel: 20.<br>
  8651. &lt;maximal value&gt;, der Maximalwert auf den die Endfarbnummer skaliert wird, Beispiel: 30.<br>
  8652. &lt;step width&gt;, fĂźr jeden Schritt wird ein Farbwert erzeugt, Beispiel: 1.<br>
  8653. &lt;color model&gt;, die Angabe eines vordefinierten Modells &lt;0|1|2&gt; oder fĂźnf RGB-Werte als Array [r1,g1,b1,r2,g2,b2,r3,g3,b3,r4,g4,b4,r5,g5,b5] fĂźr ein eigenes Model.<br>
  8654. <br>
  8655. Beispiele:<br>
  8656. <code>get DOIFtools modelColorGradient 7,20,30,1,0</code><br>
  8657. <code>get DOIFtools modelColorGradient 0,50,100,5,[255,255,0,127,255,0,0,255,0,0,255,255,0,127,255]</code><br>
  8658. <a href="https://wiki.fhem.de/wiki/Color#Farbskala_mit_Color::pahColor"> Farbskala mit Color::pahColor </a><br>
  8659. <br>
  8660. <a name="hsvColorGradient"></a>
  8661. <code>get &lt;name&gt; hsvColorGradient &lt;HUE start value&gt;,&lt;HUE end value&gt;,&lt;minimal value&gt;,&lt;maximal value&gt;,&lt;step width&gt;,&lt;saturation&gt;,&lt;lightness&gt;</code><br>
  8662. <b>hsvColorGradient</b> erzeugt eine Tabelle Ăźber HUE-Werte abgestufte Farbnummern und RGB-Werten.<br>
  8663. &lt;Hue start value&gt;, der HUE-Startwert, Beispiel: 240 fĂźr Blau.<br>
  8664. &lt;HUE end value&gt;, der HUE-Endwert, Beispiel: 360 fĂźr Rot.<br>
  8665. &lt;minimal value&gt;, der Minimalwert auf den der HUE-Startwert skaliert wird, Beispiel: 7.<br>
  8666. &lt;maximal value&gt;, der Maximalwert auf den der HUE-Endwert skaliert wird, Beispiel: 30.<br>
  8667. &lt;step width&gt;, fĂźr jeden Schritt wird ein Farbwert erzeugt, Beispiel: 1.<br>
  8668. &lt;saturation&gt;, die Angabe eines Wertes fßr die Farbsättigung &lt;0-100&gt;, Beispiel 80.<br>
  8669. &lt;lightness&gt;, die Angabe eines Wertes fĂźr die Helligkeit &lt;0-100&gt;, Beispiel 80.<br>
  8670. <br>
  8671. Beispiele:<br>
  8672. <code>get DOIFtools hsvColorGradient 240,360,7,30,1,80,80</code><br>
  8673. <br>
  8674. </ul>
  8675. <a name="DOIFtoolsAttribute"></a>
  8676. <b>Attribute</b><br>
  8677. <ul>
  8678. <a name="DOIFtoolsExecuteDefinition"></a>
  8679. <code>attr &lt;name&gt; DOIFtoolsExecuteDefinition &lt;0|1&gt;</code><br>
  8680. <b>DOIFtoolsExecuteDefinition</b> <b>1</b> fĂźhrt die erzeugten Definitionen aus. <b>Default 0</b>, zeigt die erzeugten Definitionen an, sie kĂśnnen mit <i>Raw definition</i> importiert werden.<br>
  8681. <br>
  8682. <a name="DOIFtoolsExecuteSave"></a>
  8683. <code>attr &lt;name&gt; DOIFtoolsExecuteSave &lt;0|1&gt;</code><br>
  8684. <b>DOIFtoolsExecuteSave</b> <b>1</b>, die Definitionen werden automatisch gespeichert. <b>Default 0</b>, der Benutzer kann die Definitionen speichern.<br>
  8685. <br>
  8686. <a name="DOIFtoolsTargetGroup"></a>
  8687. <code>attr &lt;name&gt; DOIFtoolsTargetGroup &lt;group names for target&gt;</code><br>
  8688. <b>DOIFtoolsTargetGroup</b> gibt die Gruppen fĂźr die zu erstellenden Definitionen an. <b>Default</b>, die Gruppe der Ursprungs Definition.<br>
  8689. <br>
  8690. <a name="DOIFtoolsTargetRoom"></a>
  8691. <code>attr &lt;name&gt; DOIFtoolsTargetRoom &lt;room names for target&gt;</code><br>
  8692. <b>DOIFtoolsTargetRoom</b> gibt die Räume fßr die zu erstellenden Definitionen an. <b>Default</b>, der Raum der Ursprungs Definition.<br>
  8693. <br>
  8694. <a name="DOIFtoolsReadingsPrefix"></a>
  8695. <code>attr &lt;name&gt; DOIFtoolsReadingsPrefix &lt;user defined prefix&gt;</code><br>
  8696. <b>DOIFtoolsReadingsPrefix</b> legt den Präfix der benutzerdefinierten Readingsnamen fßr die Zieldefinition fest. <b>Default</b>, DOIFtools bestimmt den Präfix.<br>
  8697. <br>
  8698. <a name="DOIFtoolsEventMonitorInDOIF"></a>
  8699. <code>attr &lt;name&gt; DOIFtoolsEventMonitorInDOIF &lt;1|0&gt;</code><br>
  8700. <b>DOIFtoolsEventMonitorInDOIF</b> <b>1</b>, die Anzeige des Event-Monitors wird in DOIF ermĂśglicht. <b>Default 0</b>, kein Zugriff auf den Event-Monitor im DOIF.<br>
  8701. <br>
  8702. <a name="DOIFtoolsEMbeforeReadings"></a>
  8703. <code>attr &lt;name&gt; DOIFtoolsEMbeforeReadings &lt;1|0&gt;</code><br>
  8704. <b>DOIFtoolsEMbeforeReading</b> <b>1</b>, die Anzeige des Event-Monitors wird in DOIF direkt Ăźber den Readings angezeigt. <b>Default 0</b>, anzeige des Event-Monitors Ăźber den Internals.<br>
  8705. <br>
  8706. <a name="DOIFtoolsHideGetSet"></a>
  8707. <code>attr &lt;name&gt; DOIFtoolsHideGetSet &lt;0|1&gt;</code><br>
  8708. <b>DOIFtoolsHideGetSet</b> <b>1</b>, verstecken der Set- und Get-Shortcuts. <b>Default 0</b>.<br>
  8709. <br>
  8710. <a name="DOIFtoolsNoLookUp"></a>
  8711. <code>attr &lt;name&gt; DOIFtoolsNoLookUp &lt;0|1&gt;</code><br>
  8712. <b>DOIFtoolsNoLookUp</b> <b>1</b>, es werden keine Lookup-Fenster in DOIFtools geĂśffnet. <b>Default 0</b>.<br>
  8713. <br>
  8714. <a name="DOIFtoolsNoLookUpInDOIF"></a>
  8715. <code>attr &lt;name&gt; DOIFtoolsNoLookUpInDOIF &lt;0|1&gt;</code><br>
  8716. <b>DOIFtoolsNoLookUpInDOIF</b> <b>1</b>, es werden keine Lookup-Fenster in DOIF geĂśffnet. <b>Default 0</b>.<br>
  8717. <br>
  8718. <a name="DOIFtoolsHideModulShortcuts"></a>
  8719. <code>attr &lt;name&gt; DOIFtoolsHideModulShortcuts &lt;0|1&gt;</code><br>
  8720. <b>DOIFtoolsHideModulShortcuts</b> <b>1</b>, verstecken der DOIFtools Shortcuts. <b>Default 0</b>.<br>
  8721. <br>
  8722. <a name="DOIFtoolsHideStatReadings"></a>
  8723. <code>attr &lt;name&gt; DOIFtoolsHideStatReadings &lt;0|1&gt;</code><br>
  8724. <b>DOIFtoolsHideStatReadings</b> <b>1</b>, verstecken der <i>stat_</i> Readings. Das �ndern des Attributs lÜscht eine bestehende Event-Aufzeichnung. <b>Default 0</b>.<br>
  8725. <br>
  8726. <a name="DOIFtoolsEventOnDeleted"></a>
  8727. <code>attr &lt;name&gt; DOIFtoolsEventOnDeleted &lt;0|1&gt;</code><br>
  8728. <b>DOIFtoolsEventOnDeleted</b> <b>1</b>, es werden Events fĂźr alle <i>stat_</i> erzeugt, bevor sie gelĂśscht werden. Damit kĂśnnten die erfassten Daten geloggt werden. <b>Default 0</b>.<br>
  8729. <br>
  8730. <a name="DOIFtoolsMyShortcuts"></a>
  8731. <code>attr &lt;name&gt; DOIFtoolsMyShortcuts &lt;shortcut name&gt,&lt;command&gt;, ...</code><br>
  8732. <b>DOIFtoolsMyShortcuts</b> &lt;Bezeichnung&gt;<b>,</b>&lt;Befehl&gt;<b>,...</b> anzeigen eigener Shortcuts, siehe globales Attribut <i>menuEntries</i>.<br>
  8733. Zusätzlich gilt, wenn ein Eintrag mit ## beginnt und mit ,, endet, wird er als HTML interpretiert.<br>
  8734. <u>Beispiel:</u><br>
  8735. <code>attr DOIFtools DOIFtoolsMyShortcuts ##&lt;br&gt;My Shortcuts:,,list DOIFtools,fhem?cmd=list DOIFtools</code><br>
  8736. <a href="#menuEntries">menuEntries</a><br>
  8737. <a name="DOIFtoolsMenuEntry"></a>
  8738. <code>attr &lt;name&gt; DOIFtoolsMenuEntry &lt;0|1&gt;</code><br>
  8739. <b>DOIFtoolsMenuEntry</b> <b>1</b>, erzeugt einen MenĂźeintrag im FHEM-MenĂź. <b>Default 0</b>.<br>
  8740. <br>
  8741. <a name="DOIFtoolsLogDir"></a>
  8742. <code>attr &lt;name&gt; DOIFtoolsLogDir &lt;path to DOIFtools logfile&gt;</code><br>
  8743. <b>DOIFtoolsLogDir</b> <b>&lt;path&gt;</b>, gibt den Pfad zum Logfile an <b>Default <i>./log</i> oder der Pfad aus dem Attribut <i>global logdir</i></b>.<br>
  8744. <br>
  8745. <a href="#disabledForIntervals"><b>disabledForIntervals</b></a> pausiert die Statistikdatenerfassung.<br>
  8746. <br>
  8747. </ul>
  8748. <a name="DOIFtoolsReadings"></a>
  8749. <b>Readings</b>
  8750. <br>
  8751. <ul>
  8752. DOIFtools erzeugt bei der Aktualisierung von Readings keine Events, daher muss die Seite im Browser aktualisiert werden, um aktuelle Werte zu sehen.<br>
  8753. <br>
  8754. <li><b>Action</b> zeigt den Status der Event-Aufzeichnung an.</li>
  8755. <li><b>DOIF_version</b> zeigt die Version des DOIF an.</li>
  8756. <li><b>FHEM_revision</b> zeigt die Revision von FHEM an.</li>
  8757. <li><b>doStatistics</b> zeigt den Status der Statistikerzeugung an</li>
  8758. <li><b>logfile</b> gibt den Pfad und den Dateinamen mit Ersetzungszeichen an.</li>
  8759. <li><b>recording_target_duration</b> gibt an wie lange Daten erfasst werden sollen.</li>
  8760. <li><b>stat_</b>&lt;<b>devicename</b>&gt; zeigt die Anzahl der gezählten Ereignisse, die das jeweilige Gerät erzeugt hat.</li>
  8761. <li><b>statisticHours</b> zeigt die kumulierte Zeit fßr den Status <i>enabled</i> an, während der, Statistikdaten erfasst werden.</li>
  8762. <li><b>statisticShowRate_ge</b> zeigt die Event-Rate, ab der Geräte in die Auswertung einbezogen werden.</li>
  8763. <li><b>statisticsDeviceFilterRegex</b> zeigt den aktuellen Gerätefilterausdruck an.</li>
  8764. <li><b>statisticsTYPEs</b> zeigt eine Liste von <i>TYPE</i> an, fßr deren Geräte die Statistik erzeugt wird.</li>
  8765. <li><b>targetDOIF</b> zeigt das Ziel-DOIF, bei dem Readings gelĂśscht werden sollen.</li>
  8766. <li><b>targetDevice</b> zeigt das Ziel-Gerät, bei dem Readings gelÜscht werden sollen.</li>
  8767. </ul>
  8768. </br>
  8769. <a name="DOIFtoolsLinks"></a>
  8770. <b>Links</b>
  8771. <br>
  8772. <ul>
  8773. <a href="https://forum.fhem.de/index.php/topic,63938.0.html">DOIFtools im FHEM-Forum</a><br>
  8774. <a href="https://wiki.fhem.de/wiki/DOIFtools">DOIFtools im FHEM-Wiki</a><br>
  8775. <br>
  8776. <a href="https://wiki.fhem.de/wiki/DOIF">DOIF im FHEM-Wiki</a><br>
  8777. <a href="https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen#Erste_Schritte_mit_DOIF:_Zeit-_und_Ereignissteuerung">Erste Schritte mit DOIF</a><br>
  8778. <a href="https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen">DOIF: Einsteigerleitfaden, Grundfunktionen und Erläuterungen</a><br>
  8779. <a href="https://wiki.fhem.de/wiki/DOIF/Labor_-_ausf%C3%BChrbare,_praxisnahe_Beispiele_als_Probleml%C3%B6sung_zum_Experimentieren">DOIF-Labor - ausfĂźhrbare, praxisnahe Beispiele als ProblemlĂśsung zum Experimentieren</a><br>
  8780. <a href="https://wiki.fhem.de/wiki/DOIF/Tipps_zur_leichteren_Bedienung">DOIF: Tipps zur leichteren Bedienung</a><br>
  8781. <a href="https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche">DOIF: Tools und Fehlersuche</a><br>
  8782. </ul>
  8783. </ul>
  8784. <p><a name="DUOFERN"></a>
  8785. <h3>DUOFERN</h3>
  8786. <ul>
  8787. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  8788. hier: <a href='commandref.html#DUOFERN'>DUOFERN</a><br/>
  8789. </ul>
  8790. <a name="DUOFERNSTICK"></a>
  8791. <h3>DUOFERNSTICK</h3>
  8792. <ul>
  8793. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  8794. hier: <a href='commandref.html#DUOFERNSTICK'>DUOFERNSTICK</a><br/>
  8795. </ul>
  8796. <a name="DWD_OpenData"></a>
  8797. <h3>DWD_OpenData</h3>
  8798. <div class='langLinks'>[<a href='commandref.html#DWD_OpenData'>EN</a> DE]</div>
  8799. <ul>
  8800. Der Deutsche Wetterdienst (DWD) stellt Wetterdaten &uuml;ber den <a href="https://www.dwd.de/DE/leistungen/opendata/opendata.html">Open Data Server</a> zur Verf&uuml;gung. Die Verwendung dieses Dienstes und der vom DWD zur Verf&uuml;gung gestellten Daten unterliegt den auf der OpenData Webseite beschriebenen Bedingungen. Einen &Uuml;berblick &uuml;ber die verf&uuml;gbaren Daten findet man in der Tabelle <a href="https://www.dwd.de/DE/leistungen/opendata/help/inhalt_allgemein/opendata_content_de_en_xls.xls">OpenData_weather_content.xls</a>. <br><br>
  8801. Eine Installationsbeschreibung findet sich in der <a href="https://wiki.fhem.de/wiki/DWD_OpenData">FHEMWiki</a>. <br><br>
  8802. Eine detaillierte Modulbeschreibung gibt es auf Englisch - siehe die englische Modulhilfe von <a href="commandref.html#DWD_OpenData">DWD_OpenData</a>. <br>
  8803. </ul> <br>
  8804. <p><a name="Dashboard"></a>
  8805. <h3>Dashboard</h3>
  8806. <div class='langLinks'>[<a href='commandref.html#Dashboard'>EN</a> DE]</div>
  8807. <ul>
  8808. Erstellt eine �bersicht in der Gruppen angeordnet werden kÜnnen. Dabei kÜnnen die Gruppen mit Drag'n Drop frei positioniert<br>
  8809. und in mehreren Spalten angeordnet werden. Auch kann die Breite und HÜhe einer Gruppe ßber die MindestgrÜ�e hinaus gezogen werden. <br>
  8810. <br>
  8811. <a name="Dashboarddefine"></a>
  8812. <b>Define</b>
  8813. <ul>
  8814. <code>define &lt;name&gt; Dashboard</code>
  8815. <br><br>
  8816. Beispiel:<br>
  8817. <ul>
  8818. <code>define anyViews Dashboard</code>
  8819. </ul><br>
  8820. <b>Bestpractice Anfängerkonfiguration</b>
  8821. <br><br>
  8822. <code>
  8823. define anyViews Dashboard<br>
  8824. attr anyViews dashboard_colcount 2<br>
  8825. attr anyViews dashboard_rowcentercolwidth 30,70<br>
  8826. attr anyViews dashboard_tab1groups &lt;Group1&gt;,&lt;Group2&gt;,&lt;Group3&gt;<br>
  8827. </code>
  8828. </ul>
  8829. <br>
  8830. <a name="Dashboardset"></a>
  8831. <b>Set</b>
  8832. <ul>
  8833. <code>set &lt;name&gt; lock</code><br><br>
  8834. Sperrt das Dashboard so das keine Positionsänderungen vorgenommen werden kÜnnen<br>
  8835. <code>set &lt;name&gt; unlock</code><br><br>
  8836. Entsperrt das Dashboard<br>
  8837. </ul>
  8838. <br>
  8839. <a name="Dashboardget"></a>
  8840. <b>Get</b> <ul>N/A</ul><br>
  8841. <a name="Dashboardattr"></a>
  8842. <b>Attributes</b>
  8843. <ul>
  8844. <a name="dashboard_tabcount"></a>
  8845. <li>dashboard_tabcount<br>
  8846. Gibt die Anzahl der angezeigten Tabs an. (Dieser Parameter is veraletet, die Anzahl der Tabs wird aus der Dashboard-Konfiguration gelesen)
  8847. Standard: 1
  8848. </li><br>
  8849. <a name="dashboard_activetab"></a>
  8850. <li>dashboard_activetab<br>
  8851. Gibt an welches Tab aktiviert ist. Kann manuell gesetzt werden, wird aber auch durch den Schalter "Set" auf das gerade aktive Tab gesetzt.
  8852. Standard: 1
  8853. </li><br>
  8854. <a name="dashboard_tabXname"></a>
  8855. <li>dashboard_tabXname<br>
  8856. Titel des X. Tab.
  8857. </li><br>
  8858. <a name="dashboard_tabXsorting"></a>
  8859. <li>dashboard_tabXsorting<br>
  8860. Enthält die Poistionierung jeder Gruppe im Tab X. Der Wert wird mit der Schaltfläche "Set" geschrieben. Es wird nicht empfohlen dieses Attribut manuelle zu ändern
  8861. </li><br>
  8862. <a name="dashboard_row"></a>
  8863. <li>dashboard_row<br>
  8864. Auswahl welche Zeilen angezeigt werden sollen. top (nur Oben), center (nur Mitte), bottom (nur Unten) und den Kombinationen daraus.<br>
  8865. Standard: center
  8866. </li><br>
  8867. <a name="dashboard_width"></a>
  8868. <li>dashboard_width<br>
  8869. Zum bestimmen der Dashboardbreite. Der Wert kann in % (z.B. 80%) angegeben werden oder als absolute Breite (z.B. 1200) in Pixel.<br>
  8870. Standard: 100%
  8871. </li><br>
  8872. <a name="dashboard_rowcenterheight"></a>
  8873. <li>dashboard_rowcenterheight<br>
  8874. HĂśhe der mittleren Zeile, in der die Gruppen angeordnet werden. <br>
  8875. Standard: 400
  8876. </li><br>
  8877. <a name="dashboard_rowcentercolwidth"></a>
  8878. <li>dashboard_rowcentercolwidth<br>
  8879. �ber dieses Attribut wird die Breite der einzelnen Spalten der mittleren Dashboardreihe festgelegt. Dabei kann je Spalte ein separater Wert hinterlegt werden.
  8880. Die Werte sind durch ein Komma (ohne Leerzeichen) zu trennen. Jeder Wert bestimmt die Spaltenbreite in %! Der erste Wert gibt die Breite der ersten Spalte an,
  8881. der zweite Wert die Breite der zweiten Spalte usw. Ist die Summe der Breite gr�er als 100 werden die Spaltenbreiten reduziert.
  8882. Sind mehr Spalten als Breiten definiert werden die fehlenden Breiten um die Differenz zu 100 festgelegt. Sind hingegen weniger Spalten als Werte definiert werden
  8883. die ĂźberschĂźssigen Werte ignoriert.<br>
  8884. Standard: 100
  8885. </li><br>
  8886. <a name="dashboard_rowtopheight"></a>
  8887. <li>dashboard_rowtopheight<br>
  8888. HĂśhe der oberen Zeile, in der die Gruppen angeordnet werden. <br>
  8889. Standard: 250
  8890. </li><br>
  8891. <a name="dashboard_rowbottomheight"></a>
  8892. <li>"dashboard_rowbottomheight<br>
  8893. HĂśhe der unteren Zeile, in der die Gruppen angeordnet werden.<br>
  8894. Standard: 250
  8895. </li><br>
  8896. <a name="dashboard_tabXgroups"></a>
  8897. <li>dashboard_tab1groups<br>
  8898. Durch Komma getrennte Liste mit den Namen der Gruppen, die im Tab 1 angezeigt werden. Falsche Gruppennamen werden hervorgehoben.<br>
  8899. Jede Gruppe kann zusätzlich ein Icon anzeigen, dazu muss der Gruppen name um ":&lt;icon&gt;@&lt;farbe&gt;"ergänzt werden<br>
  8900. Beispiel: Light:Icon_Fisch@blue,AVIcon_Fisch@red,Single Lights:Icon_Fisch@yellow<br/>
  8901. Der Gruppenname kann ebenfalls einen regulären Ausdruck beinhalten, um alle Gruppen anzuzeigen, die darauf passen.<br/>
  8902. Beispiel: .*Licht.* zeigt alle Gruppen an, die das Wort "Licht" im Namen haben.
  8903. </li><br>
  8904. <a name="dashboard_tabXdevices"></a>
  8905. <li>dashboard_tabXdevices<br>
  8906. devspec Liste von Geräten, die im Tab angezeigt werden sollen. Das format ist:<br/>
  8907. GROUPNAME:devspec1,devspec2,...,devspecN:ICONNAME</br/>
  8908. Das Icon ist optional. Auch der Gruppenname muss nicht vorhanden sein. Im Falle dass dieser fehlt, werden die gefunden Geräte nicht gruppiert sondern als einzelne Widgets im Tab angezeigt. Fßr weitere Details bezßglich devspec:
  8909. <a href="#devspec">Dev-Spec</a>
  8910. </li><br>
  8911. <a name="dashboard_tabXicon"></a>
  8912. <li>dashboard_tabXicon<br>
  8913. Zeigt am Tab ein Icon an. Es muss sich dabei um ein exisitereindes Icon mit modpath Verzeichnis handeln. Handelt es sich um ein SVG Icon kann der Suffix @colorname fĂźr die Farbe des Icons angegeben werden.
  8914. </li><br>
  8915. <a name="dashboard_colcount"></a>
  8916. <li>dashboard_colcount<br>
  8917. Die Anzahl der Spalten in der Gruppen dargestellt werden kĂśnnen. Dennoch ist es mĂśglich, mehrere Gruppen <br>
  8918. in einer Spalte nebeneinander zu positionieren. Dies ist abhängig von der Breite der Spalten und Gruppen. <br>
  8919. Gilt nur fĂźr die mittlere Spalte! <br>
  8920. Standard: 1
  8921. </li><br>
  8922. <a name="dashboard_tabXcolcount"></a>
  8923. <li>dashboard_tabXcolcount<br>
  8924. Die Anzahl der Spalten im Tab X in der Gruppen dargestellt werden kĂśnnen. Dennoch ist es mĂśglich, mehrere Gruppen <br>
  8925. in einer Spalte nebeneinander zu positionieren. Dies ist abhängig von der Breite der Spalten und Gruppen. <br>
  8926. Gilt nur fĂźr die mittlere Spalte! <br>
  8927. Standard: <dashboard_colcount>
  8928. </li><br>
  8929. <a name="dashboard_tabXbackgroundimage"></a>
  8930. <li>dashboard_tabXbackgroundimage<br>
  8931. Zeigt ein Hintergrundbild fßr den X-ten Tab an. Das Bild wird nicht gestreckt, es sollte also auf die GrÜ�e des Tabs passen oder diese ßberschreiten.
  8932. Standard:
  8933. </li><br>
  8934. <a name="dashboard_flexible"></a>
  8935. <li>dashboard_flexible<br>
  8936. Hat dieser Parameter einen Wert > 0, dann kÜnnen die Widgets in den Tabs frei positioniert werden und hängen nicht mehr an den Spalten fest. Der Wert gibt ebenfalls das Raster an, in dem die Positionierung "zu schnappt".
  8937. Standard: 0
  8938. </li><br>
  8939. <a name="dashboard_showfullsize"></a>
  8940. <li>dashboard_showfullsize<br>
  8941. Blendet die FHEMWEB Raumliste (kompleter linker Bereich der Seite) und den oberen Bereich von FHEMWEB aus wenn der Wert auf 1 gesetzt ist.<br>
  8942. Default: 0
  8943. </li><br>
  8944. <a name="dashboard_showtabs"></a>
  8945. <li>dashboard_showtabs<br>
  8946. Zeigt die Tabs/Schalterleiste des Dashboards oben oder unten an, oder blendet diese aus. Wenn die Schalterleiste ausgeblendet wird ist das Dashboard gespert.<br>
  8947. Standard: tabs-and-buttonbar-at-the-top
  8948. </li><br>
  8949. <a name="dashboard_showtogglebuttons"></a>
  8950. <li>dashboard_showtogglebuttons<br>
  8951. Zeigt eine Schaltfläche in jeder Gruppe mit der man diese auf- und zuklappen kann.<br>
  8952. Standard: 0
  8953. </li><br>
  8954. <a name="dashboard_backgroundimage"></a>
  8955. <li>dashboard_backgroundimage<br>
  8956. Zeig in Hintergrundbild im Dashboard an. Das Bild wird nicht gestreckt, es sollte daher auf die GrÜ�e des Dashboards passen oder diese ßberschreiten.
  8957. Default:
  8958. </li><br>
  8959. <a name="dashboard_debug"></a>
  8960. <li>dashboard_debug<br>
  8961. Zeigt Debug-Felder an. Sollte nicht gesetzt werden!<br>
  8962. Standard: 0
  8963. </li><br>
  8964. </ul>
  8965. </ul>
  8966. <p><a name="DbLog"></a>
  8967. <h3>DbLog</h3>
  8968. <div class='langLinks'>[<a href='commandref.html#DbLog'>EN</a> DE]</div>
  8969. <ul>
  8970. <br>
  8971. Mit DbLog werden Events in einer Datenbank gespeichert. Es wird SQLite, MySQL/MariaDB und PostgreSQL unterstĂźtzt. <br><br>
  8972. <b>Voraussetzungen</b> <br><br>
  8973. Die Perl-Module <code>DBI</code> und <code>DBD::&lt;dbtype&gt;</code> mĂźssen installiert werden (use <code>cpan -i &lt;module&gt;</code>
  8974. falls die eigene Distribution diese nicht schon mitbringt).
  8975. <br><br>
  8976. Auf einem Debian-System kĂśnnen diese Module z.Bsp. installiert werden mit: <br><br>
  8977. <ul>
  8978. <table>
  8979. <colgroup> <col width=5%> <col width=95%> </colgroup>
  8980. <tr><td> <b>DBI</b> </td><td>: <code> sudo apt-get install libdbi-perl </code> </td></tr>
  8981. <tr><td> <b>MySQL</b> </td><td>: <code> sudo apt-get install [mysql-server] mysql-client libdbd-mysql libdbd-mysql-perl </code> (mysql-server nur bei lokaler MySQL-Server-Installation) </td></tr>
  8982. <tr><td> <b>SQLite</b> </td><td>: <code> sudo apt-get install sqlite3 libdbi-perl libdbd-sqlite3-perl </code> </td></tr>
  8983. <tr><td> <b>PostgreSQL</b> </td><td>: <code> sudo apt-get install libdbd-pg-perl </code> </td></tr>
  8984. </table>
  8985. </ul>
  8986. <br>
  8987. <br>
  8988. <b>Vorbereitungen</b> <br><br>
  8989. Zunächst muss die Datenbank angelegt werden. <br>
  8990. Beispielcode bzw. Scripts zum Erstellen einer MySQL/PostgreSQL/SQLite Datenbank ist im
  8991. <a href="https://svn.fhem.de/trac/browser/trunk/fhem/contrib/dblog">SVN -&gt; contrib/dblog/db_create_&lt;DBType&gt;.sql</a>
  8992. enthalten. <br>
  8993. (<b>Achtung:</b> Die lokale FHEM-Installation enthält im Unterverzeichnis ./contrib/dblog nicht die aktuellsten
  8994. Scripte !!) <br><br>
  8995. Die Datenbank beinhaltet 2 Tabellen: <code>current</code> und <code>history</code>. <br>
  8996. Die Tabelle <code>current</code> enthält den letzten Stand pro Device und Reading. <br>
  8997. In der Tabelle <code>history</code> sind alle Events historisch gespeichert. <br>
  8998. Beachten sie bitte unbedingt das <a href="#DbLogattr">Attribut</a> DbLogType um die Benutzung der Tabellen
  8999. <code>current</code> und <code>history</code> festzulegen.
  9000. <br><br>
  9001. Die Tabellenspalten haben folgende Bedeutung: <br><br>
  9002. <ul>
  9003. <table>
  9004. <colgroup> <col width=5%> <col width=95%> </colgroup>
  9005. <tr><td> TIMESTAMP </td><td>: Zeitpunkt des Events, z.B. <code>2007-12-30 21:45:22</code> </td></tr>
  9006. <tr><td> DEVICE </td><td>: Name des Devices, z.B. <code>Wetterstation</code> </td></tr>
  9007. <tr><td> TYPE </td><td>: Type des Devices, z.B. <code>KS300</code> </td></tr>
  9008. <tr><td> EVENT </td><td>: das auftretende Event als volle Zeichenkette, z.B. <code>humidity: 71 (%)</code> </td></tr>
  9009. <tr><td> READING </td><td>: Name des Readings, ermittelt aus dem Event, z.B. <code>humidity</code> </td></tr>
  9010. <tr><td> VALUE </td><td>: aktueller Wert des Readings, ermittelt aus dem Event, z.B. <code>71</code> </td></tr>
  9011. <tr><td> UNIT </td><td>: Einheit, ermittelt aus dem Event, z.B. <code>%</code> </td></tr>
  9012. </table>
  9013. </ul>
  9014. <br>
  9015. <br>
  9016. <b>Index anlegen</b> <br>
  9017. FĂźr die Leseperformance, z.B. bei der Erstellung von SVG-PLots, ist es von besonderer Bedeutung dass der <b>Index "Search_Idx"</b>
  9018. oder ein vergleichbarer Index (z.B. ein Primary Key) angelegt ist. <br><br>
  9019. Der Index "Search_Idx" kann mit diesen Statements, z.B. in der Datenbank 'fhem', angelegt werden (auch nachträglich): <br><br>
  9020. <ul>
  9021. <table>
  9022. <colgroup> <col width=5%> <col width=95%> </colgroup>
  9023. <tr><td> <b>MySQL</b> </td><td>: <code> CREATE INDEX Search_Idx ON `fhem`.`history` (DEVICE, READING, TIMESTAMP); </code> </td></tr>
  9024. <tr><td> <b>SQLite</b> </td><td>: <code> CREATE INDEX Search_Idx ON `history` (DEVICE, READING, TIMESTAMP); </code> </td></tr>
  9025. <tr><td> <b>PostgreSQL</b> </td><td>: <code> CREATE INDEX "Search_Idx" ON history USING btree (device, reading, "timestamp"); </code> </td></tr>
  9026. </table>
  9027. </ul>
  9028. <br>
  9029. Der Code zur Anlage ist ebenfalls in den Scripten
  9030. <a href="https://svn.fhem.de/trac/browser/trunk/fhem/contrib/dblog">SVN -&gt; contrib/dblog/db_create_&lt;DBType&gt;.sql</a>
  9031. enthalten. <br><br>
  9032. FĂźr die Verbindung zur Datenbank wird eine <b>Konfigurationsdatei</b> verwendet.
  9033. Die Konfiguration ist in einer sparaten Datei abgelegt um das Datenbankpasswort nicht in Klartext in der
  9034. FHEM-Haupt-Konfigurationsdatei speichern zu mĂźssen.
  9035. Ansonsten wäre es mittels des <a href="https://fhem.de/commandref_DE.html#list">list</a> Befehls einfach auslesbar.
  9036. <br><br>
  9037. Die <b>Konfigurationsdatei</b> wird z.B. nach /opt/fhem kopiert und hat folgenden Aufbau, den man an seine Umgebung
  9038. anpassen mu� (entsprechende Zeilen entkommentieren und anpassen): <br><br>
  9039. <pre>
  9040. ####################################################################################
  9041. # database configuration file
  9042. #
  9043. # NOTE:
  9044. # If you don't use a value for user / password please delete the leading hash mark
  9045. # and write 'user => ""' respectively 'password => ""' instead !
  9046. #
  9047. #
  9048. ## for MySQL
  9049. ####################################################################################
  9050. #%dbconfig= (
  9051. # connection => "mysql:database=fhem;host=&lt;database host&gt;;port=3306",
  9052. # user => "fhemuser",
  9053. # password => "fhempassword",
  9054. # # optional enable(1) / disable(0) UTF-8 support (at least V 4.042 is necessary)
  9055. # utf8 => 1
  9056. #);
  9057. ####################################################################################
  9058. #
  9059. ## for PostgreSQL
  9060. ####################################################################################
  9061. #%dbconfig= (
  9062. # connection => "Pg:database=fhem;host=&lt;database host&gt;",
  9063. # user => "fhemuser",
  9064. # password => "fhempassword"
  9065. #);
  9066. ####################################################################################
  9067. #
  9068. ## for SQLite (username and password stay empty for SQLite)
  9069. ####################################################################################
  9070. #%dbconfig= (
  9071. # connection => "SQLite:dbname=/opt/fhem/fhem.db",
  9072. # user => "",
  9073. # password => ""
  9074. #);
  9075. ####################################################################################
  9076. </pre>
  9077. Wird configDB genutzt, ist das Konfigurationsfile in die configDB hochzuladen ! <br><br>
  9078. <b>Hinweis zu Sonderzeichen:</b><br>
  9079. Werden Sonderzeichen, wie z.B. @, $ oder %, welche eine programmtechnische Bedeutung in Perl haben im Passwort verwendet,
  9080. sind diese Zeichen zu escapen.
  9081. Das hei�t in diesem Beispiel wäre zu verwenden: \@,\$ bzw. \%.
  9082. <br>
  9083. <br>
  9084. <br>
  9085. <a name="DbLogdefine"></a>
  9086. <b>Define</b>
  9087. <ul>
  9088. <br>
  9089. <code>define &lt;name&gt; DbLog &lt;configfilename&gt; &lt;regexp&gt;</code>
  9090. <br><br>
  9091. <code>&lt;configfilename&gt;</code> ist die vorbereitete <b>Konfigurationsdatei</b>. <br>
  9092. <code>&lt;regexp&gt;</code> ist identisch <a href="https://fhem.de/commandref_DE.html#FileLog">FileLog</a> der Filelog-Definition.
  9093. <br><br>
  9094. <b>Beispiel:</b>
  9095. <ul>
  9096. <code>define myDbLog DbLog /etc/fhem/db.conf .*:.*</code><br>
  9097. speichert alles in der Datenbank
  9098. </ul>
  9099. <br>
  9100. Nachdem das DbLog-Device definiert wurde, ist empfohlen einen <b>Konfigurationscheck</b> auszufĂźhren: <br><br>
  9101. <ul>
  9102. <code>set &lt;name&gt; configCheck</code> <br>
  9103. </ul>
  9104. <br>
  9105. Dieser Check prĂźft einige wichtige Einstellungen des DbLog-Devices und gibt Empfehlungen fĂźr potentielle Verbesserungen.
  9106. <br><br>
  9107. <br>
  9108. DbLog unterscheidet den synchronen (Default) und asynchronen Logmodus. Der Logmodus ist Ăźber das
  9109. <a href="#DbLogattr">Attribut</a> asyncMode einstellbar. Ab Version 2.13.5 unterstĂźtzt DbLog einen gesetzten
  9110. Primary Key (PK) in den Tabellen Current und History. Soll PostgreSQL mit PK genutzt werden, muss PostgreSQL mindestens
  9111. Version 9.5 sein.
  9112. <br><br>
  9113. Der gespeicherte Wert des Readings wird optimiert fĂźr eine automatisierte Nachverarbeitung, z.B. <code>yes</code> wird transformiert
  9114. nach <code>1</code>. <br><br>
  9115. Die gespeicherten Werte kĂśnnen mittels GET Funktion angezeigt werden:
  9116. <ul>
  9117. <code>get myDbLog - - 2012-11-10 2012-11-10 KS300:temperature</code>
  9118. </ul>
  9119. <br>
  9120. <b>FileLog-Dateien nach DbLog Ăźbertragen</b> <br><br>
  9121. Zur �bertragung von vorhandenen Filelog-Daten in die DbLog-Datenbank steht das spezielle Modul 98_FileLogConvert.pm
  9122. zur VerfĂźgung. <br>
  9123. Dieses Modul kann <a href="https://svn.fhem.de/trac/browser/trunk/fhem/contrib/98_FileLogConvert.pm"> hier</a>
  9124. bzw. aus dem Verzeichnis ./contrib geladen werden.
  9125. Weitere Informationen und Hilfestellung gibt es im entsprechenden <a href="https://forum.fhem.de/index.php/topic,66383.0.html">
  9126. Forumthread </a>. <br><br><br>
  9127. <b>Reporting und Management von DbLog-Datenbankinhalten</b> <br><br>
  9128. Mit Hilfe <a href="https://fhem.de/commandref_DE.html#SVG">SVG</a> kĂśnnen Datenbankinhalte visualisiert werden. <br>
  9129. DarĂźber hinaus kann das Modul <a href="https://fhem.de/commandref_DE.html#DbRep">DbRep</a> genutzt werden um tabellarische
  9130. Datenbankauswertungen anzufertigen oder den Datenbankinhalt mit den zur VerfĂźgung stehenden Funktionen zu verwalten.
  9131. <br><br><br>
  9132. <b>Troubleshooting</b> <br><br>
  9133. Wenn nach der erfolgreichen Definition das DbLog-Device nicht wie erwartet arbeitet,
  9134. kĂśnnen folgende Hinweise hilfreich sein: <br><br>
  9135. <ul>
  9136. <li> Wurden die vorbereitenden Schritte gemacht, die in der commandref beschrieben sind ? (Softwarekomponenten installieren, Tabellen, Index anlegen) </li>
  9137. <li> Wurde ein "set &lt;name&gt; configCheck" nach dem Define durchgefĂźhrt und eventuelle Fehler beseitigt bzw. Empfehlungen umgesetzt ? </li>
  9138. <li> Falls configDB in Benutzung ... wurde das DB-Konfigurationsfile in configDB importiert (z.B. mit "configDB fileimport ./db.conf") ? </li>
  9139. <li> Beim Anlegen eines SVG-Plots erscheint keine Drop-Down Liste mit Vorschlagswerten -> Attribut "DbLogType" auf "Current/History" setzen. </li>
  9140. </ul>
  9141. <br>
  9142. Sollten diese Hinweise nicht zum Erfolg fĂźhren, bitte den verbose-Level im DbLog Device auf 4 oder 5 hochsetzen und
  9143. die Einträge bezßglich des DbLog-Device im Logfile beachten.
  9144. Zur Problemanalyse bitte die Ausgabe von "list &lt;name&gt;", das Ergebnis von "set &lt;name&gt; configCheck" und die
  9145. Ausgaben des DbLog-Device im Logfile im Forumthread posten.
  9146. <br><br>
  9147. </ul>
  9148. <br>
  9149. <br>
  9150. <a name="DbLogset"></a>
  9151. <b>Set</b>
  9152. <ul>
  9153. <code>set &lt;name&gt; addCacheLine YYYY-MM-DD HH:MM:SS|&lt;device&gt;|&lt;type&gt;|&lt;event&gt;|&lt;reading&gt;|&lt;value&gt;|[&lt;unit&gt;] </code><br><br>
  9154. <ul> Im asynchronen Modus wird ein neuer Datensatz in den Cache eingefßgt und beim nächsten Synclauf mit abgearbeitet.
  9155. <br><br>
  9156. <b>Beispiel:</b> <br>
  9157. set &lt;name&gt; addCacheLine 2017-12-05 17:03:59|MaxBathRoom|MAX|valveposition: 95|valveposition|95|% <br>
  9158. </ul><br>
  9159. <code>set &lt;name&gt; addLog &lt;devspec&gt;:&lt;Reading&gt; [Value] [CN=&lt;caller name&gt;] [!useExcludes] </code><br><br>
  9160. <ul> FĂźgt einen zusatzlichen Logeintrag einer Device/Reading-Kombination in die Datenbank ein. <br><br>
  9161. <ul>
  9162. <li> <b>&lt;devspec&gt;:&lt;Reading&gt;</b> - Das Device kann als <a href="#devspec">Geräte-Spezifikation</a> angegeben werden. <br>
  9163. Die Angabe von "Reading" wird als regulärer Ausdruck ausgewertet. Ist
  9164. das Reading nicht vorhanden und der Wert "Value" angegeben, wird das Reading
  9165. in die DB eingefßgt wenn es kein regulärer Ausdruck und ein valider
  9166. Readingname ist. </li>
  9167. <li> <b>Value</b> - Optional kann "Value" fĂźr den Readingwert angegeben werden. Ist Value nicht angegeben, wird der aktuelle
  9168. Wert des Readings in die DB eingefĂźgt. </li>
  9169. <li> <b>CN=&lt;caller name&gt;</b> - Mit dem SchlĂźssel "CN=" (<b>C</b>aller <b>N</b>ame) kann dem addLog-Aufruf ein String,
  9170. z.B. der Name des aufrufenden Devices (z.B. eines at- oder notify-Devices), mitgegeben
  9171. werden. Mit Hilfe der im <a href="#DbLogattr">Attribut</a> "valueFn" hinterlegten
  9172. Funktion kann dieser SchlĂźssel Ăźber die Variable $CN ausgewertet werden. Dadurch ist es
  9173. mÜglich, das Verhalten des addLogs abhängig von der aufrufenden Quelle zu beeinflussen.
  9174. </li>
  9175. <li> <b>!useExcludes</b> - Ein eventuell im Quell-Device gesetztes Attribut "DbLogExclude" wird von der Funktion berĂźcksichtigt. Soll dieses
  9176. Attribut nicht berĂźcksichtigt werden, kann das SchĂźsselwort "!useExcludes" verwendet werden. </li>
  9177. </ul>
  9178. <br>
  9179. Das Datenbankfeld "EVENT" wird automatisch mit "addLog" belegt. <br>
  9180. Es wird KEIN zusätzlicher Event im System erzeugt !<br><br>
  9181. <b>Beispiele:</b> <br>
  9182. set &lt;name&gt; addLog SMA_Energymeter:Bezug_Wirkleistung <br>
  9183. set &lt;name&gt; addLog TYPE=SSCam:state <br>
  9184. set &lt;name&gt; addLog MyWetter:(fc10.*|fc8.*) <br>
  9185. set &lt;name&gt; addLog MyWetter:(wind|wind_ch.*) 20 !useExcludes <br>
  9186. set &lt;name&gt; addLog TYPE=CUL_HM:FILTER=model=HM-CC-RT-DN:FILTER=subType!=(virtual|):(measured-temp|desired-temp|actuator) <br><br>
  9187. set &lt;name&gt; addLog USV:state CN=di.cronjob <br>
  9188. In der valueFn-Funktion wird der Aufrufer "di.cronjob" ßber die Variable $CN ausgewertet und davon abhängig der
  9189. Timestamp dieses addLog korrigiert: <br><br>
  9190. valueFn = if($CN eq "di.cronjob" and $TIMESTAMP =~ m/\s00:00:[\d:]+/) { $TIMESTAMP =~ s/\s([^\s]+)/ 23:59:59/ }
  9191. </ul><br>
  9192. <code>set &lt;name&gt; clearReadings </code><br><br>
  9193. <ul> Leert Readings die von verschiedenen DbLog-Funktionen angelegt wurden. </ul><br>
  9194. <code>set &lt;name&gt; eraseReadings </code><br><br>
  9195. <ul> LÜscht alle Readings au�er dem Reading "state". </ul><br>
  9196. <code>set &lt;name&gt; commitCache </code><br><br>
  9197. <ul>Im asynchronen Modus (<a href="#DbLogattr">Attribut</a> asyncMode=1), werden die im Speicher gecachten Daten in die Datenbank geschrieben
  9198. und danach der Cache geleert. Der interne Timer des asynchronen Modus wird dabei neu gesetzt.
  9199. Der Befehl kann nĂźtzlich sein um manuell oder z.B. Ăźber ein AT den Cacheinhalt zu einem definierten Zeitpunkt in die
  9200. Datenbank zu schreiben. </ul><br>
  9201. <code>set &lt;name&gt; configCheck </code><br><br>
  9202. <ul>Es werden einige wichtige Einstellungen geprĂźft und Empfehlungen gegeben falls potentielle Verbesserungen
  9203. identifiziert wurden.
  9204. </ul><br/>
  9205. <code>set &lt;name&gt; count </code><br><br>
  9206. <ul>Zählt die Datensätze in den Tabellen current und history und schreibt die Ergebnisse in die Readings
  9207. countCurrent und countHistory.</ul><br>
  9208. <code>set &lt;name&gt; countNbl </code><br><br>
  9209. <ul>
  9210. Die non-blocking AusfĂźhrung von "set &lt;name&gt; count".
  9211. <br><br>
  9212. <b>Hinweis:</b> <br>
  9213. Obwohl die Funktion selbst non-blocking ist, mu� das DbLog-Device im asynchronen Modus betrieben werden (asyncMode = 1)
  9214. um FHEM nicht zu blockieren !
  9215. </ul><br>
  9216. <code>set &lt;name&gt; deleteOldDays &lt;n&gt;</code><br/><br>
  9217. <ul>LÜscht Datensätze in Tabelle history, die älter sind als &lt;n&gt; Tage sind.
  9218. Die Anzahl der gelĂśschten Datens&auml;tze wird in das Reading lastRowsDeleted geschrieben.</ul><br>
  9219. <code>set &lt;name&gt; deleteOldDaysNbl &lt;n&gt;</code><br><br>
  9220. <ul>
  9221. Identisch zu Funktion "deleteOldDays" wobei deleteOldDaysNbl nicht blockierend ausgefĂźhrt wird.
  9222. <br><br>
  9223. <b>Hinweis:</b> <br>
  9224. Obwohl die Funktion selbst non-blocking ist, mu� das DbLog-Device im asynchronen Modus betrieben werden (asyncMode = 1)
  9225. um FHEM nicht zu blockieren !
  9226. </ul><br>
  9227. <a name="DbLogsetexportCache"></a>
  9228. <code>set &lt;name&gt; exportCache [nopurge | purgecache] </code><br><br>
  9229. <ul>Wenn DbLog im asynchronen Modus betrieben wird, kann der Cache mit diesem Befehl in ein Textfile geschrieben
  9230. werden. Das File wird per Default in dem Verzeichnis (global->modpath)/log/ erstellt. Das Zielverzeichnis kann mit
  9231. dem <a href="#DbLogattr">Attribut</a> "expimpdir" geändert werden. <br>
  9232. Der Name des Files wird automatisch generiert und enthält den Präfix "cache_", gefolgt von dem DbLog-Devicenamen und
  9233. dem aktuellen Zeitstempel, z.B. "cache_LogDB_2017-03-23_22-13-55". <br>
  9234. Mit den Optionen "nopurge" bzw. "purgecache" wird festgelegt, ob der Cacheinhalt nach dem Export gelĂśscht werden
  9235. soll oder nicht. Mit "nopurge" (default) bleibt der Cacheinhalt erhalten. <br>
  9236. Das <a href="#DbLogattr">Attribut</a> "exportCacheAppend" bestimmt dabei, ob mit jedem Exportvorgang ein neues Exportfile
  9237. angelegt wird (default) oder der Cacheinhalt an das bestehende (neueste) Exportfile angehängt wird.
  9238. </ul><br>
  9239. <code>set &lt;name&gt; importCachefile &lt;file&gt; </code><br><br>
  9240. <ul>Importiert ein mit "exportCache" geschriebenes File in die Datenbank.
  9241. Die verfĂźgbaren Dateien werden per Default im Verzeichnis (global->modpath)/log/ gesucht und eine Drop-Down Liste
  9242. erzeugt sofern Dateien gefunden werden. Das Quellverzeichnis kann mit dem <a href="#DbLogattr">Attribut</a> expimpdir geändert werden. <br>
  9243. Es werden nur die Dateien angezeigt, die dem Muster "cache_", gefolgt von dem DbLog-Devicenamen entsprechen. <br>
  9244. Zum Beispiel "cache_LogDB_2017-03-23_22-13-55", falls das Log-Device "LogDB" hei�t. <br>
  9245. Nach einem erfolgreichen Import wird das File mit dem Präfix "impdone_" versehen und erscheint dann nicht mehr
  9246. in der Drop-Down Liste. Soll ein Cachefile in eine andere als der Quelldatenbank importiert werden, kann das
  9247. DbLog-Device im Filenamen angepasst werden damit dieses File den Suchktiterien entspricht und in der Drop-Down Liste
  9248. erscheint. </ul><br>
  9249. <code>set &lt;name&gt; listCache </code><br><br>
  9250. <ul>Wenn DbLog im asynchronen Modus betrieben wird (Attribut asyncMode=1), kĂśnnen mit diesem Befehl die im Speicher gecachten Events
  9251. angezeigt werden.</ul><br>
  9252. <code>set &lt;name&gt; purgeCache </code><br><br>
  9253. <ul>Im asynchronen Modus (<a href="#DbLogattr">Attribut</a> asyncMode=1), werden die im Speicher gecachten Daten gelĂśscht.
  9254. Es werden keine Daten aus dem Cache in die Datenbank geschrieben. </ul><br>
  9255. <code>set &lt;name&gt; reduceLog &lt;no&gt;[:&lt;nn&gt;] [average[=day]] [exclude=device1:reading1,device2:reading2,...] </code><br><br>
  9256. <ul>Reduziert historische Datensätze, die älter sind als &lt;no&gt; Tage und (optional) neuer sind als &lt;nn&gt; Tage
  9257. auf einen Eintrag (den ersten) pro Stunde je Device & Reading.<br>
  9258. Innerhalb von device/reading kĂśnnen <b>SQL-Wildcards "%" und "_"</b> verwendet werden. <br><br>
  9259. Das Reading "reduceLogState" zeigt den AusfĂźhrungsstatus des letzten reduceLog-Befehls. <br><br>
  9260. Durch die optionale Angabe von 'average' wird nicht nur die Datenbank bereinigt, sondern alle numerischen Werte
  9261. einer Stunde werden auf einen einzigen Mittelwert reduziert. <br>
  9262. Durch die optionale Angabe von 'average=day' wird nicht nur die Datenbank bereinigt, sondern alle numerischen
  9263. Werte eines Tages auf einen einzigen Mittelwert reduziert. (impliziert 'average') <br><br>
  9264. Optional kann als letzer Parameter "exclude=device1:reading1,device2:reading2,...."
  9265. angegeben werden um device/reading Kombinationen von reduceLog auszuschlie�en. <br><br>
  9266. Optional kann als letzer Parameter "include=device:reading" angegeben werden um
  9267. die auf die Datenbank ausgefĂźhrte SELECT-Abfrage einzugrenzen, was die RAM-Belastung verringert und die
  9268. Performance erhĂśht. <br><br>
  9269. <ul>
  9270. <b>Beispiel: </b> <br>
  9271. set &lt;name&gt; reduceLog 270 average include=Luftdaten_remote:% <br>
  9272. </ul>
  9273. <br>
  9274. <b>ACHTUNG:</b> Es wird dringend empfohlen zu ĂźberprĂźfen ob der standard INDEX 'Search_Idx' in der Tabelle 'history' existiert! <br>
  9275. Die Abarbeitung dieses Befehls dauert unter Umständen (ohne INDEX) extrem lange. FHEM wird durch den Befehl bis
  9276. zur Fertigstellung <b>komplett blockiert !</b> <br><br>
  9277. </ul><br>
  9278. <code>set &lt;name&gt; reduceLogNbl &lt;no&gt;[:&lt;nn&gt;] [average[=day]] [exclude=device1:reading1,device2:reading2,...]</code><br><br>
  9279. <ul>
  9280. FĂźhrt die gleiche Funktion wie "set &lt;name&gt; reduceLog" aus. Im Gegensatz zu reduceLog wird mit FHEM wird durch den Befehl reduceLogNbl nicht
  9281. mehr blockiert da diese Funktion non-blocking implementiert ist !
  9282. <br><br>
  9283. <b>Hinweis:</b> <br>
  9284. Obwohl die Funktion selbst non-blocking ist, mu� das DbLog-Device im asynchronen Modus betrieben werden (asyncMode = 1)
  9285. um FHEM nicht zu blockieren !
  9286. </ul><br>
  9287. <code>set &lt;name&gt; reopen [n]</code><br/><br/>
  9288. <ul>Schlie�t die Datenbank und Üffnet sie danach sofort wieder wenn keine Zeit [n] in Sekunden angegeben wurde.
  9289. Dabei wird die Journaldatei geleert und neu angelegt.<br/>
  9290. Verbessert den Datendurchsatz und vermeidet Speicherplatzprobleme. <br>
  9291. Wurde eine optionale VerzĂśgerungszeit [n] in Sekunden angegeben, wird die Verbindung zur Datenbank geschlossen und erst
  9292. nach Ablauf von [n] Sekunden wieder neu verbunden.
  9293. Im synchronen Modus werden die Events in dieser Zeit nicht gespeichert.
  9294. Im asynchronen Modus werden die Events im Cache gespeichert und nach dem Reconnect in die Datenbank geschrieben. </ul><br>
  9295. <code>set &lt;name&gt; rereadcfg </code><br/><br/>
  9296. <ul>Schlie�t die Datenbank und Üffnet sie danach sofort wieder. Dabei wird die Journaldatei geleert und neu angelegt.<br/>
  9297. Verbessert den Datendurchsatz und vermeidet Speicherplatzprobleme.<br/>
  9298. Zwischen dem Schlie�en der Verbindung und dem Neuverbinden werden die Konfigurationsdaten neu gelesen</ul><br/>
  9299. <code>set &lt;name&gt; userCommand &lt;validSqlStatement&gt;</code><br/><br/>
  9300. <ul><b>BENUTZE DIESE FUNKTION NUR, WENN DU WIRKLICH (WIRKLICH!) WEISST, WAS DU TUST!!!</b><br/><br/>
  9301. FĂźhrt einen beliebigen (!!!) sql Befehl in der Datenbank aus. Der Befehl und ein zurĂźckgeliefertes
  9302. Ergebnis wird in das Reading "userCommand" bzw. "userCommandResult" geschrieben. Das Ergebnis kann nur
  9303. einzeilig sein.
  9304. FĂźr SQL-Statements, die mehrzeilige Ergebnisse liefern, kann das Auswertungsmodul
  9305. <a href=https://fhem.de/commandref_DE.html#DbRep>DbRep</a> genutzt werden.</br>
  9306. Wird von der Datenbankschnittstelle kein Ergebnis (undef) zurĂźckgeliefert, erscheint die Meldung "no result"
  9307. im Reading "userCommandResult".
  9308. </ul><br>
  9309. </ul><br>
  9310. <a name="DbLogget"></a>
  9311. <b>Get</b>
  9312. <ul>
  9313. <code>get &lt;name&gt; ReadingsVal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;device&gt; &lt;reading&gt; &lt;default&gt;</code><br/>
  9314. <code>get &lt;name&gt; ReadingsTimestamp &lt;device&gt; &lt;reading&gt; &lt;default&gt;</code><br/>
  9315. <br/>
  9316. Liest einen einzelnen Wert aus der Datenbank, Benutzung und Syntax sind weitgehend identisch zu ReadingsVal() und ReadingsTimestamp().<br/>
  9317. </ul>
  9318. <br/>
  9319. <br/>
  9320. <ul>
  9321. <code>get &lt;name&gt; &lt;infile&gt; &lt;outfile&gt; &lt;from&gt;
  9322. &lt;to&gt; &lt;column_spec&gt; </code>
  9323. <br><br>
  9324. Liesst Daten aus der Datenbank. Wird durch die Frontends benutzt um Plots
  9325. zu generieren ohne selbst auf die Datenank zugreifen zu mĂźssen.
  9326. <br>
  9327. <ul>
  9328. <li>&lt;in&gt;<br>
  9329. Ein Parameter um eine Kompatibilität zum Filelog herzustellen.
  9330. Dieser Parameter ist per default immer auf <code>-</code> zu setzen.<br>
  9331. Folgende Ausprägungen sind zugelassen:<br>
  9332. <ul>
  9333. <li>current: die aktuellen Werte aus der Tabelle "current" werden gelesen.</li>
  9334. <li>history: die historischen Werte aus der Tabelle "history" werden gelesen.</li>
  9335. <li>-: identisch wie "history"</li>
  9336. </ul>
  9337. </li>
  9338. <li>&lt;out&gt;<br>
  9339. Ein Parameter um eine Kompatibilität zum Filelog herzustellen.
  9340. Dieser Parameter ist per default immer auf <code>-</code> zu setzen um die
  9341. Ermittlung der Daten aus der Datenbank fĂźr die Plotgenerierung zu prĂźfen.<br>
  9342. Folgende Ausprägungen sind zugelassen:<br>
  9343. <ul>
  9344. <li>ALL: Es werden alle Spalten der Datenbank ausgegeben. Inclusive einer �berschrift.</li>
  9345. <li>Array: Es werden alle Spalten der Datenbank als Hash ausgegeben. Alle Datensätze als Array zusammengefasst.</li>
  9346. <li>INT: intern zur Plotgenerierung verwendet</li>
  9347. <li>-: default</li>
  9348. </ul>
  9349. </li>
  9350. <li>&lt;from&gt; / &lt;to&gt;<br>
  9351. Wird benutzt um den Zeitraum der Daten einzugrenzen. Es ist das folgende
  9352. Zeitformat oder ein Teilstring davon zu benutzen:<br>
  9353. <ul><code>YYYY-MM-DD_HH24:MI:SS</code></ul></li>
  9354. <li>&lt;column_spec&gt;<br>
  9355. FĂźr jede column_spec Gruppe wird ein Datenset zurĂźckgegeben welches
  9356. durch einen Kommentar getrennt wird. Dieser Kommentar repräsentiert
  9357. die column_spec.<br>
  9358. Syntax: &lt;device&gt;:&lt;reading&gt;:&lt;default&gt;:&lt;fn&gt;:&lt;regexp&gt;<br>
  9359. <ul>
  9360. <li>&lt;device&gt;<br>
  9361. Der Name des Devices. Achtung: Gross/Kleinschreibung beachten!<br>
  9362. Es kann ein % als Jokerzeichen angegeben werden.</li>
  9363. <li>&lt;reading&gt;<br>
  9364. Das Reading des angegebenen Devices zur Datenselektion.<br>
  9365. Es kann ein % als Jokerzeichen angegeben werden.<br>
  9366. Achtung: Gross/Kleinschreibung beachten!
  9367. </li>
  9368. <li>&lt;default&gt;<br>
  9369. Zur Zeit noch nicht implementiert.
  9370. </li>
  9371. <li>&lt;fn&gt;
  9372. Angabe einer speziellen Funktion:
  9373. <ul>
  9374. <li>int<br>
  9375. Ermittelt den Zahlenwert ab dem Anfang der Zeichenkette aus der
  9376. Spalte "VALUE". Benutzt z.B. fßr Ausprägungen wie 10%.
  9377. </li>
  9378. <li>int&lt;digit&gt;<br>
  9379. Ermittelt den Zahlenwert ab dem Anfang der Zeichenkette aus der
  9380. Spalte "VALUE", inclusive negativen Vorzeichen und Dezimaltrenner.
  9381. Benutzt z.B. fßr Auspägungen wie -5.7&deg;C.
  9382. </li>
  9383. <li>delta-h / delta-d<br>
  9384. Ermittelt die relative Veränderung eines Zahlenwertes pro Stunde
  9385. oder pro Tag. Wird benutzt z.B. fĂźr Spalten die einen
  9386. hochlaufenden Zähler enthalten wie im Falle fßr ein KS300 Regenzähler
  9387. oder dem 1-wire Modul OWCOUNT.
  9388. </li>
  9389. <li>delta-ts<br>
  9390. Ermittelt die vergangene Zeit zwischen dem letzten und dem aktuellen Logeintrag
  9391. in Sekunden und ersetzt damit den originalen Wert.
  9392. </li>
  9393. </ul></li>
  9394. <li>&lt;regexp&gt;<br>
  9395. Diese Zeichenkette wird als Perl Befehl ausgewertet.
  9396. Die regexp wird vor dem angegebenen &lt;fn&gt; Parameter ausgefĂźhrt.
  9397. <br>
  9398. Bitte zur Beachtung: Diese Zeichenkette darf keine Leerzeichen
  9399. enthalten da diese sonst als &lt;column_spec&gt; Trennung
  9400. interpretiert werden und alles nach dem Leerzeichen als neue
  9401. &lt;column_spec&gt; gesehen wird.<br>
  9402. <b>SchlĂźsselwĂśrter</b>
  9403. <li>$val ist der aktuelle Wert die die Datenbank fĂźr ein Device/Reading ausgibt.</li>
  9404. <li>$ts ist der aktuelle Timestamp des Logeintrages.</li>
  9405. <li>Wird als $val das SchlĂźsselwort "hide" zurĂźckgegeben, so wird dieser Logeintrag nicht
  9406. ausgegeben, trotzdem aber fĂźr die Zeitraumberechnung verwendet.</li>
  9407. <li>Wird als $val das SchlĂźsselwort "ignore" zurĂźckgegeben, so wird dieser Logeintrag
  9408. nicht fĂźr eine Folgeberechnung verwendet.</li>
  9409. </li>
  9410. </ul></li>
  9411. </ul>
  9412. <br><br>
  9413. <b>Beispiele:</b>
  9414. <ul>
  9415. <li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature</code></li>
  9416. <li><code>get myDbLog current ALL - - %:temperature</code></li><br>
  9417. Damit erhält man alle aktuellen Readings "temperature" von allen in der DB geloggten Devices.
  9418. Achtung: bei Nutzung von Jokerzeichen auf die history-Tabelle kann man sein FHEM aufgrund langer Laufzeit lahmlegen!
  9419. <li><code>get myDbLog - - 2012-11-10_10 2012-11-10_20 KS300:temperature::int1</code><br>
  9420. gibt Daten aus von 10Uhr bis 20Uhr am 10.11.2012</li>
  9421. <li><code>get myDbLog - all 2012-11-10 2012-11-20 KS300:temperature</code></li>
  9422. <li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature KS300:rain::delta-h KS300:rain::delta-d</code></li>
  9423. <li><code>get myDbLog - - 2012-11-10 2012-11-20 MyFS20:data:::$val=~s/(on|off).*/$1eq"on"?1:0/eg</code><br>
  9424. gibt 1 zurßck fßr alle Ausprägungen von on* (on|on-for-timer etc) und 0 fßr alle off*</li>
  9425. <li><code>get myDbLog - - 2012-11-10 2012-11-20 Bodenfeuchte:data:::$val=~s/.*B:\s([-\.\d]+).*/$1/eg</code><br>
  9426. Beispiel von OWAD: Ein Wert wie z.B.: <code>"A: 49.527 % B: 66.647 % C: 9.797 % D: 0.097 V"</code><br>
  9427. und die Ausgabe ist fĂźr das Reading B folgende: <code>2012-11-20_10:23:54 66.647</code></li>
  9428. <li><code>get DbLog - - 2013-05-26 2013-05-28 Pumpe:data::delta-ts:$val=~s/on/hide/</code><br>
  9429. Realisierung eines Betriebsstundenzählers. Durch delta-ts wird die Zeit in Sek zwischen den Log-
  9430. Einträgen ermittelt. Die Zeiten werden bei den on-Meldungen nicht ausgegeben welche einer Abschaltzeit
  9431. entsprechen wĂźrden.</li>
  9432. </ul>
  9433. <br><br>
  9434. </ul>
  9435. <b>Get</b> fĂźr die Nutzung von webcharts
  9436. <ul>
  9437. <code>get &lt;name&gt; &lt;infile&gt; &lt;outfile&gt; &lt;from&gt;
  9438. &lt;to&gt; &lt;device&gt; &lt;querytype&gt; &lt;xaxis&gt; &lt;yaxis&gt; &lt;savename&gt; </code>
  9439. <br><br>
  9440. Liest Daten aus der Datenbank aus und gibt diese in JSON formatiert aus. Wird fĂźr das Charting Frontend genutzt
  9441. <br>
  9442. <ul>
  9443. <li>&lt;name&gt;<br>
  9444. Der Name des definierten DbLogs, so wie er in der fhem.cfg angegeben wurde.</li>
  9445. <li>&lt;in&gt;<br>
  9446. Ein Dummy Parameter um eine Kompatibilität zum Filelog herzustellen.
  9447. Dieser Parameter ist immer auf <code>-</code> zu setzen.</li>
  9448. <li>&lt;out&gt;<br>
  9449. Ein Dummy Parameter um eine Kompatibilität zum Filelog herzustellen.
  9450. Dieser Parameter ist auf <code>webchart</code> zu setzen um die Charting Get Funktion zu nutzen.
  9451. </li>
  9452. <li>&lt;from&gt; / &lt;to&gt;<br>
  9453. Wird benutzt um den Zeitraum der Daten einzugrenzen. Es ist das folgende
  9454. Zeitformat zu benutzen:<br>
  9455. <ul><code>YYYY-MM-DD_HH24:MI:SS</code></ul></li>
  9456. <li>&lt;device&gt;<br>
  9457. Ein String, der das abzufragende Device darstellt.</li>
  9458. <li>&lt;querytype&gt;<br>
  9459. Ein String, der die zu verwendende Abfragemethode darstellt. Zur Zeit unterstĂźtzte Werte sind: <br>
  9460. <code>getreadings</code> um fĂźr ein bestimmtes device alle Readings zu erhalten<br>
  9461. <code>getdevices</code> um alle verfĂźgbaren devices zu erhalten<br>
  9462. <code>timerange</code> um Chart-Daten abzufragen. Es werden die Parameter 'xaxis', 'yaxis', 'device', 'to' und 'from' benĂśtigt<br>
  9463. <code>savechart</code> um einen Chart unter Angabe eines 'savename' und seiner zugehĂśrigen Konfiguration abzuspeichern<br>
  9464. <code>deletechart</code> um einen zuvor gespeicherten Chart unter Angabe einer id zu lĂśschen<br>
  9465. <code>getcharts</code> um eine Liste aller gespeicherten Charts zu bekommen.<br>
  9466. <code>getTableData</code> um Daten aus der Datenbank abzufragen und in einer Tabelle darzustellen. BenĂśtigt paging Parameter wie start und limit.<br>
  9467. <code>hourstats</code> um Statistiken fĂźr einen Wert (yaxis) fĂźr eine Stunde abzufragen.<br>
  9468. <code>daystats</code> um Statistiken fĂźr einen Wert (yaxis) fĂźr einen Tag abzufragen.<br>
  9469. <code>weekstats</code> um Statistiken fĂźr einen Wert (yaxis) fĂźr eine Woche abzufragen.<br>
  9470. <code>monthstats</code> um Statistiken fĂźr einen Wert (yaxis) fĂźr einen Monat abzufragen.<br>
  9471. <code>yearstats</code> um Statistiken fĂźr einen Wert (yaxis) fĂźr ein Jahr abzufragen.<br>
  9472. </li>
  9473. <li>&lt;xaxis&gt;<br>
  9474. Ein String, der die X-Achse repräsentiert</li>
  9475. <li>&lt;yaxis&gt;<br>
  9476. Ein String, der die Y-Achse repräsentiert</li>
  9477. <li>&lt;savename&gt;<br>
  9478. Ein String, unter dem ein Chart in der Datenbank gespeichert werden soll</li>
  9479. <li>&lt;chartconfig&gt;<br>
  9480. Ein jsonstring der den zu speichernden Chart repräsentiert</li>
  9481. <li>&lt;pagingstart&gt;<br>
  9482. Ein Integer um den Startwert fĂźr die Abfrage 'getTableData' festzulegen</li>
  9483. <li>&lt;paginglimit&gt;<br>
  9484. Ein Integer um den Limitwert fĂźr die Abfrage 'getTableData' festzulegen</li>
  9485. </ul>
  9486. <br><br>
  9487. Beispiele:
  9488. <ul>
  9489. <li><code>get logdb - webchart "" "" "" getcharts</code><br>
  9490. Liefert alle gespeicherten Charts aus der Datenbank</li>
  9491. <li><code>get logdb - webchart "" "" "" getdevices</code><br>
  9492. Liefert alle verfĂźgbaren Devices aus der Datenbank</li>
  9493. <li><code>get logdb - webchart "" "" ESA2000_LED_011e getreadings</code><br>
  9494. Liefert alle verfßgbaren Readings aus der Datenbank unter Angabe eines Gerätes</li>
  9495. <li><code>get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e timerange TIMESTAMP day_kwh</code><br>
  9496. Liefert Chart-Daten, die auf folgenden Parametern basieren: 'xaxis', 'yaxis', 'device', 'to' und 'from'<br>
  9497. Die Ausgabe erfolgt als JSON, z.B.: <code>[{'TIMESTAMP':'2013-02-11 00:10:10','VALUE':'0.22431388090756'},{'TIMESTAMP'.....}]</code></li>
  9498. <li><code>get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e savechart TIMESTAMP day_kwh tageskwh</code><br>
  9499. Speichert einen Chart unter Angabe eines 'savename' und seiner zugehĂśrigen Konfiguration</li>
  9500. <li><code>get logdb - webchart "" "" "" deletechart "" "" 7</code><br>
  9501. LĂśscht einen zuvor gespeicherten Chart unter Angabe einer id</li>
  9502. </ul>
  9503. <br><br>
  9504. </ul>
  9505. <a name="DbLogattr"></a>
  9506. <b>Attribute</b>
  9507. <br><br>
  9508. <ul><b>addStateEvent</b>
  9509. <ul>
  9510. <code>attr &lt;device&gt; addStateEvent [0|1]
  9511. </code><br>
  9512. Bekanntlich wird normalerweise bei einem Event mit dem Reading "state" der state-String entfernt, d.h.
  9513. der Event ist nicht zum Beispiel "state: on" sondern nur "on". <br>
  9514. Meistens ist es aber hilfreich in DbLog den kompletten Event verarbeiten zu kĂśnnen. Deswegen Ăźbernimmt DbLog per Default
  9515. den Event inklusive dem Reading-String "state". <br>
  9516. In einigen Fällen, z.B. alten oder speziellen Modulen, ist es allerdings wßnschenswert den state-String wie gewÜhnlich
  9517. zu entfernen. In diesen Fällen bitte addStateEvent = "0" setzen.
  9518. Versuchen sie bitte diese Einstellung, falls es mit dem Standard Probleme geben sollte.
  9519. <br>
  9520. </ul>
  9521. </ul>
  9522. <br>
  9523. <ul><b>asyncMode</b>
  9524. <ul>
  9525. <code>attr &lt;device&gt; asyncMode [1|0]
  9526. </code><br>
  9527. Dieses Attribut stellt den Arbeitsmodus von DbLog ein. Im asynchronen Modus (asyncMode=1), werden die zu speichernden Events zunächst in Speicher
  9528. gecacht. Nach Ablauf der Synchronisationszeit (Attribut syncInterval) oder bei Erreichen der maximalen Anzahl der Datensätze im Cache
  9529. (Attribut cacheLimit) werden die gecachten Events im Block in die Datenbank geschrieben.
  9530. Ist die Datenbank nicht verfĂźgbar, werden die Events weiterhin im Speicher gehalten und nach Ablauf des Syncintervalls in die Datenbank
  9531. geschrieben falls sie dann verfĂźgbar ist. <br>
  9532. Im asynchronen Mode werden die Daten nicht blockierend mit einem separaten Hintergrundprozess in die Datenbank geschrieben.
  9533. Det Timeout-Wert fĂźr diesen Hintergrundprozess kann mit dem Attribut "timeout" (Default 86400s) eingestellt werden.
  9534. Im synchronen Modus (Normalmodus) werden die Events nicht gecacht und sofort in die Datenbank geschrieben. Ist die Datenbank nicht
  9535. verfĂźgbar gehen sie verloren.<br>
  9536. </ul>
  9537. </ul>
  9538. <br>
  9539. <ul><b>commitMode</b>
  9540. <ul>
  9541. <code>attr &lt;device&gt; commitMode [basic_ta:on | basic_ta:off | ac:on_ta:on | ac:on_ta:off | ac:off_ta:on]
  9542. </code><br>
  9543. �ndert die Verwendung der Datenbank Autocommit- und/oder Transaktionsfunktionen.
  9544. Wird Transaktion "aus" verwendet, werden im asynchronen Modus nicht gespeicherte Datensätze nicht an den Cache zurßck
  9545. gegeben.
  9546. Dieses Attribut ist ein advanced feature und sollte nur im konkreten Bedarfs- bzw. Supportfall geändert werden.<br><br>
  9547. <ul>
  9548. <li>basic_ta:on - Autocommit Servereinstellung / Transaktion ein (default) </li>
  9549. <li>basic_ta:off - Autocommit Servereinstellung / Transaktion aus </li>
  9550. <li>ac:on_ta:on - Autocommit ein / Transaktion ein </li>
  9551. <li>ac:on_ta:off - Autocommit ein / Transaktion aus </li>
  9552. <li>ac:off_ta:on - Autocommit aus / Transaktion ein (Autocommit "aus" impliziert Transaktion "ein") </li>
  9553. </ul>
  9554. </ul>
  9555. </ul>
  9556. <br>
  9557. <ul><b>cacheEvents</b>
  9558. <ul>
  9559. <code>attr &lt;device&gt; cacheEvents [2|1|0]
  9560. </code><br>
  9561. <ul>
  9562. <li>cacheEvents=1: es werden Events fĂźr das Reading CacheUsage erzeugt wenn ein Event zum Cache hinzugefĂźgt wurde. </li>
  9563. <li>cacheEvents=2: es werden Events fĂźr das Reading CacheUsage erzeugt wenn im asynchronen Mode der Schreibzyklus in die
  9564. Datenbank beginnt. CacheUsage enthält zu diesem Zeitpunkt die Anzahl der in die Datenbank zu schreibenden
  9565. Datensätze. </li><br>
  9566. </ul>
  9567. </ul>
  9568. </ul>
  9569. <br>
  9570. <ul><b>cacheLimit</b>
  9571. <ul>
  9572. <code>
  9573. attr &lt;device&gt; cacheLimit &lt;n&gt;
  9574. </code><br>
  9575. Im asynchronen Logmodus wird der Cache in die Datenbank weggeschrieben und geleert wenn die Anzahl &lt;n&gt; Datensätze
  9576. im Cache erreicht ist (Default: 500). Der Timer des asynchronen Logmodus wird dabei neu auf den Wert des Attributs "syncInterval"
  9577. gesetzt. Im Fehlerfall wird ein erneuter Schreibversuch frĂźhestens nach syncInterval/2 gestartet. <br>
  9578. </ul>
  9579. </ul>
  9580. <br>
  9581. <ul><b>colEvent</b>
  9582. <ul>
  9583. <code>
  9584. attr &lt;device&gt; colEvent &lt;n&gt;
  9585. </code><br>
  9586. Die Feldlänge fßr das DB-Feld EVENT wird userspezifisch angepasst. Mit dem Attribut kann der Default-Wert im Modul
  9587. verändert werden wenn die Feldlänge in der Datenbank manuell geändert wurde. Mit colEvent=0 wird das Datenbankfeld
  9588. EVENT nicht gefĂźllt. <br>
  9589. <b>Hinweis:</b> <br>
  9590. Mit gesetztem Attribut gelten alle Feldlängenbegrenzungen auch fßr SQLite DB wie im Internal COLUMNS angezeigt ! <br>
  9591. </ul>
  9592. </ul>
  9593. <br>
  9594. <ul><b>colReading</b>
  9595. <ul>
  9596. <code>
  9597. attr &lt;device&gt; colReading &lt;n&gt;
  9598. </code><br>
  9599. Die Feldlänge fßr das DB-Feld READING wird userspezifisch angepasst. Mit dem Attribut kann der Default-Wert im Modul
  9600. verändert werden wenn die Feldlänge in der Datenbank manuell geändert wurde. Mit colReading=0 wird das Datenbankfeld
  9601. READING nicht gefĂźllt. <br>
  9602. <b>Hinweis:</b> <br>
  9603. Mit gesetztem Attribut gelten alle Feldlängenbegrenzungen auch fßr SQLite DB wie im Internal COLUMNS angezeigt ! <br>
  9604. </ul>
  9605. </ul>
  9606. <br>
  9607. <ul><b>colValue</b>
  9608. <ul>
  9609. <code>
  9610. attr &lt;device&gt; colValue &lt;n&gt;
  9611. </code><br>
  9612. Die Feldlänge fßr das DB-Feld VALUE wird userspezifisch angepasst. Mit dem Attribut kann der Default-Wert im Modul
  9613. verändert werden wenn die Feldlänge in der Datenbank manuell geändert wurde. Mit colValue=0 wird das Datenbankfeld
  9614. VALUE nicht gefĂźllt. <br>
  9615. <b>Hinweis:</b> <br>
  9616. Mit gesetztem Attribut gelten alle Feldlängenbegrenzungen auch fßr SQLite DB wie im Internal COLUMNS angezeigt ! <br>
  9617. </ul>
  9618. </ul>
  9619. <br>
  9620. <ul><b>DbLogType</b>
  9621. <ul>
  9622. <code>
  9623. attr &lt;device&gt; DbLogType [Current|History|Current/History|SampleFill/History]
  9624. </code><br>
  9625. Dieses Attribut legt fest, welche Tabelle oder Tabellen in der Datenbank genutzt werden sollen. Ist dieses Attribut nicht gesetzt, wird
  9626. per default die Einstellung <i>history</i> verwendet. <br><br>
  9627. Bedeutung der Einstellungen sind: <br><br>
  9628. <ul>
  9629. <table>
  9630. <colgroup> <col width=10%> <col width=90%> </colgroup>
  9631. <tr><td> <b>Current</b> </td><td>Events werden nur in die current-Tabelle geloggt.
  9632. Die current-Tabelle wird bei der SVG-Erstellung ausgewertet. </td></tr>
  9633. <tr><td> <b>History</b> </td><td>Events werden nur in die history-Tabelle geloggt. Es wird keine DropDown-Liste mit Vorschlägen bei der SVG-Erstellung
  9634. erzeugt. </td></tr>
  9635. <tr><td> <b>Current/History</b> </td><td>Events werden sowohl in die current- also auch in die hitory Tabelle geloggt.
  9636. Die current-Tabelle wird bei der SVG-Erstellung ausgewertet.</td></tr>
  9637. <tr><td> <b>SampleFill/History</b> </td><td>Events werden nur in die history-Tabelle geloggt. Die current-Tabelle wird bei der SVG-Erstellung ausgewertet und
  9638. kann zur Erzeugung einer DropDown-Liste mittels einem
  9639. <a href="#DbRep">DbRep-Device</a> <br> "set &lt;DbRep-Name&gt; tableCurrentFillup" mit
  9640. einem einstellbaren Extract der history-Tabelle gefĂźllt werden (advanced Feature). </td></tr>
  9641. </table>
  9642. </ul>
  9643. <br>
  9644. <br>
  9645. <b>Hinweis:</b> <br>
  9646. Die Current-Tabelle mu� genutzt werden um eine Device:Reading-DropDownliste zur Erstellung eines
  9647. SVG-Plots zu erhalten. <br>
  9648. </ul>
  9649. </ul>
  9650. <br>
  9651. <ul><b>DbLogSelectionMode</b>
  9652. <ul>
  9653. <code>
  9654. attr &lt;device&gt; DbLogSelectionMode [Exclude|Include|Exclude/Include]
  9655. </code><br>
  9656. Dieses, fuer DbLog-Devices spezifische Attribut beeinflu�t, wie die Device-spezifischen Attributes
  9657. DbLogExclude und DbLogInclude (s.u.) ausgewertet werden.<br>
  9658. Fehlt dieses Attribut, wird dafuer "Exclude" als Default angenommen. <br>
  9659. <ul>
  9660. <li>Exclude: DbLog verhaelt sich wie bisher auch, alles was ueber die RegExp im DEF angegeben ist, wird geloggt, bis auf das,
  9661. was ueber die RegExp in DbLogExclude ausgeschlossen wird. <br>
  9662. Das Attribut DbLogInclude wird in diesem Fall nicht beruecksichtigt</li>
  9663. <li>Include: Es wird nur das geloggt was ueber die RegExp in DbLogInclude (im Quelldevice) eingeschlossen wird. <br>
  9664. Das Attribut DbLogExclude wird in diesem Fall ebenso wenig beruecksichtigt wie die Regex im DEF. Auch
  9665. der Devicename (des Quelldevice) geht in die Auswertung nicht mit ein. </li>
  9666. <li>Exclude/Include: Funktioniert im Wesentlichen wie "Exclude", nur das sowohl DbLogExclude als auch DbLogInclude
  9667. geprueft werden. Readings die durch DbLogExclude zwar ausgeschlossen wurden, mit DbLogInclude aber wiederum eingeschlossen werden,
  9668. werden somit dennoch geloggt. </li>
  9669. </ul>
  9670. </ul>
  9671. </ul>
  9672. <br>
  9673. <ul><b>DbLogInclude</b>
  9674. <ul>
  9675. <code>
  9676. attr &lt;device&gt; DbLogInclude regex:MinInterval,[regex:MinInterval] ...
  9677. </code><br>
  9678. Wenn DbLog genutzt wird, wird in allen Devices das Attribut <i>DbLogInclude</i> propagiert.
  9679. DbLogInclude funktioniert im Endeffekt genau wie DbLogExclude, ausser dass eben readings mit diesen RegExp
  9680. in das Logging eingeschlossen werden koennen, statt ausgeschlossen.
  9681. Siehe dazu auch das DbLog-Device-Spezifische Attribut DbLogSelectionMode, das beeinflu�t wie
  9682. DbLogExclude und DbLogInclude ausgewertet werden. <br>
  9683. <b>Beispiel</b> <br>
  9684. <code>attr MyDevice1 DbLogInclude .*</code> <br>
  9685. <code>attr MyDevice2 DbLogInclude state,(floorplantext|MyUserReading):300,battery:3600</code>
  9686. </ul>
  9687. </ul>
  9688. <br>
  9689. <ul><b>DbLogExclude</b>
  9690. <ul>
  9691. <code>
  9692. attr &lt;device&gt; DbLogExclude regex:MinInterval,[regex:MinInterval] ...
  9693. </code><br>
  9694. Wenn DbLog genutzt wird, wird in alle Devices das Attribut <i>DbLogExclude</i> propagiert.
  9695. Der Wert des Attributes wird als Regexp ausgewertet und schliesst die damit matchenden Readings von einem Logging aus.
  9696. Einzelne Regexp werden durch Kommata getrennt. Ist MinIntervall angegeben, so wird der Logeintrag nur
  9697. dann nicht geloggt, wenn das Intervall noch nicht erreicht und der Wert des Readings sich nicht verändert hat. <br><br>
  9698. <b>Beispiel</b> <br>
  9699. <code>attr MyDevice1 DbLogExclude .*</code> <br>
  9700. <code>attr MyDevice2 DbLogExclude state,(floorplantext|MyUserReading):300,battery:3600</code>
  9701. </ul>
  9702. </ul>
  9703. <br>
  9704. <ul><b>excludeDevs</b>
  9705. <ul>
  9706. <code>
  9707. attr &lt;device&gt; excludeDevs &lt;devspec1&gt;[#Reading],&lt;devspec2&gt;[#Reading],&lt;devspec...&gt;
  9708. </code><br>
  9709. Die Device/Reading-Kombinationen "devspec1#Reading", "devspec2#Reading" bis "devspec..." werden vom Logging in die
  9710. Datenbank global ausgeschlossen. <br>
  9711. Die Angabe eines auszuschlie�enden Readings ist optional. <br>
  9712. Somit kĂśnnen Device/Readings explizit bzw. konsequent vom Logging ausgeschlossen werden ohne BerĂźcksichtigung anderer
  9713. Excludes oder Includes (z.B. im DEF).
  9714. Die auszuschlie�enden Devices kÜnnen als <a href="#devspec">Geräte-Spezifikation</a> angegeben werden.
  9715. Fßr weitere Details bezßglich devspec siehe <a href="#devspec">Geräte-Spezifikation</a>. <br><br>
  9716. <b>Beispiel</b> <br>
  9717. <code>
  9718. attr &lt;device&gt; excludeDevs global,Log.*,Cam.*,TYPE=DbLog
  9719. </code><br>
  9720. # Es werden die Devices global bzw. Devices beginnend mit "Log" oder "Cam" bzw. Devices vom Typ "DbLog" vom Logging ausgeschlossen. <br>
  9721. <code>
  9722. attr &lt;device&gt; excludeDevs .*#.*Wirkleistung.*
  9723. </code><br>
  9724. # Es werden alle Device/Reading-Kombinationen mit "Wirkleistung" im Reading vom Logging ausgeschlossen. <br>
  9725. <code>
  9726. attr &lt;device&gt; excludeDevs SMA_Energymeter#Bezug_WirkP_Zaehler_Diff
  9727. </code><br>
  9728. # Es wird der Event mit Device "SMA_Energymeter" und Reading "Bezug_WirkP_Zaehler_Diff" vom Logging ausgeschlossen. <br>
  9729. </ul>
  9730. </ul>
  9731. <br>
  9732. <ul><b>expimpdir</b>
  9733. <ul>
  9734. <code>
  9735. attr &lt;device&gt; expimpdir &lt;directory&gt;
  9736. </code><br>
  9737. In diesem Verzeichnis wird das Cachefile beim Export angelegt bzw. beim Import gesucht. Siehe set-Kommandos
  9738. <a href="#DbLogsetexportCache">"exportCache"</a> bzw. "importCachefile". Das Default-Verzeichnis ist "(global->modpath)/log/".
  9739. Das im Attribut angegebene Verzeichnis muss vorhanden und beschreibbar sein. <br><br>
  9740. <b>Beispiel</b> <br>
  9741. <code>
  9742. attr &lt;device&gt; expimpdir /opt/fhem/cache/
  9743. </code><br>
  9744. </ul>
  9745. </ul>
  9746. <br>
  9747. <ul><b>exportCacheAppend</b>
  9748. <ul>
  9749. <code>
  9750. attr &lt;device&gt; exportCacheAppend [1|0]
  9751. </code><br>
  9752. Wenn gesetzt, wird beim Export des Cache ("set &lt;device&gt; exportCache") der Cacheinhalt an das neueste bereits vorhandene
  9753. Exportfile angehängt. Ist noch kein Exportfile vorhanden, wird es neu angelegt. <br>
  9754. Ist das Attribut nicht gesetzt, wird bei jedem Exportvorgang ein neues Exportfile angelegt. (default)<br/>
  9755. </ul>
  9756. </ul>
  9757. <br>
  9758. <ul><b>noNotifyDev</b>
  9759. <ul>
  9760. <code>
  9761. attr &lt;device&gt; noNotifyDev [1|0]
  9762. </code><br>
  9763. Erzwingt dass NOTIFYDEV nicht gesetzt und somit nicht verwendet wird.<br>
  9764. </ul>
  9765. </ul>
  9766. <br>
  9767. <ul><b>noSupportPK</b>
  9768. <ul>
  9769. <code>
  9770. attr &lt;device&gt; noSupportPK [1|0]
  9771. </code><br>
  9772. Deaktiviert die programmtechnische UnterstĂźtzung eines gesetzten Primary Key durch das Modul.<br>
  9773. </ul>
  9774. </ul>
  9775. <br>
  9776. <ul><b>shutdownWait</b>
  9777. <ul>
  9778. <code>
  9779. attr &lt;device&gt; shutdownWait <n>
  9780. </code><br>
  9781. FHEM wartet während des shutdowns fuer n Sekunden, um die Datenbank korrekt zu beenden<br/>
  9782. </ul>
  9783. </ul>
  9784. <br>
  9785. <ul><b>showproctime</b>
  9786. <ul>
  9787. <code>attr &lt;device&gt; showproctime [1|0]
  9788. </code><br>
  9789. Wenn gesetzt, zeigt das Reading "sql_processing_time" die benĂśtigte Abarbeitungszeit (in Sekunden) fĂźr die SQL-AusfĂźhrung der
  9790. durchgefĂźhrten Funktion. Dabei wird nicht ein einzelnes SQL-Statement, sondern die Summe aller notwendigen SQL-Abfragen innerhalb der
  9791. jeweiligen Funktion betrachtet. Das Reading "background_processing_time" zeigt die im Kindprozess BlockingCall verbrauchte Zeit.<br>
  9792. </ul>
  9793. </ul>
  9794. <br>
  9795. <ul><b>showNotifyTime</b>
  9796. <ul>
  9797. <code>attr &lt;device&gt; showNotifyTime [1|0]
  9798. </code><br>
  9799. Wenn gesetzt, zeigt das Reading "notify_processing_time" die benĂśtigte Abarbeitungszeit (in Sekunden) fĂźr die
  9800. Abarbeitung der DbLog Notify-Funktion. Das Attribut ist fĂźr Performance Analysen geeignet und hilft auch die Unterschiede
  9801. im Zeitbedarf bei der Umschaltung des synchronen in den asynchronen Modus festzustellen. <br>
  9802. </ul>
  9803. </ul>
  9804. <br>
  9805. <ul><b>syncEvents</b>
  9806. <ul>
  9807. <code>attr &lt;device&gt; syncEvents [1|0]
  9808. </code><br>
  9809. es werden Events fĂźr Reading NextSync erzeugt. <br>
  9810. </ul>
  9811. </ul>
  9812. <br>
  9813. <ul><b>syncInterval</b>
  9814. <ul>
  9815. <code>attr &lt;device&gt; syncInterval &lt;n&gt;
  9816. </code><br>
  9817. Wenn DbLog im asynchronen Modus betrieben wird (Attribut asyncMode=1), wird mit diesem Attribut das Intervall in Sekunden zur Speicherung
  9818. der im Speicher gecachten Events in die Datenbank eingestellt. Der Defaultwert ist 30 Sekunden. <br>
  9819. </ul>
  9820. </ul>
  9821. <br>
  9822. <ul><b>suppressAddLogV3</b>
  9823. <ul>
  9824. <code>attr &lt;device&gt; suppressAddLogV3 [1|0]
  9825. </code><br>
  9826. Wenn gesetzt werden verbose3-Logeinträge durch die addLog-Funktion unterdrßckt. <br>
  9827. </ul>
  9828. </ul>
  9829. <br>
  9830. <ul><b>suppressUndef</b>
  9831. <ul>
  9832. <code>attr &lt;device&gt; ignoreUndef <n>
  9833. </code><br>
  9834. Unterdrueckt alle undef Werte die durch eine Get-Anfrage zb. Plot aus der Datenbank selektiert werden <br>
  9835. <b>Beispiel</b> <br>
  9836. <code>#DbLog eMeter:power:::$val=($val>1500)?undef:$val</code>
  9837. </ul>
  9838. </ul>
  9839. <br>
  9840. <ul><b>timeout</b>
  9841. <ul>
  9842. <code>
  9843. attr &lt;device&gt; timeout <n>
  9844. </code><br>
  9845. Setzt den Timeout-Wert fĂźr den Schreibzyklus in die Datenbank im asynchronen Modus (default 86400s). <br>
  9846. </ul>
  9847. </ul>
  9848. <br>
  9849. <ul><b>useCharfilter</b>
  9850. <ul>
  9851. <code>
  9852. attr &lt;device&gt; useCharfilter [0|1] <n>
  9853. </code><br>
  9854. wenn gesetzt, werden nur ASCII Zeichen von 32 bis 126 im Event akzeptiert. (default: 0) <br>
  9855. Das sind die Zeichen " A-Za-z0-9!"#$%&'()*+,-.\/:;<=>?@[\\]^_`{|}~". <br>
  9856. Umlaute und "�" werden umgesetzt (z.B. ä nach ae, � nach EUR). <br>
  9857. </ul>
  9858. </ul>
  9859. <br>
  9860. <ul><b>valueFn</b>
  9861. <ul>
  9862. <code>
  9863. attr &lt;device&gt; valueFn {}
  9864. </code><br>
  9865. Es kann Ăźber einen Perl-Ausdruck auf die Variablen $TIMESTAMP, $DEVICE, $DEVICETYPE, $READING, $VALUE (Wert des Readings) und
  9866. $UNIT (Einheit des Readingswert) zugegriffen werden und diese verändern, d.h. die veränderten Werte werden geloggt.
  9867. Au�erdem hat man lesenden Zugriff auf $EVENT fßr eine Auswertung im Perl-Ausdruck.
  9868. Diese Variable kann aber nicht verändert werden. <br>
  9869. Soll $TIMESTAMP verändert werden, muss die Form "yyyy-mm-dd hh:mm:ss" eingehalten werden, ansonsten wird der
  9870. geänderte $timestamp nicht ßbernommen.
  9871. Zusätzlich kann durch Setzen der Variable "$IGNORE=1" ein Datensatz vom Logging ausgeschlossen werden. <br><br>
  9872. <b>Beispiele</b> <br>
  9873. <code>
  9874. attr &lt;device&gt; valueFn {if ($DEVICE eq "living_Clima" && $VALUE eq "off" ){$VALUE=0;} elsif ($DEVICE eq "e-power"){$VALUE= sprintf "%.1f", $VALUE;}}
  9875. </code> <br>
  9876. # ändert den Reading-Wert des Gerätes "living_Clima" von "off" zu "0" und rundet den Wert vom Gerät "e-power" <br><br>
  9877. <code>
  9878. attr &lt;device&gt; valueFn {if ($DEVICE eq "SMA_Energymeter" && $READING eq "state"){$IGNORE=1;}}
  9879. </code><br>
  9880. # der Datensatz wird nicht geloggt wenn Device = "SMA_Energymeter" und das Reading = "state" ist <br><br>
  9881. <code>
  9882. attr &lt;device&gt; valueFn {if ($DEVICE eq "Dum.Energy" && $READING eq "TotalConsumption"){$UNIT="W";}}
  9883. </code><br>
  9884. # setzt die Einheit des Devices "Dum.Energy" auf "W" wenn das Reading = "TotalConsumption" ist <br><br>
  9885. </ul>
  9886. </ul>
  9887. <br>
  9888. <ul><b>verbose4Devs</b>
  9889. <ul>
  9890. <code>
  9891. attr &lt;device&gt; verbose4Devs &lt;device1&gt;,&lt;device2&gt;,&lt;device..&gt;
  9892. </code><br>
  9893. Mit verbose Level 4 werden nur Ausgaben bezĂźglich der in diesem Attribut aufgefĂźhrten Devices im Logfile protokolliert. Ohne dieses
  9894. Attribut werden mit verbose 4 Ausgaben aller relevanten Devices im Logfile protokolliert.
  9895. Die angegebenen Devices werden als Regex ausgewertet. <br>
  9896. <b>Beispiel</b> <br>
  9897. <code>
  9898. attr &lt;device&gt; verbose4Devs sys.*,.*5000.*,Cam.*,global
  9899. </code><br>
  9900. # Es werden Devices beginnend mit "sys", "Cam" bzw. Devices die "5000" enthalten und das Device "global" protokolliert falls verbose=4
  9901. eingestellt ist. <br>
  9902. </ul>
  9903. </ul>
  9904. <br>
  9905. </ul>
  9906. <p><a name="DbRep"></a>
  9907. <h3>DbRep</h3>
  9908. <div class='langLinks'>[<a href='commandref.html#DbRep'>EN</a> DE]</div>
  9909. <ul>
  9910. <br>
  9911. Zweck des Moduls ist es, den Inhalt von DbLog-Datenbanken nach bestimmten Kriterien zu durchsuchen, zu managen, das Ergebnis hinsichtlich verschiedener
  9912. Aggregationen auszuwerten und als Readings darzustellen. Die Abgrenzung der zu berĂźcksichtigenden Datenbankinhalte erfolgt durch die Angabe von Device, Reading und
  9913. die Zeitgrenzen fĂźr Auswertungsbeginn bzw. Auswertungsende. <br><br>
  9914. Fast alle Datenbankoperationen werden nichtblockierend ausgefĂźhrt. Auf Ausnahmen wird hingewiesen.
  9915. Die AusfĂźhrungszeit der (SQL)-Hintergrundoperationen kann optional ebenfalls als Reading bereitgestellt
  9916. werden (siehe <a href="#DbRepattr">Attribute</a>). <br>
  9917. Alle vorhandenen Readings werden vor einer neuen Operation gelĂśscht. Durch das Attribut "readingPreventFromDel" kann eine Komma separierte Liste von Readings
  9918. angegeben werden die nicht gelĂśscht werden sollen. <br><br>
  9919. Aktuell werden folgende Operationen unterstĂźtzt: <br><br>
  9920. <ul><ul>
  9921. <li> Selektion aller Datensätze innerhalb einstellbarer Zeitgrenzen </li>
  9922. <li> Darstellung der Datensätze einer Device/Reading-Kombination innerhalb einstellbarer Zeitgrenzen. </li>
  9923. <li> Selektion der Datensätze unter Verwendung von dynamisch berechneter Zeitgrenzen zum Ausfßhrungszeitpunkt. </li>
  9924. <li> Dubletten-Hervorhebung bei Datensatzanzeige (fetchrows) </li>
  9925. <li> Berechnung der Anzahl von Datensätzen einer Device/Reading-Kombination unter Berßcksichtigung von Zeitgrenzen
  9926. und verschiedenen Aggregationen. </li>
  9927. <li> Die Berechnung von Summen-, Differenz-, Maximum-, Minimum- und Durchschnittswerten numerischer Readings
  9928. in Zeitgrenzen und verschiedenen Aggregationen. </li>
  9929. <li> Speichern von Summen-, Differenz- , Maximum- , Minimum- und Durchschnittswertberechnungen in der Datenbank </li>
  9930. <li> LÜschung von Datensätzen. Die Eingrenzung der LÜschung kann durch Device und/oder Reading sowie fixer oder
  9931. dynamisch berechneter Zeitgrenzen zum AusfĂźhrungszeitpunkt erfolgen. </li>
  9932. <li> Export von Datensätzen in ein File im CSV-Format </li>
  9933. <li> Import von Datensätzen aus File im CSV-Format </li>
  9934. <li> Umbenennen von Device/Readings in Datenbanksätzen </li>
  9935. <li> �ndern von Reading-Werten (VALUES) in der Datenbank (changeValue) </li>
  9936. <li> automatisches Umbenennen von Device-Namen in Datenbanksätzen und DbRep-Definitionen nach FHEM "rename"
  9937. Befehl (siehe <a href="#DbRepAutoRename">DbRep-Agent</a>) </li>
  9938. <li> AusfĂźhren von beliebigen Benutzer spezifischen SQL-Kommandos (non-blocking) </li>
  9939. <li> AusfĂźhren von beliebigen Benutzer spezifischen SQL-Kommandos (blocking) zur Verwendung in eigenem Code (dbValue) </li>
  9940. <li> Backups der FHEM-Datenbank im laufenden Betrieb erstellen (MySQL, SQLite) </li>
  9941. <li> senden des Dumpfiles zu einem FTP-Server nach dem Backup incl. Versionsverwaltung </li>
  9942. <li> Restore von SQLite- und MySQL-Dumps </li>
  9943. <li> Optimierung der angeschlossenen Datenbank (optimizeTables, vacuum) </li>
  9944. <li> Ausgabe der existierenden Datenbankprozesse (MySQL) </li>
  9945. <li> leeren der current-Tabelle </li>
  9946. <li> AuffĂźllen der current-Tabelle mit einem (einstellbaren) Extrakt der history-Tabelle</li>
  9947. <li> Bereinigung sequentiell aufeinander folgender Datensätze mit unterschiedlichen Zeitstempel aber gleichen Werten (sequentielle Dublettenbereinigung) </li>
  9948. <li> Reparatur einer korrupten SQLite Datenbank ("database disk image is malformed") </li>
  9949. <li> �bertragung von Datensätzen aus der Quelldatenbank in eine andere (Standby) Datenbank (syncStandby) </li>
  9950. <li> Reduktion der Anzahl von Datensätzen in der Datenbank (reduceLog) </li>
  9951. </ul></ul>
  9952. <br>
  9953. Zur Aktivierung der Funktion <b>Autorename</b> wird dem definierten DbRep-Device mit dem Attribut "role" die Rolle "Agent" zugewiesen. Die Standardrolle nach Definition
  9954. ist "Client". Mehr ist dazu im Abschnitt <a href="#DbRepAutoRename">DbRep-Agent</a> beschrieben. <br><br>
  9955. DbRep stellt dem Nutzer einen <b>UserExit</b> zur Verfßgung. �ber diese Schnittstelle kann der Nutzer in Abhängigkeit von
  9956. frei definierbaren Reading/Value-Kombinationen (Regex) eigenen Code zur AusfĂźhrung bringen. Diese Schnittstelle arbeitet
  9957. unabhängig von einer Eventgenerierung. Weitere Informationen dazu ist unter <a href="#DbRepattr">Attribut</a>
  9958. "userExitFn" beschrieben. <br><br>
  9959. Sobald ein DbRep-Device definiert ist, wird die Funktion <b>DbReadingsVal</b> zur VerfĂźgung gestellt.
  9960. Mit dieser Funktion lä�t sich, ähnlich dem allgemeinen ReadingsVal, der Wert eines Readings aus der Datenbank abrufen.
  9961. Die FunktionsausfĂźhrung erfolgt blockierend.
  9962. Die Befehlssyntax ist: <br><br>
  9963. <ul>
  9964. <code>DbReadingsVal("&lt;name&gt;","&lt;device:reading&gt;","&lt;timestamp&gt;","&lt;default&gt;") </code> <br><br>
  9965. <b>Beispiele: </b><br>
  9966. $ret = DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-01-13 08:00:00",""); <br>
  9967. attr &lt;name&gt; userReadings oldtemp {DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-04-13 08:00:00","")}
  9968. <br><br>
  9969. <table>
  9970. <colgroup> <col width=5%> <col width=95%> </colgroup>
  9971. <tr><td> <b>&lt;name&gt;</b> </td><td>: Name des abzufragenden DbRep-Device </td></tr>
  9972. <tr><td> <b>&lt;device:reading&gt;</b> </td><td>: Device:Reading dessen Wert geliefert werden soll </td></tr>
  9973. <tr><td> <b>&lt;timestamp&gt;</b> </td><td>: Zeitpunkt des zu liefernden Readingwertes (*) in der Form "YYYY-MM-DD hh:mm:ss" </td></tr>
  9974. <tr><td> <b>&lt;default&gt;</b> </td><td>: Defaultwert falls kein Readingwert ermittelt werden konnte </td></tr>
  9975. </table>
  9976. </ul>
  9977. <br>
  9978. (*) Es wird der zeitlich zu &lt;timestamp&gt; passendste Readingwert zurĂźck geliefert, falls kein Wert exakt zu dem
  9979. angegebenen Zeitpunkt geloggt wurde.
  9980. <br><br>
  9981. FHEM-Forum: <br>
  9982. <a href="https://forum.fhem.de/index.php/topic,53584.msg452567.html#msg452567">Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)</a>. <br><br>
  9983. FHEM-Wiki: <br>
  9984. <a href="https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten">DbRep - Reporting und Management von DbLog-Datenbankinhalten</a>. <br><br>
  9985. <br>
  9986. </ul>
  9987. <b>Voraussetzungen </b> <br><br>
  9988. <ul>
  9989. Das Modul setzt den Einsatz einer oder mehrerer DbLog-Instanzen voraus. Es werden die Zugangsdaten dieser
  9990. Datenbankdefinition genutzt. <br>
  9991. Es werden nur Inhalte der Tabelle "history" berĂźcksichtigt wenn nichts anderes beschrieben ist. <br><br>
  9992. �berblick welche anderen Perl-Module DbRep verwendet: <br><br>
  9993. Net::FTP (nur wenn FTP-Transfer nach Datenbank-Dump genutzt wird) <br>
  9994. Net::FTPSSL (nur wenn FTP-Transfer mit VerschlĂźsselung nach Datenbank-Dump genutzt wird) <br>
  9995. POSIX <br>
  9996. Time::HiRes <br>
  9997. Time::Local <br>
  9998. Scalar::Util <br>
  9999. DBI <br>
  10000. Color (FHEM-Modul) <br>
  10001. IO::Compress::Gzip <br>
  10002. IO::Uncompress::Gunzip <br>
  10003. Blocking (FHEM-Modul) <br><br>
  10004. Aus Performancegrßnden sollte zusätzlich folgender Index erstellt werden: <br>
  10005. <code>
  10006. CREATE INDEX Report_Idx ON `history` (TIMESTAMP, READING) USING BTREE;
  10007. </code>
  10008. </ul>
  10009. <br>
  10010. <a name="DbRepdefine"></a>
  10011. <b>Definition</b>
  10012. <br>
  10013. <ul>
  10014. <code>
  10015. define &lt;name&gt; DbRep &lt;Name der DbLog-Instanz&gt;
  10016. </code>
  10017. <br><br>
  10018. (&lt;Name der DbLog-Instanz&gt; - es wird der Name der auszuwertenden DBLog-Datenbankdefinition angegeben <b>nicht</b> der Datenbankname selbst)
  10019. </ul>
  10020. <br><br>
  10021. <a name="DbRepset"></a>
  10022. <b>Set </b>
  10023. <ul>
  10024. Zur Zeit gibt es folgende Set-Kommandos. �ber sie werden die Auswertungen angesto�en und definieren selbst die Auswertungsvariante.
  10025. Nach welchen Kriterien die Datenbankinhalte durchsucht werden und die Aggregation erfolgt, wird durch <a href="#DbRepattr">Attribute</a> gesteuert.
  10026. <br><br>
  10027. <ul><ul>
  10028. <li><b> averageValue [display | writeToDB]</b>
  10029. - berechnet einen Durchschnittswert des Datenbankfelds "VALUE" in den
  10030. gegebenen Zeitgrenzen ( siehe <a href="#DbRepattr">Attribute</a>).
  10031. Es muss das auszuwertende Reading Ăźber das <a href="#DbRepattr">Attribut</a> "reading"
  10032. angegeben sein. <br>
  10033. Mit dem Attribut "averageCalcForm" wird die Berechnungsvariante zur Mittelwertermittlung definiert.
  10034. Ist keine oder die Option "display" angegeben, werden die Ergebnisse nur angezeigt. Mit
  10035. der Option "writeToDB" werden die Berechnungsergebnisse mit einem neuen Readingnamen
  10036. in der Datenbank gespeichert. <br>
  10037. Der neue Readingname wird aus einem Präfix und dem originalen Readingnamen gebildet,
  10038. wobei der originale Readingname durch das Attribut "readingNameMap" ersetzt werden kann.
  10039. Der Präfix setzt sich aus der Bildungsfunktion und der Aggregation zusammen. <br>
  10040. Der Timestamp der neuen Readings in der Datenbank wird von der eingestellten Aggregationsperiode
  10041. abgeleitet, sofern kein eindeutiger Zeitpunkt des Ergebnisses bestimmt werden kann.
  10042. Das Feld "EVENT" wird mit "calculated" gefĂźllt.<br><br>
  10043. <ul>
  10044. <b>Beispiel neuer Readingname gebildet aus dem Originalreading "totalpac":</b> <br>
  10045. avgam_day_totalpac <br>
  10046. # &lt;Bildungsfunktion&gt;_&lt;Aggregation&gt;_&lt;Originalreading&gt; <br>
  10047. </ul>
  10048. <br>
  10049. Zusammengefasst sind die zur Steuerung dieser Funktion relevanten Attribute: <br><br>
  10050. <ul>
  10051. <table>
  10052. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10053. <tr><td> <b>aggregation</b> </td><td>: Auswahl einer Aggregationsperiode </td></tr>
  10054. <tr><td> <b>averageCalcForm</b> </td><td>: Auswahl der Berechnungsvariante fĂźr den Durchschnitt</td></tr>
  10055. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10056. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10057. <tr><td> <b>readingNameMap</b> </td><td>: die entstehenden Ergebnisreadings werden partiell umbenannt </td></tr>
  10058. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10059. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10060. </table>
  10061. </ul>
  10062. <br>
  10063. <br>
  10064. </li> <br>
  10065. <li><b> cancelDump </b> - bricht einen laufenden Datenbankdump ab. </li> <br>
  10066. <li><b> changeValue </b> - ändert den gespeicherten Wert eines Readings.
  10067. Ist die Selektion auf bestimmte Device/Reading-Kombinationen durch die
  10068. <a href="#DbRepattr">Attribute</a> "device" bzw. "reading" beschränkt, werden sie genauso
  10069. berĂźcksichtigt wie gesetzte Zeitgrenzen (Attribute time.*). <br>
  10070. Fehlen diese Beschränkungen, wird die gesamte Datenbank durchsucht und der angegebene Wert
  10071. geändert. <br><br>
  10072. <ul>
  10073. <b>Syntax: </b> <br>
  10074. set &lt;name&gt; changeValue "&lt;alter String&gt;","&lt;neuer String&gt;" <br><br>
  10075. Die Strings werden in Doppelstrich eingeschlossen und durch Komma getrennt.
  10076. Dabei kann "String" sein: <br>
  10077. <table>
  10078. <colgroup> <col width=15%> <col width=85%> </colgroup>
  10079. <tr><td style="vertical-align:top"><b>&lt;old string&gt; :</b> <td><li>ein einfacher String mit/ohne Leerzeichen, z.B. "OL 12" </li>
  10080. <li>ein String mit Verwendung von SQL-Wildcard, z.B. "%OL%" </li> </td></tr>
  10081. <tr><td style="vertical-align:top"><b>&lt;new string&gt; :</b> <td><li>ein einfacher String mit/ohne Leerzeichen, z.B. "12 kWh" </li>
  10082. <li>Perl Code eingeschlossen in "{}" inkl. Quotes, z.B. "{($VALUE,$UNIT) = split(" ",$VALUE)}".
  10083. Dem Perl-Ausdruck werden die Variablen $VALUE und $UNIT Ăźbergeben. Sie kĂśnnen innerhalb
  10084. des Perl-Code geändert werden. Der zurßckgebene Wert von $VALUE und $UNIT wird in dem Feld
  10085. VALUE bzw. UNIT des Datensatzes gespeichert. </li></td></tr>
  10086. </table>
  10087. <br>
  10088. <b>Beispiele: </b> <br>
  10089. set &lt;name&gt; changeValue "OL","12 OL" <br>
  10090. # der alte Feldwert "OL" wird in "12 OL" geändert. <br><br>
  10091. set &lt;name&gt; changeValue "%OL%","12 OL" <br>
  10092. # enthält das Feld VALUE den Teilstring "OL", wird es in "12 OL" geändert. <br><br>
  10093. set &lt;name&gt; changeValue "12 kWh","{($VALUE,$UNIT) = split(" ",$VALUE)}" <br>
  10094. # der alte Feldwert "12 kWh" wird in VALUE=12 und UNIT=kWh gesplittet und in den Datenbankfeldern gespeichert <br><br>
  10095. set &lt;name&gt; changeValue "24%","{$VALUE = (split(" ",$VALUE))[0]}" <br>
  10096. # beginnt der alte Feldwert mit "24", wird er gesplittet und VALUE=24 gespeichert (z.B. "24 kWh")
  10097. <br><br>
  10098. Zusammengefasst sind die zur Steuerung von changeValue relevanten Attribute: <br><br>
  10099. <ul>
  10100. <table>
  10101. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10102. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10103. <tr><td> <b>aggregation</b> </td><td>: Auswahl einer Aggregationsperiode </td></tr>
  10104. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10105. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10106. <tr><td> <b>executeBeforeProc</b> </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) vor Start changeValue </td></tr>
  10107. <tr><td> <b>executeAfterProc</b> </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) nach Ende changeValue </td></tr>
  10108. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10109. </table>
  10110. </ul>
  10111. <br>
  10112. <br>
  10113. <b>Hinweis:</b> <br>
  10114. Obwohl die Funktion selbst non-blocking ausgelegt ist, sollte das zugeordnete DbLog-Device
  10115. im asynchronen Modus betrieben werden um ein Blockieren von FHEMWEB zu vermeiden (Tabellen-Lock). <br><br>
  10116. </li> <br>
  10117. </ul>
  10118. <li><b> countEntries [history | current] </b>
  10119. - liefert die Anzahl der Tabelleneinträge (default: history) in den gegebenen
  10120. Zeitgrenzen (siehe <a href="#DbRepattr">Attribute</a>).
  10121. Sind die Timestamps nicht gesetzt, werden alle Einträge der Tabelle gezählt.
  10122. Beschränkungen durch die <a href="#DbRepattr">Attribute</a> Device bzw. Reading
  10123. gehen in die Selektion mit ein. <br>
  10124. Standardmä�ig wird die Summe aller Datensätze, gekennzeichnet mit "ALLREADINGS", erstellt.
  10125. Ist das Attribut "countEntriesDetail" gesetzt, wird die Anzahl jedes einzelnen Readings
  10126. zusätzlich ausgegeben. <br><br>
  10127. Die fĂźr diese Funktion relevanten Attribute sind: <br><br>
  10128. <ul>
  10129. <table>
  10130. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10131. <tr><td> <b>aggregation</b> </td><td>: Zusammenfassung/Gruppierung von Zeitintervallen </td></tr>
  10132. <tr><td> <b>countEntriesDetail</b> </td><td>: detaillierte Ausgabe der Datensatzanzahl </td></tr>
  10133. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10134. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10135. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10136. <tr><td> <b>readingNameMap</b> </td><td>: die entstehenden Ergebnisreadings werden partiell umbenannt </td></tr>
  10137. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10138. </table>
  10139. </ul>
  10140. <br>
  10141. </li> <br>
  10142. <li><b> delEntries </b> - lĂśscht alle oder die durch die <a href="#DbRepattr">Attribute</a> device und/oder
  10143. reading definierten Datenbankeinträge. Die Eingrenzung ßber Timestamps erfolgt
  10144. folgenderma�en: <br><br>
  10145. <ul>
  10146. "timestamp_begin" gesetzt <b>-&gt;</b> gelÜscht werden DB-Einträge <b>ab</b> diesem Zeitpunkt bis zum aktuellen Datum/Zeit <br>
  10147. "timestamp_end" gesetzt <b>-&gt;</b> gelÜscht werden DB-Einträge <b>bis</b> bis zu diesem Zeitpunkt <br>
  10148. beide Timestamps gesetzt <b>-&gt;</b> gelÜscht werden DB-Einträge <b>zwischen</b> diesen Zeitpunkten <br>
  10149. "timeOlderThan" gesetzt <b>-&gt;</b> gelÜscht werden DB-Einträge <b>älter</b> als aktuelle Zeit minus "timeOlderThan" <br>
  10150. "timeDiffToNow" gesetzt <b>-&gt;</b> gelÜscht werden DB-Einträge <b>ab</b> aktueller Zeit minus "timeDiffToNow" bis jetzt <br>
  10151. </ul>
  10152. <br>
  10153. Aus SicherheitsgrĂźnden muss das <a href="#DbRepattr">Attribut</a> "allowDeletion"
  10154. gesetzt sein um die LĂśschfunktion freizuschalten. <br><br>
  10155. Die zur Steuerung von delEntries relevanten Attribute: <br><br>
  10156. <ul>
  10157. <table>
  10158. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10159. <tr><td> <b>allowDeletion</b> </td><td>: Freischaltung der LĂśschfunktion </td></tr>
  10160. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10161. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10162. <tr><td> <b>readingNameMap</b> </td><td>: die entstehenden Ergebnisreadings werden partiell umbenannt </td></tr>
  10163. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10164. <tr><td> <b>executeBeforeProc</b> </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) vor Start delEntries </td></tr>
  10165. <tr><td> <b>executeAfterProc</b> </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) nach Ende delEntries </td></tr>
  10166. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10167. </table>
  10168. </ul>
  10169. <br>
  10170. </li>
  10171. <br>
  10172. <li><b> delSeqDoublets [adviceRemain | adviceDelete | delete]</b> - zeigt bzw. lÜscht aufeinander folgende identische Datensätze.
  10173. Dazu wird Device,Reading und Value ausgewertet. Nicht gelĂśscht werden der erste und der letzte Datensatz
  10174. einer Aggregationsperiode (z.B. hour, day, week usw.) sowie die Datensätze vor oder nach einem Wertewechsel
  10175. (Datenbankfeld VALUE). <br>
  10176. Die <a href="#DbRepattr">Attribute</a> zur Aggregation,Zeit-,Device- und Reading-Abgrenzung werden dabei
  10177. berĂźcksichtigt. Ist das Attribut "aggregation" nicht oder auf "no" gesetzt, wird als Standard die Aggregation
  10178. "day" verwendet. Fßr Datensätze mit numerischen Werten kann mit dem <a href="#DbRepattr">Attribut</a>
  10179. "seqDoubletsVariance" eine Abweichung eingestellt werden, bis zu der aufeinander folgende numerische Werte als
  10180. identisch angesehen und gelĂśscht werden sollen.
  10181. <br><br>
  10182. <ul>
  10183. <table>
  10184. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10185. <tr><td> <b>adviceRemain</b> </td><td>: simuliert die nach der Operation in der DB verbleibenden Datensätze (es wird nichts gelÜscht !) </td></tr>
  10186. <tr><td> <b>adviceDelete</b> </td><td>: simuliert die zu lÜschenden Datensätze (es wird nichts gelÜscht !) </td></tr>
  10187. <tr><td> <b>delete</b> </td><td>: lĂśscht die sequentiellen Dubletten (siehe Beispiel) </td></tr>
  10188. </table>
  10189. </ul>
  10190. <br>
  10191. Aus SicherheitsgrĂźnden muss das <a href="#DbRepattr">Attribut</a> "allowDeletion" fĂźr die "delete" Option
  10192. gesetzt sein. <br>
  10193. Die Anzahl der anzuzeigenden Datensätze der Kommandos "delSeqDoublets adviceDelete", "delSeqDoublets adviceRemain" ist
  10194. zunächst begrenzt (default 1000) und kann durch das <a href="#DbRepattr">Attribut</a> "limit" angepasst werden.
  10195. Die Einstellung von "limit" hat keinen Einfluss auf die "delSeqDoublets delete" Funktion, sondern beeinflusst <b>NUR</b> die
  10196. Anzeige der Daten. <br>
  10197. Vor und nach der AusfĂźhrung von "delSeqDoublets" kann ein FHEM-Kommando bzw. Perl-Routine ausgefĂźhrt werden.
  10198. (siehe <a href="#DbRepattr">Attribute</a> "executeBeforeProc", "executeAfterProc")
  10199. <br><br>
  10200. <ul>
  10201. <b>Beispiel</b> - die nach Verwendung der delete-Option in der DB verbleibenden Datensätze sind <b>fett</b>
  10202. gekennzeichnet:<br><br>
  10203. <ul>
  10204. <b>2017-11-25_00-00-05__eg.az.fridge_Pwr__power 0 </b> <br>
  10205. 2017-11-25_00-02-26__eg.az.fridge_Pwr__power 0 <br>
  10206. 2017-11-25_00-04-33__eg.az.fridge_Pwr__power 0 <br>
  10207. 2017-11-25_01-06-10__eg.az.fridge_Pwr__power 0 <br>
  10208. <b>2017-11-25_01-08-21__eg.az.fridge_Pwr__power 0 </b> <br>
  10209. <b>2017-11-25_01-08-59__eg.az.fridge_Pwr__power 60.32 </b> <br>
  10210. <b>2017-11-25_01-11-21__eg.az.fridge_Pwr__power 56.26 </b> <br>
  10211. <b>2017-11-25_01-27-54__eg.az.fridge_Pwr__power 6.19 </b> <br>
  10212. <b>2017-11-25_01-28-51__eg.az.fridge_Pwr__power 0 </b> <br>
  10213. 2017-11-25_01-31-00__eg.az.fridge_Pwr__power 0 <br>
  10214. 2017-11-25_01-33-59__eg.az.fridge_Pwr__power 0 <br>
  10215. <b>2017-11-25_02-39-29__eg.az.fridge_Pwr__power 0 </b> <br>
  10216. <b>2017-11-25_02-41-18__eg.az.fridge_Pwr__power 105.28</b> <br>
  10217. <b>2017-11-25_02-41-26__eg.az.fridge_Pwr__power 61.52 </b> <br>
  10218. <b>2017-11-25_03-00-06__eg.az.fridge_Pwr__power 47.46 </b> <br>
  10219. <b>2017-11-25_03-00-33__eg.az.fridge_Pwr__power 0 </b> <br>
  10220. 2017-11-25_03-02-07__eg.az.fridge_Pwr__power 0 <br>
  10221. 2017-11-25_23-37-42__eg.az.fridge_Pwr__power 0 <br>
  10222. <b>2017-11-25_23-40-10__eg.az.fridge_Pwr__power 0 </b> <br>
  10223. <b>2017-11-25_23-42-24__eg.az.fridge_Pwr__power 1 </b> <br>
  10224. 2017-11-25_23-42-24__eg.az.fridge_Pwr__power 1 <br>
  10225. <b>2017-11-25_23-45-27__eg.az.fridge_Pwr__power 1 </b> <br>
  10226. <b>2017-11-25_23-47-07__eg.az.fridge_Pwr__power 0 </b> <br>
  10227. 2017-11-25_23-55-27__eg.az.fridge_Pwr__power 0 <br>
  10228. <b>2017-11-25_23-48-15__eg.az.fridge_Pwr__power 0 </b> <br>
  10229. <b>2017-11-25_23-50-21__eg.az.fridge_Pwr__power 59.1 </b> <br>
  10230. <b>2017-11-25_23-55-14__eg.az.fridge_Pwr__power 52.31 </b> <br>
  10231. <b>2017-11-25_23-58-09__eg.az.fridge_Pwr__power 51.73 </b> <br>
  10232. </ul>
  10233. </ul>
  10234. <br>
  10235. Zusammengefasst sind die zur Steuerung dieser Funktion relevanten Attribute: <br><br>
  10236. <ul>
  10237. <table>
  10238. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10239. <tr><td> <b>allowDeletion</b> </td><td>: needs to be set to execute the delete option </td></tr>
  10240. <tr><td> <b>aggregation</b> </td><td>: Auswahl einer Aggregationsperiode </td></tr>
  10241. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10242. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10243. <tr><td> <b>readingNameMap</b> </td><td>: die entstehenden Ergebnisreadings werden partiell umbenannt </td></tr>
  10244. <tr><td> <b>seqDoubletsVariance</b> </td><td>: bis zu diesem Wert werden aufeinander folgende numerische Datensätze als identisch angesehen und werden gelÜscht </td></tr>
  10245. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10246. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10247. </table>
  10248. </ul>
  10249. <br>
  10250. <br>
  10251. </li>
  10252. <li><b> deviceRename &lt;old_name&gt;,&lt;new_name&gt;</b> -
  10253. benennt den Namen eines Device innerhalb der angeschlossenen Datenbank (Internal DATABASE) um.
  10254. Der Gerätename wird immer in der <b>gesamten</b> Datenbank umgesetzt. Eventuell gesetzte
  10255. Zeitgrenzen oder Beschränkungen durch die <a href="#DbRepattr">Attribute</a> Device bzw.
  10256. Reading werden nicht berĂźcksichtigt. <br><br>
  10257. <ul>
  10258. <b>Beispiel: </b><br>
  10259. set &lt;name&gt; deviceRename ST_5000,ST5100 <br>
  10260. # Die Anzahl der umbenannten Device-Datensätze wird im Reading "device_renamed" ausgegeben. <br>
  10261. # Wird der umzubenennende Gerätename in der Datenbank nicht gefunden, wird eine WARNUNG im Reading "device_not_renamed" ausgegeben. <br>
  10262. # Entsprechende Einträge erfolgen auch im Logfile mit verbose=3
  10263. <br><br>
  10264. <b>Hinweis:</b> <br>
  10265. Obwohl die Funktion selbst non-blocking ausgelegt ist, sollte das zugeordnete DbLog-Device
  10266. im asynchronen Modus betrieben werden um ein Blockieren von FHEMWEB zu vermeiden (Tabellen-Lock). <br><br>
  10267. </li> <br>
  10268. </ul>
  10269. <li><b> diffValue [display | writeToDB] </b>
  10270. - berechnet den Differenzwert des Datenbankfelds "VALUE" in den Zeitgrenzen (Attribute) "timestamp_begin", "timestamp_end" bzw "timeDiffToNow / timeOlderThan".
  10271. Es muss das auszuwertende Reading im Attribut "reading" angegeben sein.
  10272. Diese Funktion ist z.B. zur Auswertung von Eventloggings sinnvoll, deren Werte sich fortlaufend erhĂśhen und keine Wertdifferenzen wegschreiben. <br>
  10273. Es wird immer die Differenz aus dem Value-Wert des ersten verfĂźgbaren Datensatzes und dem Value-Wert des letzten verfĂźgbaren Datensatzes innerhalb der angegebenen
  10274. Zeitgrenzen/Aggregation gebildet, wobei ein �bertragswert der Vorperiode (Aggregation) zur darauf folgenden Aggregationsperiode
  10275. berßcksichtigt wird sofern diese einen Value-Wert enhtält. <br>
  10276. Dabei wird ein Zählerßberlauf (Neubeginn bei 0) mit berßcksichtigt (vergleiche <a href="#DbRepattr">Attribut</a> "diffAccept"). <br>
  10277. Wird in einer auszuwertenden Zeit- bzw. Aggregationsperiode nur ein Datensatz gefunden, kann die Differenz in Verbindung mit dem
  10278. DifferenzĂźbertrag der Vorperiode berechnet werden. in diesem Fall kann es zu einer logischen Ungenauigkeit in der Zuordnung der Differenz
  10279. zu der Aggregationsperiode kommen. Deswegen wird eine Warnung im "state" und das
  10280. Reading "less_data_in_period" mit einer Liste der betroffenen Perioden wird erzeugt. <br><br>
  10281. <ul>
  10282. <b>Hinweis: </b><br>
  10283. Im Auswertungs- bzw. Aggregationszeitraum (Tag, Woche, Monat, etc.) sollten dem Modul pro Periode mindestens ein Datensatz
  10284. zu Beginn und ein Datensatz gegen Ende des Aggregationszeitraumes zur VerfĂźgung stehen um eine mĂśglichst genaue Auswertung
  10285. der Differenzwerte vornehmen zu kĂśnnen.
  10286. <br>
  10287. <br>
  10288. </ul>
  10289. Ist keine oder die Option "display" angegeben, werden die Ergebnisse nur angezeigt. Mit
  10290. der Option "writeToDB" werden die Berechnungsergebnisse mit einem neuen Readingnamen
  10291. in der Datenbank gespeichert. <br>
  10292. Der neue Readingname wird aus einem Präfix und dem originalen Readingnamen gebildet,
  10293. wobei der originale Readingname durch das Attribut "readingNameMap" ersetzt werden kann.
  10294. Der Präfix setzt sich aus der Bildungsfunktion und der Aggregation zusammen. <br>
  10295. Der Timestamp der neuen Readings in der Datenbank wird von der eingestellten Aggregationsperiode
  10296. abgeleitet, sofern kein eindeutiger Zeitpunkt des Ergebnisses bestimmt werden kann.
  10297. Das Feld "EVENT" wird mit "calculated" gefĂźllt.<br><br>
  10298. <ul>
  10299. <b>Beispiel neuer Readingname gebildet aus dem Originalreading "totalpac":</b> <br>
  10300. diff_day_totalpac <br>
  10301. # &lt;Bildungsfunktion&gt;_&lt;Aggregation&gt;_&lt;Originalreading&gt; <br>
  10302. </ul>
  10303. <br>
  10304. Zusammengefasst sind die zur Steuerung dieser Funktion relevanten Attribute: <br><br>
  10305. <ul>
  10306. <table>
  10307. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10308. <tr><td> <b>aggregation</b> </td><td>: Auswahl einer Aggregationsperiode </td></tr>
  10309. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10310. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10311. <tr><td> <b>readingNameMap</b> </td><td>: die entstehenden Ergebnisreadings werden partiell umbenannt </td></tr>
  10312. <tr><td> <b>seqDoubletsVariance</b> </td><td>: bis zu diesem Wert werden aufeinander folgende numerische Datensätze als identisch angesehen und werden gelÜscht </td></tr>
  10313. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10314. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10315. </table>
  10316. </ul>
  10317. <br>
  10318. </li> <br>
  10319. <li><b> dumpMySQL [clientSide | serverSide]</b>
  10320. - erstellt einen Dump der angeschlossenen MySQL-Datenbank. <br>
  10321. Abhängig von der ausgewählten Option wird der Dump auf der Client- bzw. Serverseite erstellt. <br>
  10322. Die Varianten unterscheiden sich hinsichtlich des ausfĂźhrenden Systems, des Erstellungsortes, der
  10323. Attributverwendung, des erzielten Ergebnisses und der benĂśtigten Hardwareressourcen. <br>
  10324. Die Option "clientSide" benÜtigt z.B. eine leistungsfähigere Hardware des FHEM-Servers, sichert aber alle
  10325. Tabellen inklusive eventuell angelegter Views. <br>
  10326. Mit dem Attribut "dumpCompress" kann eine Komprimierung der erstellten Dumpfiles eingeschaltet werden.
  10327. <br><br>
  10328. <ul>
  10329. <b><u>Option clientSide</u></b> <br>
  10330. Der Dump wird durch den Client (FHEM-Rechner) erstellt und per default im log-Verzeichnis des Clients
  10331. gespeichert.
  10332. Das Zielverzeichnis kann mit dem <a href="#DbRepattr">Attribut</a> "dumpDirLocal" verändert werden und mu� auf
  10333. dem Client durch FHEM beschreibbar sein. <br>
  10334. Vor dem Dump kann eine Tabellenoptimierung (Attribut "optimizeTablesBeforeDump") oder ein FHEM-Kommando
  10335. (Attribut "executeBeforeProc") optional zugeschaltet werden.
  10336. Nach dem Dump kann ebenfalls ein FHEM-Kommando (siehe Attribut "executeAfterProc") ausgefĂźhrt werden. <br><br>
  10337. <b>Achtung ! <br>
  10338. Um ein Blockieren von FHEM zu vermeiden, mu� DbLog im asynchronen Modus betrieben werden wenn die
  10339. Tabellenoptimierung verwendet wird ! </b> <br><br>
  10340. �ber die <a href="#DbRepattr">Attribute</a> "dumpMemlimit" und "dumpSpeed" kann das Laufzeitverhalten der
  10341. Funktion beeinflusst werden um eine Optimierung bezĂźglich Performance und Ressourcenbedarf zu erreichen. <br><br>
  10342. Die fĂźr "dumpMySQL clientSide" relevanten Attribute sind: <br><br>
  10343. <ul>
  10344. <table>
  10345. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10346. <tr><td> dumpComment </td><td>: User-Kommentar im Dumpfile </td></tr>
  10347. <tr><td> dumpCompress </td><td>: Komprimierung des Dumpfiles nach der Erstellung </td></tr>
  10348. <tr><td> dumpDirLocal </td><td>: das lokale Zielverzeichnis fĂźr die Erstellung des Dump </td></tr>
  10349. <tr><td> dumpMemlimit </td><td>: Begrenzung der Speicherverwendung </td></tr>
  10350. <tr><td> dumpSpeed </td><td>: Begrenzung die CPU-Belastung </td></tr>
  10351. <tr><td> dumpFilesKeep </td><td>: Anzahl der aufzubwahrenden Dumpfiles </td></tr>
  10352. <tr><td> executeBeforeProc </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) vor dem Dump </td></tr>
  10353. <tr><td> executeAfterProc </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) nach dem Dump </td></tr>
  10354. <tr><td> optimizeTablesBeforeDump </td><td>: Tabelloptimierung vor dem Dump ausfĂźhren </td></tr>
  10355. </table>
  10356. </ul>
  10357. <br>
  10358. Nach einem erfolgreichen Dump werden alte Dumpfiles gelĂśscht und nur die Anzahl Files, definiert durch
  10359. das Attribut "dumpFilesKeep" (default: 3), verbleibt im Zielverzeichnis "dumpDirLocal". Falls "dumpFilesKeep = 0"
  10360. gesetzt ist, werden alle Dumpfiles (auch das aktuell erstellte File), gelĂśscht.
  10361. Diese Einstellung kann sinnvoll sein, wenn FTP aktiviert ist
  10362. und die erzeugten Dumps nur im FTP-Zielverzeichnis erhalten bleiben sollen. <br><br>
  10363. Die <b>Namenskonvention der Dumpfiles</b> ist: &lt;dbname&gt;_&lt;date&gt;_&lt;time&gt;.sql[.gzip] <br><br>
  10364. Um die Datenbank aus dem Dumpfile wiederherzustellen kann das Kommmando: <br><br>
  10365. <ul>
  10366. set &lt;name&gt; restoreMySQL &lt;filename&gt; <br><br>
  10367. </ul>
  10368. verwendet werden. <br><br>
  10369. Das erzeugte Dumpfile (unkomprimiert) kann ebenfalls mit: <br><br>
  10370. <ul>
  10371. mysql -u &lt;user&gt; -p &lt;dbname&gt; < &lt;filename&gt;.sql <br><br>
  10372. </ul>
  10373. auf dem MySQL-Server ausgefĂźhrt werden um die Datenbank aus dem Dump wiederherzustellen. <br><br>
  10374. <br>
  10375. <b><u>Option serverSide</u></b> <br>
  10376. Der Dump wird durch den MySQL-Server erstellt und per default im Home-Verzeichnis des MySQL-Servers
  10377. gespeichert. <br>
  10378. Es wird die gesamte history-Tabelle (nicht current-Tabelle) <b>im CSV-Format</b> ohne
  10379. Einschränkungen exportiert. <br>
  10380. Vor dem Dump kann eine Tabellenoptimierung (Attribut "optimizeTablesBeforeDump")
  10381. optional zugeschaltet werden . <br><br>
  10382. <b>Achtung ! <br>
  10383. Um ein Blockieren von FHEM zu vermeiden, mu� DbLog im asynchronen Modus betrieben werden wenn die
  10384. Tabellenoptimierung verwendet wird ! </b> <br><br>
  10385. Vor und nach dem Dump kann ein FHEM-Kommando (siehe Attribute "executeBeforeProc", "executeAfterProc") ausgefĂźhrt
  10386. werden. <br><br>
  10387. Die fĂźr "dumpMySQL serverSide" relevanten Attribute sind: <br><br>
  10388. <ul>
  10389. <table>
  10390. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10391. <tr><td> dumpDirRemote </td><td>: das Erstellungsverzeichnis des Dumpfile auf dem entfernten Server </td></tr>
  10392. <tr><td> dumpCompress </td><td>: Komprimierung des Dumpfiles nach der Erstellung </td></tr>
  10393. <tr><td> dumpDirLocal </td><td>: Directory des lokal gemounteten dumpDirRemote-Verzeichnisses </td></tr>
  10394. <tr><td> dumpFilesKeep </td><td>: Anzahl der aufzubwahrenden Dumpfiles </td></tr>
  10395. <tr><td> executeBeforeProc </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) vor dem Dump </td></tr>
  10396. <tr><td> executeAfterProc </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) nach dem Dump </td></tr>
  10397. <tr><td> optimizeTablesBeforeDump </td><td>: Tabelloptimierung vor dem Dump ausfĂźhren </td></tr>
  10398. </table>
  10399. </ul>
  10400. <br>
  10401. Das Zielverzeichnis kann mit dem <a href="#DbRepattr">Attribut</a> "dumpDirRemote" verändert werden.
  10402. Es mu� sich auf dem MySQL-Host gefinden und durch den MySQL-Serverprozess beschreibbar sein. <br>
  10403. Der verwendete Datenbankuser benĂśtigt das "FILE"-Privileg. <br><br>
  10404. <b>Hinweis:</b> <br>
  10405. Soll die interne Versionsverwaltung und die Dumpfilekompression des Moduls genutzt, sowie die Gr�e des erzeugten
  10406. Dumpfiles ausgegeben werden, ist das Verzeichnis "dumpDirRemote" des MySQL-Servers auf dem Client zu mounten
  10407. und im <a href="#DbRepattr">Attribut</a> "dumpDirLocal" dem DbRep-Device bekannt zu machen. <br>
  10408. Gleiches gilt wenn der FTP-Transfer nach dem Dump genutzt werden soll (Attribut "ftpUse" bzw. "ftpUseSSL").
  10409. <br><br>
  10410. <ul>
  10411. <b>Beispiel: </b> <br>
  10412. attr &lt;name&gt; dumpDirRemote /volume1/ApplicationBackup/dumps_FHEM/ <br>
  10413. attr &lt;name&gt; dumpDirLocal /sds1/backup/dumps_FHEM/ <br>
  10414. attr &lt;name&gt; dumpFilesKeep 2 <br><br>
  10415. # Der Dump wird remote auf dem MySQL-Server im Verzeichnis '/volume1/ApplicationBackup/dumps_FHEM/'
  10416. erstellt. <br>
  10417. # Die interne Versionsverwaltung sucht im lokal gemounteten Verzeichnis '/sds1/backup/dumps_FHEM/'
  10418. vorhandene Dumpfiles und lĂśscht diese bis auf die zwei letzten Versionen. <br>
  10419. <br>
  10420. </ul>
  10421. Wird die interne Versionsverwaltung genutzt, werden nach einem erfolgreichen Dump alte Dumpfiles gelĂśscht
  10422. und nur die Anzahl "dumpFilesKeep" (default: 3) verbleibt im Zielverzeichnis "dumpDirRemote".
  10423. FHEM benĂśtigt in diesem Fall Schreibrechte auf dem Verzeichnis "dumpDirLocal". <br><br>
  10424. Die <b>Namenskonvention der Dumpfiles</b> ist: &lt;dbname&gt;_&lt;date&gt;_&lt;time&gt;.csv[.gzip] <br><br>
  10425. Ein Restore der Datenbank aus diesem Backup kann durch den Befehl: <br><br>
  10426. <ul>
  10427. set &lt;name&gt; &lt;restoreMySQL&gt; &lt;filename&gt;.csv[.gzip] <br><br>
  10428. </ul>
  10429. gestartet werden. <br><br>
  10430. <b><u>FTP Transfer nach Dump</u></b> <br>
  10431. Wenn diese MĂśglichkeit genutzt werden soll, ist das <a href="#DbRepattr">Attribut</a> "ftpUse" oder
  10432. "ftpUseSSL" zu setzen. Letzteres gilt wenn eine verschlßsselte �bertragung genutzt werden soll. <br>
  10433. Das Modul Ăźbernimmt ebenfalls die Versionierung der Dumpfiles im FTP-Zielverzeichnis mit Hilfe des Attributes
  10434. "ftpDumpFilesKeep".
  10435. Fßr die FTP-�bertragung relevante <a href="#DbRepattr">Attribute</a> sind: <br><br>
  10436. <ul>
  10437. <table>
  10438. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10439. <tr><td> ftpUse </td><td>: FTP Transfer nach dem Dump wird eingeschaltet (ohne SSL VerschlĂźsselung) </td></tr>
  10440. <tr><td> ftpUser </td><td>: User zur Anmeldung am FTP-Server, default: anonymous </td></tr>
  10441. <tr><td> ftpUseSSL </td><td>: FTP Transfer mit SSL VerschlĂźsselung nach dem Dump wird eingeschaltet </td></tr>
  10442. <tr><td> ftpDebug </td><td>: Debugging des FTP Verkehrs zur Fehlersuche </td></tr>
  10443. <tr><td> ftpDir </td><td>: Verzeichnis auf dem FTP-Server in welches das File Ăźbertragen werden soll (default: "/") </td></tr>
  10444. <tr><td> ftpDumpFilesKeep </td><td>: Es wird die angegebene Anzahl Dumpfiles im &lt;ftpDir&gt; belassen (default: 3) </td></tr>
  10445. <tr><td> ftpPassive </td><td>: setzen wenn passives FTP verwendet werden soll </td></tr>
  10446. <tr><td> ftpPort </td><td>: FTP-Port, default: 21 </td></tr>
  10447. <tr><td> ftpPwd </td><td>: Passwort des FTP-Users, default nicht gesetzt </td></tr>
  10448. <tr><td> ftpServer </td><td>: Name oder IP-Adresse des FTP-Servers. <b>notwendig !</b> </td></tr>
  10449. <tr><td> ftpTimeout </td><td>: Timeout fĂźr die FTP-Verbindung in Sekunden (default: 30). </td></tr>
  10450. </table>
  10451. </ul>
  10452. <br>
  10453. <br>
  10454. </ul>
  10455. </li><br>
  10456. <li><b> dumpSQLite </b> - erstellt einen Dump der angeschlossenen SQLite-Datenbank. <br>
  10457. Diese Funktion nutzt die SQLite Online Backup API und ermĂśglicht es konsistente Backups der SQLite-DB
  10458. in laufenden Betrieb zu erstellen.
  10459. Der Dump wird per default im log-Verzeichnis des FHEM-Rechners gespeichert.
  10460. Das Zielverzeichnis kann mit dem <a href="#DbRepattr">Attribut</a> "dumpDirLocal" verändert werden und mu�
  10461. durch FHEM beschreibbar sein.
  10462. Vor dem Dump kann optional eine Tabellenoptimierung (Attribut "optimizeTablesBeforeDump")
  10463. zugeschaltet werden.
  10464. <br><br>
  10465. <b>Achtung ! <br>
  10466. Um ein Blockieren von FHEM zu vermeiden, mu� DbLog im asynchronen Modus betrieben werden wenn die
  10467. Tabellenoptimierung verwendet wird ! </b> <br><br>
  10468. Vor und nach dem Dump kann ein FHEM-Kommando (siehe Attribute "executeBeforeProc", "executeAfterProc")
  10469. ausgefĂźhrt werden. <br><br>
  10470. Die fĂźr diese Funktion relevanten Attribute sind: <br><br>
  10471. <ul>
  10472. <table>
  10473. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10474. <tr><td> dumpCompress </td><td>: Komprimierung des Dumpfiles nach der Erstellung </td></tr>
  10475. <tr><td> dumpDirLocal </td><td>: Directory des lokal gemounteten dumpDirRemote-Verzeichnisses </td></tr>
  10476. <tr><td> dumpFilesKeep </td><td>: Anzahl der aufzubwahrenden Dumpfiles </td></tr>
  10477. <tr><td> executeBeforeProc </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) vor dem Dump </td></tr>
  10478. <tr><td> executeAfterProc </td><td>: ausfĂźhren FHEM Kommando (oder perl-Routine) nach dem Dump </td></tr>
  10479. <tr><td> optimizeTablesBeforeDump </td><td>: Tabelloptimierung vor dem Dump ausfĂźhren </td></tr>
  10480. </table>
  10481. </ul>
  10482. <br>
  10483. Nach einem erfolgreichen Dump werden alte Dumpfiles gelĂśscht und nur die Anzahl Files, definiert durch das
  10484. Attribut "dumpFilesKeep" (default: 3), verbleibt im Zielverzeichnis "dumpDirLocal". Falls "dumpFilesKeep = 0" gesetzt, werden
  10485. alle Dumpfiles (auch das aktuell erstellte File), gelĂśscht. Diese Einstellung kann sinnvoll sein, wenn FTP aktiviert ist
  10486. und die erzeugten Dumps nur im FTP-Zielverzeichnis erhalten bleiben sollen. <br><br>
  10487. Die <b>Namenskonvention der Dumpfiles</b> ist: &lt;dbname&gt;_&lt;date&gt;_&lt;time&gt;.sqlitebkp[.gzip] <br><br>
  10488. Die Datenbank kann mit "set &lt;name&gt; restoreSQLite &lt;Filename&gt;" wiederhergestellt
  10489. werden. <br>
  10490. Das erstellte Dumpfile kann auf einen FTP-Server ßbertragen werden. Siehe dazu die Erläuterungen
  10491. unter "dumpMySQL". <br><br>
  10492. </li><br>
  10493. <li><b> eraseReadings </b> - LÜscht alle angelegten Readings im Device, au�er dem Reading "state" und Readings, die in der
  10494. Ausnahmeliste definiert mit Attribut "readingPreventFromDel" enthalten sind.
  10495. </li><br>
  10496. <li><b> exportToFile [&lt;File&gt;] </b>
  10497. - exportiert DB-Einträge im CSV-Format in den gegebenen Zeitgrenzen. <br>
  10498. Einschränkungen durch die <a href="#DbRepattr">Attribute</a> "device" bzw. "reading" gehen in die Selektion mit ein.
  10499. Der Dateiname wird durch das <a href="#DbRepattr">Attribut</a> "expimpfile" bestimmt. <br>
  10500. Alternativ kann die Datei (/Pfad/Datei) als Kommando-Option angegeben werden und Ăźbersteuert ein
  10501. eventuell gesetztes Attribut "expimpfile". Der Dateiname kann Wildcards enthalten (siehe Attribut "expimpfile").
  10502. <br>
  10503. Durch das Attribut "aggregation" wird der Export der Datensätze in Zeitscheiben der angegebenen Aggregation
  10504. vorgenommen. Ist z.B. "aggregation = month" gesetzt, werden die Daten in monatlichen Paketen selektiert und in
  10505. das Exportfile geschrieben. Dadurch wird die Hauptspeicherverwendung optimiert wenn sehr gro�e Datenmengen
  10506. exportiert werden sollen und vermeidet den "died prematurely" Abbruchfehler. <br><br>
  10507. Die fĂźr diese Funktion relevanten Attribute sind: <br><br>
  10508. <ul>
  10509. <table>
  10510. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10511. <tr><td> <b>aggregation</b> </td><td>: Festlegung der Selektionspaketierung </td></tr>
  10512. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10513. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10514. <tr><td> <b>executeBeforeProc</b> </td><td>: FHEM Kommando (oder perl-Routine) vor dem Export ausfĂźhren </td></tr>
  10515. <tr><td> <b>executeAfterProc</b> </td><td>: FHEM Kommando (oder perl-Routine) nach dem Export ausfĂźhren </td></tr>
  10516. <tr><td> <b>expimpfile</b> </td><td>: der Name des Exportfiles </td></tr>
  10517. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10518. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10519. </table>
  10520. </ul>
  10521. </li><br>
  10522. <li><b> fetchrows [history|current] </b>
  10523. - liefert <b>alle</b> Tabelleneinträge (default: history)
  10524. in den gegebenen Zeitgrenzen bzw. Selektionsbedingungen durch die <a href="#DbRepattr">Attribute</a>
  10525. "device" und "reading".
  10526. Eine evtl. gesetzte Aggregation wird dabei <b>nicht</b> berĂźcksichtigt. <br>
  10527. Die Leserichtung in der Datenbank kann durch das <a href="#DbRepattr">Attribut</a>
  10528. "fetchRoute" bestimmt werden. <br><br>
  10529. Jedes Ergebnisreading setzt sich aus dem Timestring des Datensatzes, einem Index, dem Device
  10530. und dem Reading zusammen.
  10531. Die Funktion fetchrows ist in der Lage, mehrfach vorkommende Datensätze (Dubletten) zu erkennen.
  10532. Solche Dubletten sind mit einem Index > 1 gekennzeichnet. <br>
  10533. Dubletten kĂśnnen mit dem Attribut "fetchMarkDuplicates" farblich hervorgehoben werden. <br><br>
  10534. <b>Hinweis:</b> <br>
  10535. Hervorgehobene Readings werden nach einem Restart bzw. nach rereadcfg nicht mehr angezeigt da
  10536. sie nicht im statefile gesichert werden (Verletzung erlaubter Readingnamen durch Formatierung).
  10537. <br><br>
  10538. Dieses Attribut ist mit einigen Farben vorbelegt, kann aber mit dem colorpicker-Widget
  10539. Ăźberschrieben werden: <br><br>
  10540. <ul>
  10541. <code>
  10542. attr &lt;name&gt; widgetOverride fetchMarkDuplicates:colorpicker
  10543. </code>
  10544. </ul>
  10545. <br>
  10546. Die Ergebnisreadings von fetchrows sind nach folgendem Schema aufgebaut: <br><br>
  10547. <ul>
  10548. <b>Beispiel:</b> <br>
  10549. 2017-10-22_03-04-43__1__SMA_Energymeter__Bezug_WirkP_Kosten_Diff <br>
  10550. # &lt;Datum&gt;_&lt;Zeit&gt;__&lt;Index&gt;__&lt;Device&gt;__&lt;Reading&gt;
  10551. </ul>
  10552. <br>
  10553. Zur besseren �bersicht sind die zur Steuerung von fetchrows relevanten Attribute hier noch einmal
  10554. dargestellt: <br><br>
  10555. <ul>
  10556. <table>
  10557. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10558. <tr><td> <b>fetchRoute</b> </td><td>: Leserichtung der Selektion innerhalb der Datenbank </td></tr>
  10559. <tr><td> <b>limit</b> </td><td>: begrenzt die Anzahl zu selektierenden bzw. anzuzeigenden Datensätze </td></tr>
  10560. <tr><td> <b>fetchMarkDuplicates</b> </td><td>: Hervorhebung von gefundenen Dubletten </td></tr>
  10561. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10562. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10563. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10564. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: filtert die anzuzeigenden Datensätze mit einem regulären Ausdruck. Der Regex wird auf Werte des DAtenbankfelder 'VALUE' angewendet. </td></tr>
  10565. </table>
  10566. </ul>
  10567. <br>
  10568. <br>
  10569. <b>Hinweis:</b> <br>
  10570. Auch wenn das Modul bezĂźglich der Datenbankabfrage nichtblockierend arbeitet, kann eine
  10571. zu gro�e Ergebnismenge (Anzahl Zeilen bzw. Readings) die Browsersesssion bzw. FHEMWEB
  10572. blockieren. Aus diesem Grund wird die Ergebnismenge mit dem
  10573. <a href="#limit">Attribut</a> "limit" begrenzt. Bei Bedarf kann dieses Attribut
  10574. geändert werden, falls eine Anpassung der Selektionsbedingungen nicht mÜglich oder
  10575. gewĂźnscht ist. <br><br>
  10576. </li> <br>
  10577. <li><b> insert </b> - Manuelles EinfĂźgen eines Datensatzes in die Tabelle "history". Obligatorisch sind Eingabewerte fĂźr Datum, Zeit und Value.
  10578. Die Werte fĂźr die DB-Felder Type bzw. Event werden mit "manual" gefĂźllt, sowie die Werte fĂźr Device, Reading aus den gesetzten <a href="#DbRepattr">Attributen </a> genommen. <br><br>
  10579. <ul>
  10580. <b>Eingabeformat: </b> Datum,Zeit,Value,[Unit] <br>
  10581. # Unit ist optional, Attribute "reading" und "device" mĂźssen gesetzt sein <br>
  10582. # Soll "Value=0" eingefĂźgt werden, ist "Value = 0.0" zu verwenden. <br><br>
  10583. <b>Beispiel: </b> 2016-08-01,23:00:09,TestValue,TestUnit <br>
  10584. # Es sind KEINE Leerzeichen im Feldwert erlaubt !<br>
  10585. <br>
  10586. <b>Hinweis: </b><br>
  10587. Bei der Eingabe ist darauf zu achten dass im beabsichtigten Aggregationszeitraum (Tag, Woche, Monat, etc.) MINDESTENS zwei
  10588. Datensätze fßr die Funktion diffValue zur Verfßgung stehen. Ansonsten kann keine Differenz berechnet werden und diffValue
  10589. gibt in diesem Fall "0" in der betroffenen Periode aus !
  10590. <br>
  10591. <br>
  10592. </li>
  10593. </ul>
  10594. <li><b> importFromFile [&lt;File&gt;] </b>
  10595. - importiert Datensätze im CSV-Format aus einer Datei in die Datenbank. <br>
  10596. Der Dateiname wird durch das <a href="#DbRepattr">Attribut</a> "expimpfile" bestimmt. <br>
  10597. Alternativ kann die Datei (/Pfad/Datei) als Kommando-Option angegeben werden und Ăźbersteuert ein
  10598. eventuell gesetztes Attribut "expimpfile". Der Dateiname kann Wildcards enthalten (siehe
  10599. Attribut "expimpfile"). <br><br>
  10600. <ul>
  10601. <b>Datensatzformat: </b> <br>
  10602. "TIMESTAMP","DEVICE","TYPE","EVENT","READING","VALUE","UNIT" <br><br>
  10603. # Die Felder "TIMESTAMP","DEVICE","TYPE","EVENT","READING" und "VALUE" mĂźssen gesetzt sein. Das Feld "UNIT" ist optional.
  10604. Der Fileinhalt wird als Transaktion importiert, d.h. es wird der Inhalt des gesamten Files oder, im Fehlerfall, kein Datensatz des Files importiert.
  10605. Wird eine umfangreiche Datei mit vielen Datensätzen importiert, sollte KEIN verbose=5 gesetzt werden. Es wßrden in diesem Fall sehr viele Sätze in
  10606. das Logfile geschrieben werden was FHEM blockieren oder Ăźberlasten kĂśnnte. <br><br>
  10607. <b>Beispiel: </b> <br>
  10608. "2016-09-25 08:53:56","STP_5000","SMAUTILS","etotal: 11859.573","etotal","11859.573","" <br>
  10609. <br>
  10610. Die fĂźr diese Funktion relevanten Attribute sind: <br><br>
  10611. <ul>
  10612. <table>
  10613. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10614. <tr><td> <b>executeBeforeProc</b> </td><td>: FHEM Kommando (oder perl-Routine) vor dem Import ausfĂźhren </td></tr>
  10615. <tr><td> <b>executeAfterProc</b> </td><td>: FHEM Kommando (oder perl-Routine) nach dem Import ausfĂźhren </td></tr>
  10616. <tr><td> <b>expimpfile</b> </td><td>: der Name des Importfiles </td></tr>
  10617. </table>
  10618. </ul>
  10619. </li> <br>
  10620. </ul>
  10621. <br>
  10622. <li><b> maxValue [display | writeToDB] </b>
  10623. - berechnet den Maximalwert des Datenbankfelds "VALUE" in den Zeitgrenzen
  10624. (Attribute) "timestamp_begin", "timestamp_end" bzw. "timeDiffToNow / timeOlderThan".
  10625. Es muss das auszuwertende Reading Ăźber das <a href="#DbRepattr">Attribut</a> "reading"
  10626. angegeben sein.
  10627. Die Auswertung enthält den Zeitstempel des ermittelten Maximumwertes innerhalb der
  10628. Aggregation bzw. Zeitgrenzen.
  10629. Im Reading wird der Zeitstempel des <b>letzten</b> Auftretens vom Maximalwert ausgegeben
  10630. falls dieser Wert im Intervall mehrfach erreicht wird. <br>
  10631. Ist keine oder die Option "display" angegeben, werden die Ergebnisse nur angezeigt. Mit
  10632. der Option "writeToDB" werden die Berechnungsergebnisse mit einem neuen Readingnamen
  10633. in der Datenbank gespeichert. <br>
  10634. Der neue Readingname wird aus einem Präfix und dem originalen Readingnamen gebildet,
  10635. wobei der originale Readingname durch das Attribut "readingNameMap" ersetzt werden kann.
  10636. Der Präfix setzt sich aus der Bildungsfunktion und der Aggregation zusammen. <br>
  10637. Der Timestamp der neuen Readings in der Datenbank wird von der eingestellten Aggregationsperiode
  10638. abgeleitet, sofern kein eindeutiger Zeitpunkt des Ergebnisses bestimmt werden kann.
  10639. Das Feld "EVENT" wird mit "calculated" gefĂźllt.<br><br>
  10640. <ul>
  10641. <b>Beispiel neuer Readingname gebildet aus dem Originalreading "totalpac":</b> <br>
  10642. max_day_totalpac <br>
  10643. # &lt;Bildungsfunktion&gt;_&lt;Aggregation&gt;_&lt;Originalreading&gt; <br>
  10644. </ul>
  10645. <br>
  10646. Zusammengefasst sind die zur Steuerung dieser Funktion relevanten Attribute: <br><br>
  10647. <ul>
  10648. <table>
  10649. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10650. <tr><td> <b>aggregation</b> </td><td>: Auswahl einer Aggregationsperiode </td></tr>
  10651. <tr><td> <b>limit</b> </td><td>: die Anzahl der ANZUZEIGENDEN Datensätz wird beschränkt </td></tr>
  10652. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10653. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10654. <tr><td> <b>readingNameMap</b> </td><td>: die entstehenden Ergebnisreadings werden partiell umbenannt </td></tr>
  10655. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10656. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10657. </table>
  10658. </ul>
  10659. <br>
  10660. </li> <br>
  10661. <li><b> minValue [display | writeToDB]</b>
  10662. - berechnet den Minimalwert des Datenbankfelds "VALUE" in den Zeitgrenzen
  10663. (Attribute) "timestamp_begin", "timestamp_end" bzw. "timeDiffToNow / timeOlderThan".
  10664. Es muss das auszuwertende Reading Ăźber das <a href="#DbRepattr">Attribut</a> "reading"
  10665. angegeben sein.
  10666. Die Auswertung enthält den Zeitstempel des ermittelten Minimumwertes innerhalb der
  10667. Aggregation bzw. Zeitgrenzen.
  10668. Im Reading wird der Zeitstempel des <b>ersten</b> Auftretens vom Minimalwert ausgegeben
  10669. falls dieser Wert im Intervall mehrfach erreicht wird. <br>
  10670. Ist keine oder die Option "display" angegeben, werden die Ergebnisse nur angezeigt. Mit
  10671. der Option "writeToDB" werden die Berechnungsergebnisse mit einem neuen Readingnamen
  10672. in der Datenbank gespeichert. <br>
  10673. Der neue Readingname wird aus einem Präfix und dem originalen Readingnamen gebildet,
  10674. wobei der originale Readingname durch das Attribut "readingNameMap" ersetzt werden kann.
  10675. Der Präfix setzt sich aus der Bildungsfunktion und der Aggregation zusammen. <br>
  10676. Der Timestamp der neuen Readings in der Datenbank wird von der eingestellten Aggregationsperiode
  10677. abgeleitet, sofern kein eindeutiger Zeitpunkt des Ergebnisses bestimmt werden kann.
  10678. Das Feld "EVENT" wird mit "calculated" gefĂźllt.<br><br>
  10679. <ul>
  10680. <b>Beispiel neuer Readingname gebildet aus dem Originalreading "totalpac":</b> <br>
  10681. min_day_totalpac <br>
  10682. # &lt;Bildungsfunktion&gt;_&lt;Aggregation&gt;_&lt;Originalreading&gt; <br>
  10683. </ul>
  10684. <br>
  10685. Zusammengefasst sind die zur Steuerung dieser Funktion relevanten Attribute: <br><br>
  10686. <ul>
  10687. <table>
  10688. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10689. <tr><td> <b>aggregation</b> </td><td>: Auswahl einer Aggregationsperiode </td></tr>
  10690. <tr><td> <b>limit</b> </td><td>: die Anzahl der ANZUZEIGENDEN Datensätz wird beschränkt </td></tr>
  10691. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10692. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10693. <tr><td> <b>readingNameMap</b> </td><td>: die entstehenden Ergebnisreadings werden partiell umbenannt </td></tr>
  10694. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10695. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10696. </table>
  10697. </ul>
  10698. <br>
  10699. </li> <br>
  10700. <li><b> optimizeTables </b> - optimiert die Tabellen in der angeschlossenen Datenbank (MySQL). <br>
  10701. Vor und nach der Optimierung kann ein FHEM-Kommando ausgefĂźhrt werden.
  10702. (siehe <a href="#DbRepattr">Attribute</a> "executeBeforeProc", "executeAfterProc")
  10703. <br><br>
  10704. <ul>
  10705. <b>Hinweis:</b> <br>
  10706. Obwohl die Funktion selbst non-blocking ausgelegt ist, mu� das zugeordnete DbLog-Device
  10707. im asynchronen Modus betrieben werden um ein Blockieren von FHEMWEB zu vermeiden. <br><br>
  10708. </li>
  10709. </ul><br>
  10710. <li><b> readingRename </b> - benennt den Namen eines Readings innerhalb der angeschlossenen Datenbank (siehe Internal DATABASE) um.
  10711. Der Readingname wird immer in der <b>gesamten</b> Datenbank umgesetzt. Eventuell
  10712. gesetzte Zeitgrenzen oder Beschränkungen durch die <a href="#DbRepattr">Attribute</a>
  10713. Device bzw. Reading werden nicht berĂźcksichtigt. <br><br>
  10714. <ul>
  10715. <b>Beispiel: </b><br>
  10716. set &lt;name&gt; readingRename &lt;alter Readingname&gt;,&lt;neuer Readingname&gt; <br>
  10717. # Die Anzahl der umbenannten Device-Datensätze wird im Reading "reading_renamed"
  10718. ausgegeben. <br>
  10719. # Wird der umzubenennende Readingname in der Datenbank nicht gefunden, wird eine
  10720. WARNUNG im Reading "reading_not_renamed" ausgegeben. <br>
  10721. # Entsprechende Einträge erfolgen auch im Logfile mit verbose=3.
  10722. <br><br>
  10723. <b>Hinweis:</b> <br>
  10724. Obwohl die Funktion selbst non-blocking ausgelegt ist, sollte das zugeordnete DbLog-Device
  10725. im asynchronen Modus betrieben werden um ein Blockieren von FHEMWEB zu vermeiden (Tabellen-Lock). <br><br>
  10726. </li> <br>
  10727. </ul>
  10728. <li><b> reduceLog [average[=day]] </b> <br>
  10729. Reduziert historische Datensätze innerhalb der durch die "time.*"-Attribute bestimmten
  10730. Zeitgrenzen auf einen Eintrag (den ersten) pro Stunde je Device & Reading.
  10731. Es muss mindestens eines der "time.*"-Attribute gesetzt sein (siehe Tabelle unten).
  10732. Die jeweils fehlende Zeitabgrenzung wird in diesem Fall durch das Modul errechnet.
  10733. <br><br>
  10734. Durch die optionale Angabe von 'average' wird nicht nur die Datenbank bereinigt, sondern
  10735. alle numerischen Werte einer Stunde werden auf einen einzigen Mittelwert reduziert.
  10736. Mit der Option 'average=day' werden alle numerischen Werte eines Tages auf einen einzigen
  10737. Mittelwert reduziert (impliziert 'average'). <br><br>
  10738. Mit den Attributen "device" und "reading" kÜnnen die zu berßcksichtigenden Datensätze eingeschlossen
  10739. bzw. ausgeschlossen werden. Beide Eingrenzungen reduzieren die selektierten Daten und verringern den
  10740. Ressourcenbedarf.
  10741. Das Reading "reduceLogState" enthält das Ausfßhrungsergebnis des letzten reduceLog-Befehls. <br><br>
  10742. Die fĂźr diese Funktion relevanten Attribute sind: <br><br>
  10743. <ul>
  10744. <table>
  10745. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10746. <tr><td> <b>executeBeforeProc</b> </td><td>: FHEM Kommando (oder perl-Routine) vor dem Export ausfĂźhren </td></tr>
  10747. <tr><td> <b>executeAfterProc</b> </td><td>: FHEM Kommando (oder perl-Routine) nach dem Export ausfĂźhren </td></tr>
  10748. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10749. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10750. <tr><td> <b>timeOlderThan</b> </td><td>: es werden Datenbankeinträge <b>älter</b> als dieses Attribut reduziert </td></tr>
  10751. <tr><td> <b>timestamp_end</b> </td><td>: es werden Datenbankeinträge <b>älter</b> als dieses Attribut reduziert </td></tr>
  10752. <tr><td> <b>timeDiffToNow</b> </td><td>: es werden Datenbankeinträge <b>neuer</b> als dieses Attribut reduziert </td></tr>
  10753. <tr><td> <b>timestamp_begin</b> </td><td>: es werden Datenbankeinträge <b>neuer</b> als dieses Attribut reduziert </td></tr>
  10754. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10755. </table>
  10756. </ul>
  10757. <br>
  10758. Aus Kompatibilitätsgrßnden kann der Befehl optional durch die Zusätze "EXCLUDE" bzw. "INCLUDE"
  10759. ergänzt werden um device/reading Kombinationen von reduceLog auszuschlie�en bzw. einzuschlie�en: <br><br>
  10760. <ul>
  10761. "reduceLog [average[=day]] [EXCLUDE=device1:reading1,device2:reading2,...] [INCLUDE=device:reading]" <br><br>
  10762. </ul>
  10763. Diese Angabe wird als Regex ausgewertet und Ăźberschreibt die Attribute "device" und "reading",
  10764. die in diesem Fall nicht beachtet werden. <br><br>
  10765. <ul>
  10766. <b>Beispiele: </b><br><br>
  10767. attr &lt;name&gt; timeOlderThan = d:200 <br>
  10768. set &lt;name&gt; reduceLog <br>
  10769. # Datensätze die älter als 200 Tage sind, werden auf den ersten Eintrag pro Stunde je Device & Reading
  10770. reduziert. <br>
  10771. <br>
  10772. attr &lt;name&gt; timeDiffToNow = d:200 <br>
  10773. set &lt;name&gt; reduceLog average=day <br>
  10774. # Datensätze die neuer als 200 Tage sind, werden auf einen Eintrag pro Tag je Device & Reading
  10775. reduziert. <br>
  10776. <br>
  10777. attr &lt;name&gt; timeDiffToNow = d:30 <br>
  10778. attr &lt;name&gt; device = TYPE=SONOSPLAYER EXCLUDE=Sonos_Kueche <br>
  10779. attr &lt;name&gt; reading = room% EXCLUDE=roomNameAlias <br>
  10780. set &lt;name&gt; reduceLog <br>
  10781. # Datensätze die neuer als 30 Tage sind, die Devices vom Typ SONOSPLAYER sind
  10782. (au�er Device "Sonos_Kueche"), die Readings mit "room" beginnen (au�er "roomNameAlias"),
  10783. werden auf den ersten Eintrag pro Stunde je Device & Reading reduziert. <br>
  10784. <br>
  10785. attr &lt;name&gt; timeDiffToNow = d:10 <br>
  10786. attr &lt;name&gt; timeOlderThan = d:5 <br>
  10787. attr &lt;name&gt; device = Luftdaten_remote <br>
  10788. set &lt;name&gt; reduceLog average <br>
  10789. # Datensätze die älter als 5 und neuer als 10 Tage sind und DEVICE "Luftdaten_remote" enthalten,
  10790. werden bereinigt. Numerische Werte einer Stunde werden auf einen Mittelwert reduziert <br>
  10791. <br>
  10792. </ul>
  10793. <b>Hinweis:</b> <br>
  10794. Obwohl die Funktion selbst non-blocking ausgelegt ist, sollte das zugeordnete DbLog-Device
  10795. im asynchronen Modus betrieben werden um ein Blockieren von FHEMWEB zu vermeiden
  10796. (Tabellen-Lock). <br>
  10797. Weiterhin wird dringend empfohlen den standard INDEX 'Search_Idx' in der Tabelle 'history'
  10798. anzulegen ! <br>
  10799. Die Abarbeitung dieses Befehls dauert unter Umständen (ohne INDEX) extrem lange. <br><br>
  10800. </li> <br>
  10801. <li><b> repairSQLite </b> - repariert eine korrupte SQLite-Datenbank. <br>
  10802. Eine Korruption liegt im Allgemeinen vor wenn die Fehlermitteilung "database disk image is malformed"
  10803. im state des DbLog-Devices erscheint.
  10804. Wird dieses Kommando gestartet, wird das angeschlossene DbLog-Device zunächst automatisch fßr 10 Stunden
  10805. (36000 Sekunden) von der Datenbank getrennt (Trennungszeit). Nach Abschluss der Reparatur erfolgt
  10806. wieder eine sofortige Neuverbindung zur reparierten Datenbank. <br>
  10807. Dem Befehl kann eine abweichende Trennungszeit (in Sekunden) als Argument angegeben werden. <br>
  10808. Die korrupte Datenbank wird als &lt;database&gt;.corrupt im gleichen Verzeichnis gespeichert. <br><br>
  10809. <ul>
  10810. <b>Beispiel: </b><br>
  10811. set &lt;name&gt; repairSQLite <br>
  10812. # Die Datenbank wird repariert, Trennungszeit beträgt 10 Stunden <br>
  10813. set &lt;name&gt; repairSQLite 600 <br>
  10814. # Die Datenbank wird repariert, Trennungszeit beträgt 10 Minuten
  10815. <br><br>
  10816. <b>Hinweis:</b> <br>
  10817. Es ist nicht garantiert, dass die Reparatur erfolgreich verläuft und keine Daten verloren gehen.
  10818. Je nach Schwere der Korruption kann Datenverlust auftreten oder die Reparatur scheitern, auch wenn
  10819. kein Fehler im Ablauf signalisiert wird. Ein Backup der Datenbank sollte unbedingt vorhanden
  10820. sein ! <br><br>
  10821. </li> <br>
  10822. </ul>
  10823. <li><b> restoreMySQL &lt;File&gt; </b> - stellt die Datenbank aus einem serverSide- oder clientSide-Dump wieder her. <br>
  10824. Die Funktion stellt Ăźber eine Drop-Down Liste eine Dateiauswahl fĂźr den Restore zur VerfĂźgung. <br><br>
  10825. <b>Verwendung eines serverSide-Dumps </b> <br>
  10826. Es wird der Inhalt der history-Tabelle aus einem serverSide-Dump wiederhergestellt.
  10827. Dazu ist das Verzeichnis "dumpDirRemote" des MySQL-Servers auf dem Client zu mounten
  10828. und im <a href="#DbRepattr">Attribut</a> "dumpDirLocal" dem DbRep-Device bekannt zu machen. <br>
  10829. Es werden alle Files mit der Endung "csv[.gzip]" und deren Name mit der
  10830. verbundenen Datenbank beginnt (siehe Internal DATABASE), aufgelistet.
  10831. <br><br>
  10832. <b>Verwendung eines clientSide-Dumps </b> <br>
  10833. Es werden alle Tabellen und eventuell vorhandenen Views wiederhergestellt.
  10834. Das Verzeichnis, in dem sich die Dump-Files befinden, ist im <a href="#DbRepattr">Attribut</a> "dumpDirLocal" dem
  10835. DbRep-Device bekannt zu machen. <br>
  10836. Es werden alle Files mit der Endung "sql[.gzip]" und deren Name mit der
  10837. verbundenen Datenbank beginnt (siehe Internal DATABASE), aufgelistet. <br>
  10838. Die Geschwindigkeit des Restores ist abhängig von der Servervariable "<b>max_allowed_packet</b>". Durch Veränderung
  10839. dieser Variable im File my.cnf kann die Geschwindigkeit angepasst werden. Auf genĂźgend verfĂźgbare Ressourcen (insbesondere
  10840. RAM) ist dabei zu achten. <br><br>
  10841. Der Datenbankuser benĂśtigt Rechte zum Tabellenmanagement, z.B.: <br>
  10842. CREATE, ALTER, INDEX, DROP, SHOW VIEW, CREATE VIEW
  10843. <br><br>
  10844. </li><br>
  10845. <li><b> restoreSQLite &lt;File&gt;.sqlitebkp[.gzip] </b> - stellt das Backup einer SQLite-Datenbank wieder her. <br>
  10846. Die Funktion stellt Ăźber eine Drop-Down Liste die fĂźr den Restore zur VerfĂźgung stehenden Dateien
  10847. zur VerfĂźgung. Die aktuell in der Zieldatenbank enthaltenen Daten werden gelĂśscht bzw.
  10848. Ăźberschrieben.
  10849. Es werden alle Files mit der Endung "sqlitebkp[.gzip]" und deren Name mit dem Namen der
  10850. verbundenen Datenbank beginnt, aufgelistet . <br><br>
  10851. </li><br>
  10852. <li><b> sqlCmd </b> - fĂźhrt ein beliebiges benutzerspezifisches Kommando aus. <br>
  10853. Enthält dieses Kommando eine Delete-Operation, muss zur Sicherheit das
  10854. <a href="#DbRepattr">Attribut</a> "allowDeletion" gesetzt sein. <br>
  10855. Bei der Ausfßhrung dieses Kommandos werden keine Einschränkungen durch gesetzte Attribute
  10856. "device", "reading", "time.*" bzw. "aggregation" berĂźcksichtigt. <br>
  10857. Sollen die im Modul gesetzten <a href="#DbRepattr">Attribute</a> "timestamp_begin" bzw.
  10858. "timestamp_end" im Statement berĂźcksichtigt werden, kĂśnnen die Platzhalter
  10859. "<b>§timestamp_begin§</b>" bzw. "<b>§timestamp_end§</b>" dafßr verwendet werden. <br><br>
  10860. Soll ein Datensatz upgedated werden, ist dem Statement "TIMESTAMP=TIMESTAMP" hinzuzufßgen um eine �nderung des
  10861. originalen Timestamps zu verhindern. <br><br>
  10862. <ul>
  10863. <b>Beispiele fĂźr Statements: </b> <br><br>
  10864. <ul>
  10865. <li>set &lt;name&gt; sqlCmd select DEVICE, count(*) from history where TIMESTAMP >= "2017-01-06 00:00:00" group by DEVICE having count(*) > 800 </li>
  10866. <li>set &lt;name&gt; sqlCmd select DEVICE, count(*) from history where TIMESTAMP >= "2017-05-06 00:00:00" group by DEVICE </li>
  10867. <li>set &lt;name&gt; sqlCmd select DEVICE, count(*) from history where TIMESTAMP >= §timestamp_begin§ group by DEVICE </li>
  10868. <li>set &lt;name&gt; sqlCmd select * from history where DEVICE like "Te%t" order by `TIMESTAMP` desc </li>
  10869. <li>set &lt;name&gt; sqlCmd select * from history where `TIMESTAMP` > "2017-05-09 18:03:00" order by `TIMESTAMP` desc </li>
  10870. <li>set &lt;name&gt; sqlCmd select * from current order by `TIMESTAMP` desc </li>
  10871. <li>set &lt;name&gt; sqlCmd select sum(VALUE) as 'Einspeisung am 04.05.2017', count(*) as 'Anzahl' FROM history where `READING` = "Einspeisung_WirkP_Zaehler_Diff" and TIMESTAMP between '2017-05-04' AND '2017-05-05' </li>
  10872. <li>set &lt;name&gt; sqlCmd delete from current </li>
  10873. <li>set &lt;name&gt; sqlCmd delete from history where TIMESTAMP < "2016-05-06 00:00:00" </li>
  10874. <li>set &lt;name&gt; sqlCmd update history set TIMESTAMP=TIMESTAMP,VALUE='Val' WHERE VALUE='TestValue' </li>
  10875. <li>set &lt;name&gt; sqlCmd select * from history where DEVICE = "Test" </li>
  10876. <li>set &lt;name&gt; sqlCmd insert into history (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES ('2017-05-09 17:00:14','Test','manuell','manuell','Tes§e','TestValue','°C') </li>
  10877. </ul>
  10878. <br>
  10879. Das Ergebnis des Statements wird im <a href="#DbRepReadings">Reading</a> "SqlResult" dargestellt.
  10880. Die Ergebnis-Formatierung kann durch das <a href="#DbRepattr">Attribut</a> "sqlResultFormat" ausgewählt, sowie der verwendete
  10881. Feldtrenner durch das <a href="#DbRepattr">Attribut</a> "sqlResultFieldSep" festgelegt werden. <br><br>
  10882. Das Modul stellt optional eine Kommando-Historie zur VerfĂźgung sobald ein SQL-Kommando erfolgreich
  10883. ausgefĂźhrt wurde.
  10884. Um diese Option zu nutzen, ist das Attribut "sqlCmdHistoryLength" mit der gewßnschten Listenlänge
  10885. zu aktivieren. <br><br>
  10886. Zur besseren �bersicht sind die zur Steuerung von sqlCmd relevanten Attribute hier noch einmal
  10887. dargestellt: <br><br>
  10888. <ul>
  10889. <table>
  10890. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10891. <tr><td> <b>allowDeletion</b> </td><td>: aktiviert LĂśschmĂśglichkeit </td></tr>
  10892. <tr><td> <b>sqlResultFormat</b> </td><td>: legt die Darstellung des Kommandoergebnis fest </td></tr>
  10893. <tr><td> <b>sqlResultFieldSep</b> </td><td>: Auswahl Feldtrenner im Ergebnis </td></tr>
  10894. <tr><td> <b>sqlCmdHistoryLength</b> </td><td>: Aktivierung Kommando-Historie und deren Umfang</td></tr>
  10895. </table>
  10896. </ul>
  10897. <br>
  10898. <br>
  10899. <b>Hinweis:</b> <br>
  10900. Auch wenn das Modul bezĂźglich der Datenbankabfrage nichtblockierend arbeitet, kann eine
  10901. zu gro�e Ergebnismenge (Anzahl Zeilen bzw. Readings) die Browsersesssion bzw. FHEMWEB
  10902. blockieren. Wenn man sich unsicher ist, sollte man vorsorglich dem Statement ein Limit
  10903. hinzufĂźgen. <br><br>
  10904. </li> <br>
  10905. </ul>
  10906. <li><b> sqlCmdHistory </b> - Wenn mit dem <a href="#DbRepattr">Attribut</a> "sqlCmdHistoryLength" aktiviert, kann
  10907. aus einer Liste ein bereits erfolgreich ausgefĂźhrtes sqlCmd-Kommando wiederholt werden. <br>
  10908. Mit AusfĂźhrung des letzten Eintrags der Liste, "__purge_historylist__", kann die Liste gelĂśscht
  10909. werden. <br>
  10910. Falls das Statement "," enthält, wird dieses Zeichen aus technischen Grßnden in der
  10911. History-Liste als "&lt;c&gt;" dargestellt. <br>
  10912. </li><br>
  10913. <li><b> sqlSpecial </b> - Die Funktion bietet eine Drop-Downliste mit einer Auswahl vorbereiter Auswertungen
  10914. an. <br>
  10915. Das Ergebnis des Statements wird im Reading "SqlResult" dargestellt.
  10916. Die Ergebnis-Formatierung kann durch das <a href="#DbRepattr">Attribut</a> "sqlResultFormat"
  10917. ausgewählt, sowie der verwendete Feldtrenner durch das <a href="#DbRepattr">Attribut</a>
  10918. "sqlResultFieldSep" festgelegt werden. <br><br>
  10919. Die fĂźr diese Funktion relevanten Attribute sind: <br><br>
  10920. <ul>
  10921. <table>
  10922. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10923. <tr><td> <b>sqlResultFormat</b> </td><td>: Optionen der Ergebnisformatierung </td></tr>
  10924. <tr><td> <b>sqlResultFieldSep</b> </td><td>: Auswahl des Trennzeichens zwischen Ergebnisfeldern </td></tr>
  10925. </table>
  10926. </ul>
  10927. <br>
  10928. Es sind die folgenden vordefinierte Auswertungen auswählbar: <br><br>
  10929. <ul>
  10930. <table>
  10931. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10932. <tr><td> <b>50mostFreqLogsLast2days </b> </td><td>: ermittelt die 50 am häufigsten vorkommenden Loggingeinträge der letzten 2 Tage </td></tr>
  10933. <tr><td> <b>allDevCount </b> </td><td>: alle in der Datenbank vorkommenden Devices und deren Anzahl </td></tr>
  10934. <tr><td> <b>allDevReadCount </b> </td><td>: alle in der Datenbank vorkommenden Device/Reading-Kombinationen und deren Anzahl</td></tr>
  10935. </table>
  10936. </ul>
  10937. </li><br><br>
  10938. <li><b> sumValue [display | writeToDB]</b>
  10939. - Berechnet die Summenwerte des Datenbankfelds "VALUE" in den Zeitgrenzen
  10940. (Attribute) "timestamp_begin", "timestamp_end" bzw. "timeDiffToNow / timeOlderThan".
  10941. Es muss das auszuwertende Reading im <a href="#DbRepattr">Attribut</a> "reading"
  10942. angegeben sein. Diese Funktion ist sinnvoll wenn fortlaufend Wertedifferenzen eines
  10943. Readings in die Datenbank geschrieben werden. <br>
  10944. Ist keine oder die Option "display" angegeben, werden die Ergebnisse nur angezeigt. Mit
  10945. der Option "writeToDB" werden die Berechnungsergebnisse mit einem neuen Readingnamen
  10946. in der Datenbank gespeichert. <br>
  10947. Der neue Readingname wird aus einem Präfix und dem originalen Readingnamen gebildet,
  10948. wobei der originale Readingname durch das Attribut "readingNameMap" ersetzt werden kann.
  10949. Der Präfix setzt sich aus der Bildungsfunktion und der Aggregation zusammen. <br>
  10950. Der Timestamp der neuen Readings in der Datenbank wird von der eingestellten Aggregationsperiode
  10951. abgeleitet, sofern kein eindeutiger Zeitpunkt des Ergebnisses bestimmt werden kann.
  10952. Das Feld "EVENT" wird mit "calculated" gefĂźllt.<br><br>
  10953. <ul>
  10954. <b>Beispiel neuer Readingname gebildet aus dem Originalreading "totalpac":</b> <br>
  10955. sum_day_totalpac <br>
  10956. # &lt;Bildungsfunktion&gt;_&lt;Aggregation&gt;_&lt;Originalreading&gt; <br>
  10957. </ul>
  10958. <br>
  10959. Zusammengefasst sind die zur Steuerung dieser Funktion relevanten Attribute: <br><br>
  10960. <ul>
  10961. <table>
  10962. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10963. <tr><td> <b>aggregation</b> </td><td>: Auswahl einer Aggregationsperiode </td></tr>
  10964. <tr><td> <b>limit</b> </td><td>: die Anzahl der ANZUZEIGENDEN Datensätz wird beschränkt </td></tr>
  10965. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10966. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10967. <tr><td> <b>readingNameMap</b> </td><td>: die entstehenden Ergebnisreadings werden partiell umbenannt </td></tr>
  10968. <tr><td> <b>time.*</b> </td><td>: eine Reihe von Attributen zur Zeitabgrenzung </td></tr>
  10969. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10970. </table>
  10971. </ul>
  10972. <br>
  10973. </li> <br>
  10974. <li><b> syncStandby &lt;DbLog-Device Standby&gt; </b>
  10975. - Es werden die Datensätze aus der angeschlossenen Datenbank (Quelle) direkt in eine weitere
  10976. Datenbank (Standby-Datenbank) Ăźbertragen.
  10977. Dabei ist "&lt;DbLog-Device Standby&gt;" das DbLog-Device, welches mit der Standby-Datenbank
  10978. verbunden ist. <br><br>
  10979. Es werden alle Datensätze ßbertragen, die durch Timestamp-<a href="#limit">Attribute</a>
  10980. bzw. die Attribute "device", "reading" bestimmt sind. <br>
  10981. Die Datensätze werden dabei in Zeitscheiben entsprechend der eingestellten Aggregation ßbertragen.
  10982. Hat das Attribut "aggregation" den Wert "no" oder "month", werden die Datensätze automatisch
  10983. in Tageszeitscheiben zur Standby-Datenbank Ăźbertragen.
  10984. Quell- und Standby-Datenbank kĂśnnen unterschiedlichen Typs sein.
  10985. <br><br>
  10986. Die zur Steuerung der syncStandby Funktion relevanten Attribute sind: <br><br>
  10987. <ul>
  10988. <table>
  10989. <colgroup> <col width=5%> <col width=95%> </colgroup>
  10990. <tr><td> <b>aggregation</b> </td><td>: Einstellung der Zeitscheiben zur �bertragung (hour,day,week) </td></tr>
  10991. <tr><td> <b>device</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;device&gt; enthalten </td></tr>
  10992. <tr><td> <b>reading</b> </td><td>: einschlie�en oder ausschlie�en von Datensätzen die &lt;reading&gt; enthalten </td></tr>
  10993. <tr><td> <b>time.*</b> </td><td>: Attribute zur Zeitabgrenzung der zu ßbertragenden Datensätze. </td></tr>
  10994. <tr><td style="vertical-align:top"> <b>valueFilter</b> <td>: ein zusätzliches REGEXP um die Datenselektion zu steuern. Der REGEXP wird auf das Datenbankfeld 'VALUE' angewendet. </td></tr>
  10995. </table>
  10996. </ul>
  10997. <br>
  10998. </li> <br>
  10999. <li><b> tableCurrentFillup </b> - Die current-Tabelle wird mit einem Extrakt der history-Tabelle aufgefĂźllt.
  11000. Die <a href="#DbRepattr">Attribute</a> zur Zeiteinschränkung bzw. device, reading werden ausgewertet.
  11001. Dadurch kann der Inhalt des Extrakts beeinflusst werden. Im zugehĂśrigen DbLog-Device sollte sollte das Attribut
  11002. "DbLogType=SampleFill/History" gesetzt sein. </li> <br>
  11003. <li><b> tableCurrentPurge </b> - lĂśscht den Inhalt der current-Tabelle. Es werden keine Limitierungen, z.B. durch die Attribute "timestamp_begin",
  11004. "timestamp_end", device, reading, usw. , ausgewertet. </li> <br>
  11005. <li><b> vacuum </b> - optimiert die Tabellen in der angeschlossenen Datenbank (SQLite, PostgreSQL). <br>
  11006. Vor und nach der Optimierung kann ein FHEM-Kommando ausgefĂźhrt werden.
  11007. (siehe <a href="#DbRepattr">Attribute</a> "executeBeforeProc", "executeAfterProc")
  11008. <br><br>
  11009. <ul>
  11010. <b>Hinweis:</b> <br>
  11011. Obwohl die Funktion selbst non-blocking ausgelegt ist, mu� das zugeordnete DbLog-Device
  11012. im asynchronen Modus betrieben werden um ein Blockieren von FHEM zu vermeiden. <br><br>
  11013. </li>
  11014. </ul><br>
  11015. <br>
  11016. </ul></ul>
  11017. <b>FĂźr alle Auswertungsvarianten (Ausnahme sqlCmd,deviceRename,readingRename) gilt: </b> <br>
  11018. Zusätzlich zu dem auszuwertenden Reading kann das Device mit angegeben werden um das Reporting nach diesen Kriterien einzuschränken.
  11019. Sind keine Zeitgrenzen-Attribute angegeben jedoch das Aggregations-Attribut gesetzt, wird der Zeitstempel des ältesten
  11020. Datensatzes in der Datenbank als Startdatum und das aktuelle Datum/die aktuelle Zeit als Zeitgrenze genutzt.
  11021. Konnte der älteste Datensatz in der Datenbank nicht ermittelt werden, wird '1970-01-01 01:00:00' als Selektionsstart
  11022. genutzt (siehe get &lt;name&gt; minTimestamp).
  11023. Sind weder Zeitgrenzen-Attribute noch Aggregation angegeben, wird die Datenselektion ohne Timestamp-Einschränkungen
  11024. ausgefĂźhrt.
  11025. <br><br>
  11026. <b>Hinweis: </b> <br>
  11027. In der Detailansicht kann ein Browserrefresh nĂśtig sein um die Operationsergebnisse zu sehen sobald im DeviceOverview "state = done" angezeigt wird.
  11028. <br><br>
  11029. </ul>
  11030. <a name="DbRepget"></a>
  11031. <b>Get </b>
  11032. <ul>
  11033. Die Get-Kommandos von DbRep dienen dazu eine Reihe von Metadaten der verwendeten Datenbankinstanz abzufragen.
  11034. Dies sind zum Beispiel eingestellte Serverparameter, Servervariablen, Datenbankstatus- und Tabelleninformationen. Die verfĂźgbaren get-Funktionen
  11035. sind von dem verwendeten Datenbanktyp abhängig. So ist fßr SQLite z.Zt. nur "svrinfo" verfßgbar. Die Funktionen liefern nativ sehr viele Ausgabewerte,
  11036. die Ăźber Ăźber funktionsspezifische <a href="#DbRepattr">Attribute</a> abgrenzbar sind. Der Filter ist als kommaseparierte Liste anzuwenden.
  11037. Dabei kann SQL-Wildcard (%) verwendet werden.
  11038. <br><br>
  11039. <b>Hinweis: </b> <br>
  11040. Nach der AusfĂźhrung einer get-Funktion in der Detailsicht einen Browserrefresh durchfĂźhren um die Ergebnisse zu sehen !
  11041. <br><br>
  11042. <ul><ul>
  11043. <li><b> blockinginfo </b> - Listet die aktuell systemweit laufenden Hintergrundprozesse (BlockingCalls) mit ihren Informationen auf.
  11044. Zu lange Zeichenketten (z.B. Argumente) werden gekĂźrzt ausgeschrieben.
  11045. </li>
  11046. <br><br>
  11047. <li><b> dbstatus </b> - Listet globale Informationen zum MySQL Serverstatus (z.B. Informationen zum Cache, Threads, Bufferpools, etc. ).
  11048. Es werden zunächst alle verfßgbaren Informationen berichtet. Mit dem <a href="#DbRepattr">Attribut</a> "showStatus" kann die
  11049. Ergebnismenge eingeschränkt werden, um nur gewßnschte Ergebnisse abzurufen. Detailinformationen zur Bedeutung der einzelnen Readings
  11050. sind <a href=http://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html>hier</a> verfĂźgbar. <br>
  11051. <br><ul>
  11052. <b>Bespiel</b> <br>
  11053. get &lt;name&gt; dbstatus <br>
  11054. attr &lt;name&gt; showStatus %uptime%,%qcache% <br>
  11055. # Es werden nur Readings erzeugt die im Namen "uptime" und "qcache" enthalten
  11056. </li>
  11057. <br><br>
  11058. </ul>
  11059. <li><b> dbValue &lt;SQL-Statement&gt;</b> -
  11060. FĂźhrt das angegebene SQL-Statement <b>blockierend</b> aus. Diese Funktion ist durch ihre Arbeitsweise
  11061. speziell fĂźr den Einsatz in benutzerspezifischen Scripten geeignet. <br>
  11062. Die Eingabe akzeptiert Mehrzeiler und gibt ebenso mehrzeilige Ergebisse zurĂźck.
  11063. Werden mehrere Felder selektiert und zurĂźckgegeben, erfolgt die Feldtrennung mit dem Trenner
  11064. des <a href="#DbRepattr">Attributes</a> "sqlResultFieldSep" (default "|"). Mehrere Ergebniszeilen
  11065. werden mit Newline ("\n") separiert. <br>
  11066. Diese Funktion setzt/aktualisiert nur Statusreadings, die Funktion im Attribut "userExitFn"
  11067. wird nicht aufgerufen.
  11068. <br>
  11069. <br><ul>
  11070. <b>Bespiele zur Nutzung im FHEMWEB</b> <br>
  11071. {fhem("get &lt;name&gt; dbValue select device,count(*) from history where timestamp > '2018-04-01' group by device")} <br>
  11072. get &lt;name&gt; dbValue select device,count(*) from history where timestamp > '2018-04-01' group by device <br>
  11073. {CommandGet(undef,"Rep.LogDB1 dbValue select device,count(*) from history where timestamp > '2018-04-01' group by device")} <br>
  11074. </ul>
  11075. <br><br>
  11076. Erstellt man eine kleine Routine in 99_myUtils, wie z.B.:
  11077. <br>
  11078. <pre>
  11079. sub dbval($$) {
  11080. my ($name,$cmd) = @_;
  11081. my $ret = CommandGet(undef,"$name dbValue $cmd");
  11082. return $ret;
  11083. }
  11084. </pre>
  11085. kann dbValue vereinfacht verwendet werden mit Aufrufen wie:
  11086. <br><br>
  11087. <ul>
  11088. <b>Bespiele</b> <br>
  11089. {dbval("&lt;name&gt;","select count(*) from history")} <br>
  11090. oder <br>
  11091. $ret = dbval("&lt;name&gt;","select count(*) from history"); <br>
  11092. </ul>
  11093. </li>
  11094. <br><br>
  11095. <li><b> dbvars </b> - Zeigt die globalen Werte der MySQL Systemvariablen. Enthalten sind zum Beispiel Angaben zum InnoDB-Home, dem Datafile-Pfad,
  11096. Memory- und Cache-Parameter, usw. Die Ausgabe listet zunächst alle verfßgbaren Informationen auf. Mit dem
  11097. <a href="#DbRepattr">Attribut</a> "showVariables" kann die Ergebnismenge eingeschränkt werden um nur gewßnschte Ergebnisse
  11098. abzurufen. Weitere Informationen zur Bedeutung der ausgegebenen Variablen sind
  11099. <a href=http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html>hier</a> verfĂźgbar. <br>
  11100. <br><ul>
  11101. <b>Bespiel</b> <br>
  11102. get &lt;name&gt; dbvars <br>
  11103. attr &lt;name&gt; showVariables %version%,%query_cache% <br>
  11104. # Es werden nur Readings erzeugt die im Namen "version" und "query_cache" enthalten
  11105. </li>
  11106. <br><br>
  11107. </ul>
  11108. <li><b> minTimestamp </b> - Ermittelt den Zeitstempel des ältesten Datensatzes in der Datenbank (wird implizit beim Start von
  11109. FHEM ausgefĂźhrt).
  11110. Der Zeitstempel wird als Selektionsbeginn verwendet wenn kein Zeitattribut den Selektionsbeginn
  11111. festlegt.
  11112. </li>
  11113. <br><br>
  11114. <li><b> procinfo </b> - Listet die existierenden Datenbank-Prozesse in einer Tabelle auf (nur MySQL). <br>
  11115. Typischerweise werden nur die Prozesse des Verbindungsusers (angegeben in DbLog-Konfiguration)
  11116. ausgegeben. Sollen alle Prozesse angezeigt werden, ist dem User das globale Recht "PROCESS"
  11117. einzuräumen. <br>
  11118. FĂźr bestimmte SQL-Statements wird seit MariaDB 5.3 ein Fortschrittsreporting (Spalte "PROGRESS")
  11119. ausgegeben. Zum Beispiel kann der Abarbeitungsgrad bei der Indexerstellung verfolgt werden. <br>
  11120. Weitere Informationen sind
  11121. <a href=https://mariadb.com/kb/en/mariadb/show-processlist/>hier</a> verfĂźgbar. <br>
  11122. </li>
  11123. <br><br>
  11124. <li><b> svrinfo </b> - allgemeine Datenbankserver-Informationen wie z.B. die DBMS-Version, Serveradresse und Port usw. Die Menge der Listenelemente
  11125. ist vom Datenbanktyp abhängig. Mit dem <a href="#DbRepattr">Attribut</a> "showSvrInfo" kann die Ergebnismenge eingeschränkt werden.
  11126. Weitere Erläuterungen zu den gelieferten Informationen sind
  11127. <a href=https://msdn.microsoft.com/en-us/library/ms711681(v=vs.85).aspx>hier</a> zu finden. <br>
  11128. <br><ul>
  11129. <b>Bespiel</b> <br>
  11130. get &lt;name&gt; svrinfo <br>
  11131. attr &lt;name&gt; showSvrInfo %SQL_CATALOG_TERM%,%NAME% <br>
  11132. # Es werden nur Readings erzeugt die im Namen "SQL_CATALOG_TERM" und "NAME" enthalten
  11133. </li>
  11134. <br><br>
  11135. </ul>
  11136. <li><b> tableinfo </b> - ruft Tabelleninformationen aus der mit dem DbRep-Device verbundenen Datenbank ab (MySQL).
  11137. Es werden per default alle in der verbundenen Datenbank angelegten Tabellen ausgewertet.
  11138. Mit dem <a href="#DbRepattr">Attribut</a> "showTableInfo" kÜnnen die Ergebnisse eingeschränkt werden. Erläuterungen zu den erzeugten
  11139. Readings sind <a href=http://dev.mysql.com/doc/refman/5.7/en/show-table-status.html>hier</a> zu finden. <br>
  11140. <br><ul>
  11141. <b>Bespiel</b> <br>
  11142. get &lt;name&gt; tableinfo <br>
  11143. attr &lt;name&gt; showTableInfo current,history <br>
  11144. # Es werden nur Information der Tabellen "current" und "history" angezeigt
  11145. </li>
  11146. <br><br>
  11147. </ul>
  11148. <li><b> versionNotes [hints | rel | &lt;key&gt;] </b> -
  11149. Zeigt Release Informationen und/oder Hinweise zum Modul an. Es sind nur Release Informationen mit
  11150. Bedeutung fĂźr den Modulnutzer enthalten. <br>
  11151. Sind keine Optionen angegben, werden sowohl Release Informationen als auch Hinweise angezeigt.
  11152. "rel" zeigt nur Release Informationen und "hints" nur Hinweise an. Mit der &lt;key&gt;-Angabe
  11153. wird der Hinweis mit der angegebenen Nummer angezeigt.
  11154. </li>
  11155. <br>
  11156. </ul></ul>
  11157. </ul>
  11158. <a name="DbRepattr"></a>
  11159. <b>Attribute</b>
  11160. <br>
  11161. <ul>
  11162. �ber die modulspezifischen Attribute wird die Abgrenzung der Auswertung und die Aggregation der Werte gesteuert. <br>
  11163. Die hier aufgefĂźhrten Attribute sind nicht fĂźr jede Funktion des Moduls bedeutsam. In der Hilfe zu den set/get-Kommandos
  11164. wird explizit angegeben, welche Attribute fĂźr das jeweilige Kommando relevant sind. <br><br>
  11165. <b>Hinweis zur SQL-Wildcard Verwendung:</b> <br>
  11166. Innerhalb der Attribut-Werte fĂźr "device" und "reading" kann SQL-Wildcards "%" angegeben werden.
  11167. Dabei wird "%" als Platzhalter fĂźr beliebig viele Zeichen verwendet.
  11168. Das Zeichen "_" wird nicht als SQL-Wildcard supported. <br>
  11169. Dies gilt fĂźr alle Funktionen <b>ausser</b> "insert", "importFromFile" und "deviceRename". <br>
  11170. Die Funktion "insert" erlaubt nicht, dass die genannten Attribute das Wildcard "%" enthalten. Character "_" wird als normales Zeichen gewertet.<br>
  11171. In Ergebnis-Readings wird das Wildcardzeichen "%" durch "/" ersetzt um die Regeln fĂźr erlaubte Zeichen in Readings einzuhalten.
  11172. <br><br>
  11173. <ul><ul>
  11174. <a name="aggregation"></a>
  11175. <li><b>aggregation </b> - Zusammenfassung der Device/Reading-Selektionen in Stunden,Tage,Kalenderwochen,Kalendermonaten
  11176. oder "no". <br>
  11177. Liefert z.B. die Anzahl der DB-Einträge am Tag (countEntries), Summierung von
  11178. Differenzwerten eines Readings (sumValue), usw. <br>
  11179. Mit Aggregation "no" (default) erfolgt keine Zusammenfassung in einem Zeitraum, sondern die
  11180. Ausgabe wird aus allen Werten einer Device/Reading-Kombination zwischen den definierten
  11181. Zeiträumen ermittelt. </li> <br>
  11182. <a name="allowDeletion"></a>
  11183. <li><b>allowDeletion </b> - schaltet die LĂśschfunktion des Moduls frei </li> <br>
  11184. <a name="averageCalcForm"></a>
  11185. <li><b>averageCalcForm </b> - legt die Berechnungsvariante fĂźr die Ermittlung des Durchschnittswertes mit "averageValue"
  11186. fest.<br><br>
  11187. Zur Zeit sind folgende Varianten implementiert: <br><br>
  11188. <ul>
  11189. <table>
  11190. <colgroup> <col width=20%> <col width=80%> </colgroup>
  11191. <tr><td> <b>avgArithmeticMean :</b> </td><td>es wird der arithmetische Mittelwert berechnet (default) </td></tr>
  11192. <tr><td style="vertical-align:top"> <b>avgDailyMeanGWS :</b> <td>berechnet die Tagesmitteltemperatur entsprechend den
  11193. Vorschriften des deutschen Wetterdienstes (siehe "get &lt;name&gt; versionNotes 2"). <br>
  11194. Diese Variante verwendet automatisch die Aggregation "day". </td></tr>
  11195. <tr><td> <b>avgTimeWeightMean :</b> </td><td>berechnet den zeitgewichteten Mittelwert </td></tr>
  11196. </table>
  11197. </ul>
  11198. </li><br>
  11199. <a name="countEntriesDetail"></a>
  11200. <li><b>countEntriesDetail </b> - Wenn gesetzt, erstellt die Funktion "countEntries" eine detallierte Ausgabe der Datensatzzahl
  11201. pro Reading und Zeitintervall.
  11202. Standardmä�ig wird nur die Summe aller selektierten Datensätze ausgegeben.
  11203. </li> <br>
  11204. <a name="device"></a>
  11205. <li><b>device </b> - Abgrenzung der DB-Selektionen auf ein bestimmtes oder mehrere Devices. <br>
  11206. Es kÜnnen Geräte-Spezifikationen (devspec) angegeben werden. <br>
  11207. Innerhalb von Geräte-Spezifikationen wird SQL-Wildcard (%) als normales ASCII-Zeichen gewertet.
  11208. Die Devicenamen werden vor der Selektion aus der Geräte-Spezifikationen und den aktuell in FHEM
  11209. vorhandenen Devices abgeleitet. <br>
  11210. Wird dem Device bzw. der Device-Liste oder Geräte-Spezifikation ein "EXCLUDE=" vorangestellt,
  11211. werden diese Devices von der Selektion ausgeschlossen.
  11212. </li> <br>
  11213. <ul>
  11214. <b>Beispiele:</b> <br>
  11215. <code>attr &lt;name&gt; device TYPE=DbRep </code> <br>
  11216. <code>attr &lt;name&gt; device MySTP_5000 </code> <br>
  11217. <code>attr &lt;name&gt; device SMA.*,MySTP.* </code> <br>
  11218. <code>attr &lt;name&gt; device SMA_Energymeter,MySTP_5000 </code> <br>
  11219. <code>attr &lt;name&gt; device %5000 </code> <br>
  11220. <code>attr &lt;name&gt; device TYPE=SSCam EXCLUDE=SDS1_SVS </code> <br>
  11221. <code>attr &lt;name&gt; device EXCLUDE=SDS1_SVS </code> <br>
  11222. <code>attr &lt;name&gt; device EXCLUDE=TYPE=SSCam </code> <br>
  11223. </ul>
  11224. <br>
  11225. Falls weitere Informationen zu Geräte-Spezifikationen benÜtigt werden, bitte
  11226. "get &lt;name&gt; versionNotes 3" ausfĂźhren.
  11227. <br><br>
  11228. <a name="diffAccept"></a>
  11229. <li><b>diffAccept </b> - gilt fĂźr Funktion diffValue. diffAccept legt fest bis zu welchem Schwellenwert eine berechnete positive Werte-Differenz
  11230. zwischen zwei unmittelbar aufeinander folgenden Datensätzen akzeptiert werden soll (Standard ist 20). <br>
  11231. Damit werden fehlerhafte DB-Einträge mit einem unverhältnismä�ig hohen Differenzwert von der Berechnung ausgeschlossen und
  11232. verfälschen nicht das Ergebnis. Sollten Schwellenwertßberschreitungen vorkommen, wird das Reading "diff_overrun_limit_&lt;diffLimit&gt;"
  11233. erstellt. (&lt;diffLimit&gt; wird dabei durch den aktuellen Attributwert ersetzt)
  11234. Es enthält eine Liste der relevanten Wertepaare. Mit verbose 3 werden diese Datensätze ebenfalls im Logfile protokolliert.
  11235. </li> <br>
  11236. <ul>
  11237. Beispiel Ausgabe im Logfile beim �berschreiten von diffAccept=10: <br><br>
  11238. DbRep Rep.STP5000.etotal -> data ignored while calc diffValue due to threshold overrun (diffAccept = 10): <br>
  11239. 2016-04-09 08:50:50 0.0340 -> 2016-04-09 12:42:01 13.3440 <br><br>
  11240. # Der erste Datensatz mit einem Wert von 0.0340 ist untypisch gering zum nächsten Wert 13.3440 und fßhrt zu einem zu hohen
  11241. Differenzwert. <br>
  11242. # Es ist zu entscheiden ob der Datensatz gelĂśscht, ignoriert, oder das Attribut diffAccept angepasst werden sollte.
  11243. </ul><br>
  11244. <a name="disable"></a>
  11245. <li><b>disable </b> - deaktiviert das Modul </li> <br>
  11246. <a name="dumpComment"></a>
  11247. <li><b>dumpComment </b> - User-Kommentar. Er wird im Kopf des durch den Befehl "dumpMyQL clientSide" erzeugten Dumpfiles
  11248. eingetragen. </li> <br>
  11249. <a name="dumpCompress"></a>
  11250. <li><b>dumpCompress </b> - wenn gesetzt, werden die Dumpfiles nach "dumpMySQL" bzw. "dumpSQLite" komprimiert </li> <br>
  11251. <a name="dumpDirLocal"></a>
  11252. <li><b>dumpDirLocal </b> - Zielverzeichnis fĂźr die Erstellung von Dumps mit "dumpMySQL clientSide".
  11253. default: "{global}{modpath}/log/" auf dem FHEM-Server. <br>
  11254. Ebenfalls werden in diesem Verzeichnis alte Backup-Files durch die interne Versionsverwaltung von
  11255. "dumpMySQL" gesucht und gelĂśscht wenn die gefundene Anzahl den Attributwert "dumpFilesKeep"
  11256. Ăźberschreitet. Das Attribut dient auch dazu ein lokal gemountetes Verzeichnis "dumpDirRemote"
  11257. DbRep bekannt zu machen. </li> <br>
  11258. <a name="dumpDirRemote"></a>
  11259. <li><b>dumpDirRemote </b> - Zielverzeichnis fĂźr die Erstellung von Dumps mit "dumpMySQL serverSide".
  11260. default: das Home-Dir des MySQL-Servers auf dem MySQL-Host </li> <br>
  11261. <a name="dumpMemlimit"></a>
  11262. <li><b>dumpMemlimit </b> - erlaubter Speicherverbrauch fĂźr das Dump SQL-Script zur Generierungszeit (default: 100000 Zeichen).
  11263. Bitte den Parameter anpassen, falls es zu Speicherengpässen und damit verbundenen Performanceproblemen
  11264. kommen sollte. </li> <br>
  11265. <a name="dumpSpeed"></a>
  11266. <li><b>dumpSpeed </b> - Anzahl der abgerufenen Zeilen aus der Quelldatenbank (default: 10000) pro Select durch "dumpMySQL ClientSide".
  11267. Dieser Parameter hat direkten Einflu� auf die Laufzeit und den Ressourcenverbrauch zur Laufzeit. </li> <br>
  11268. <a name="dumpFilesKeep"></a>
  11269. <li><b>dumpFilesKeep </b> - Es wird die angegebene Anzahl Dumpfiles im Dumpdir belassen (default: 3). Sind mehr (ältere) Dumpfiles
  11270. vorhanden, werden diese gelĂśscht nachdem ein neuer Dump erfolgreich erstellt wurde. Das globale
  11271. Attribut "archivesort" wird berĂźcksichtigt. </li> <br>
  11272. <a name="executeAfterProc"></a>
  11273. <li><b>executeAfterProc </b> - Es kann ein FHEM-Kommando oder eine Perl-Funktion angegeben werden welche <b>nach der
  11274. Befehlsabarbeitung</b> ausgefĂźhrt werden soll. <br>
  11275. Funktionen sind in {} einzuschlie�en.<br><br>
  11276. <ul>
  11277. <b>Beispiel:</b> <br><br>
  11278. attr &lt;name&gt; executeAfterProc set og_gz_westfenster off; <br>
  11279. attr &lt;name&gt; executeAfterProc {adump ("&lt;name&gt;")} <br><br>
  11280. # "adump" ist eine in 99_myUtils definierte Funktion. <br>
  11281. <pre>
  11282. sub adump {
  11283. my ($name) = @_;
  11284. my $hash = $defs{$name};
  11285. # die eigene Funktion, z.B.
  11286. Log3($name, 3, "DbRep $name -> Dump ist beendet");
  11287. return;
  11288. }
  11289. </pre>
  11290. </ul>
  11291. </li>
  11292. <a name="executeBeforeProc"></a>
  11293. <li><b>executeBeforeProc </b> - Es kann ein FHEM-Kommando oder eine Perl-Funktion angegeben werden welche <b>vor der
  11294. Befehlsabarbeitung</b> ausgefĂźhrt werden soll. <br>
  11295. Funktionen sind in {} einzuschlie�en.<br><br>
  11296. <ul>
  11297. <b>Beispiel:</b> <br><br>
  11298. attr &lt;name&gt; executeBeforeProc set og_gz_westfenster on; <br>
  11299. attr &lt;name&gt; executeBeforeProc {bdump ("&lt;name&gt;")} <br><br>
  11300. # "bdump" ist eine in 99_myUtils definierte Funktion. <br>
  11301. <pre>
  11302. sub bdump {
  11303. my ($name) = @_;
  11304. my $hash = $defs{$name};
  11305. # die eigene Funktion, z.B.
  11306. Log3($name, 3, "DbRep $name -> Dump startet");
  11307. return;
  11308. }
  11309. </pre>
  11310. </ul>
  11311. </li>
  11312. <a name="expimpfile"></a>
  11313. <li><b>expimpfile </b> - Pfad/Dateiname fĂźr Export/Import in/aus einem File. <br><br>
  11314. Der Dateiname kann Platzhalter enthalten die gemä� der nachfolgenden Tabelle ersetzt werden.
  11315. Weiterhin kĂśnnen %-wildcards der POSIX strftime-Funktion des darunterliegenden OS enthalten
  11316. sein (siehe auch strftime Beschreibung). <br>
  11317. <br>
  11318. <ul>
  11319. <table>
  11320. <colgroup> <col width=5%> <col width=95%> </colgroup>
  11321. <tr><td> %L </td><td>: wird ersetzt durch den Wert des global logdir Attributs </td></tr>
  11322. <tr><td> %TSB </td><td>: wird ersetzt durch den (berechneten) Wert des timestamp_begin Attributs </td></tr>
  11323. <tr><td> </td><td> </td></tr>
  11324. <tr><td> </td><td> <b>Allgemein gebräuchliche POSIX-Wildcards sind:</b> </td></tr>
  11325. <tr><td> %d </td><td>: Tag des Monats (01..31) </td></tr>
  11326. <tr><td> %m </td><td>: Monat (01..12) </td></tr>
  11327. <tr><td> %Y </td><td>: Jahr (1970...) </td></tr>
  11328. <tr><td> %w </td><td>: Wochentag (0..6); beginnend mit Sonntag (0) </td></tr>
  11329. <tr><td> %j </td><td>: Tag des Jahres (001..366) </td></tr>
  11330. <tr><td> %U </td><td>: Wochennummer des Jahres, wobei Wochenbeginn = Sonntag (00..53) </td></tr>
  11331. <tr><td> %W </td><td>: Wochennummer des Jahres, wobei Wochenbeginn = Montag (00..53) </td></tr>
  11332. </table>
  11333. </ul>
  11334. </li> <br>
  11335. <ul>
  11336. <b>Beispiele:</b> <br>
  11337. <code>attr &lt;name&gt; expimpfile /sds1/backup/exptest_%TSB.csv </code> <br>
  11338. <code>attr &lt;name&gt; expimpfile /sds1/backup/exptest_%Y-%m-%d.csv </code> <br>
  11339. </ul>
  11340. <br>
  11341. <a name="DbRep_expimpfile"></a>
  11342. Zur POSIX Wildcardverwendung siehe auch die Erläuterungen zu <a href="#FileLog">Filelog</a>.
  11343. <br><br>
  11344. <a name="fastStart"></a>
  11345. <li><b>fastStart </b> - Normalerweise verbindet sich jedes DbRep-Device beim FHEM-Start kurz mit seiner Datenbank um
  11346. benĂśtigte Informationen abzurufen und das Reading "state" springt bei Erfolg auf "connected".
  11347. Ist dieses Attribut gesetzt, erfolgt die initiale Datenbankverbindung erst dann wenn das
  11348. DbRep-Device sein erstes Kommando ausfĂźhrt. <br>
  11349. Das Reading "state" verbleibt nach FHEM-Start solange im Status "initialized". Diese Einstellung
  11350. kann hilfreich sein wenn viele DbRep-Devices definiert sind.
  11351. </li> <br>
  11352. <a name="fetchMarkDuplicates"></a>
  11353. <li><b>fetchMarkDuplicates </b>
  11354. - Markierung von mehrfach vorkommenden Datensätzen im Ergebnis des "fetchrows" Kommandos </li> <br>
  11355. <a name="fetchRoute"></a>
  11356. <li><b>fetchRoute [descent | ascent] </b> - bestimmt die Leserichtung des fetchrows-Befehl. <br><br>
  11357. <ul>
  11358. <b>descent</b> - die Datensätze werden absteigend gelesen (default). Wird
  11359. die durch das Attribut "limit" festgelegte Anzahl der Datensätze
  11360. ßberschritten, werden die neuesten x Datensätze angezeigt. <br><br>
  11361. <b>ascent</b> - die Datensätze werden aufsteigend gelesen. Wird
  11362. die durch das Attribut "limit" festgelegte Anzahl der Datensätze
  11363. ßberschritten, werden die ältesten x Datensätze angezeigt. <br>
  11364. </ul>
  11365. </li> <br><br>
  11366. <a name="ftpUse"></a>
  11367. <li><b>ftpUse </b> - FTP Transfer nach einem Dump wird eingeschaltet (ohne SSL VerschlĂźsselung). Das erzeugte
  11368. Datenbank Backupfile wird non-blocking zum angegebenen FTP-Server (Attribut "ftpServer")
  11369. Ăźbertragen. </li> <br>
  11370. <a name="ftpUseSSL"></a>
  11371. <li><b>ftpUseSSL </b> - FTP Transfer mit SSL VerschlĂźsselung nach einem Dump wird eingeschaltet. Das erzeugte
  11372. Datenbank Backupfile wird non-blocking zum angegebenen FTP-Server (Attribut "ftpServer")
  11373. Ăźbertragen. </li> <br>
  11374. <a name="ftpUser"></a>
  11375. <li><b>ftpUser </b> - User zur Anmeldung am FTP-Server nach einem Dump, default: "anonymous". </li> <br>
  11376. <a name="ftpDebug"></a>
  11377. <li><b>ftpDebug </b> - Debugging der FTP Kommunikation zur Fehlersuche. </li> <br>
  11378. <a name="ftpDir"></a>
  11379. <li><b>ftpDir </b> - Verzeichnis des FTP-Servers in welches das File nach einem Dump Ăźbertragen werden soll
  11380. (default: "/"). </li> <br>
  11381. <a name="ftpDumpFilesKeep"></a>
  11382. <li><b>ftpDumpFilesKeep </b> - Es wird die angegebene Anzahl Dumpfiles im &lt;ftpDir&gt; belassen (default: 3). Sind mehr
  11383. (ältere) Dumpfiles vorhanden, werden diese gelÜscht nachdem ein neuer Dump erfolgreich
  11384. Ăźbertragen wurde. </li> <br>
  11385. <a name="ftpPassive"></a>
  11386. <li><b>ftpPassive </b> - setzen wenn passives FTP verwendet werden soll </li> <br>
  11387. <a name="ftpPort"></a>
  11388. <li><b>ftpPort </b> - FTP-Port, default: 21 </li> <br>
  11389. <a name="ftpPwd"></a>
  11390. <li><b>ftpPwd </b> - Passwort des FTP-Users, default nicht gesetzt </li> <br>
  11391. <a name="ftpServer"></a>
  11392. <li><b>ftpServer </b> - Name oder IP-Adresse des FTP-Servers zur �bertragung von Files nach einem Dump. </li> <br>
  11393. <a name="ftpTimeout"></a>
  11394. <li><b>ftpTimeout </b> - Timeout fĂźr eine FTP-Verbindung in Sekunden (default: 30). </li> <br>
  11395. <a name="limit"></a>
  11396. <li><b>limit </b> - begrenzt die Anzahl der resultierenden Datensätze im select-Statement von "fetchrows", bzw. der anzuzeigenden Datensätze
  11397. der Kommandos "delSeqDoublets adviceDelete", "delSeqDoublets adviceRemain" (default 1000).
  11398. Diese Limitierung soll eine �berlastung der Browsersession und ein
  11399. blockieren von FHEMWEB verhindern. Bei Bedarf entsprechend ändern bzw. die
  11400. Selektionskriterien (Zeitraum der Auswertung) anpassen. </li> <br>
  11401. <a name="optimizeTablesBeforeDump"></a>
  11402. <li><b>optimizeTablesBeforeDump </b> - wenn "1", wird vor dem Datenbankdump eine Tabellenoptimierung ausgefĂźhrt (default: 0).
  11403. Dadurch verlängert sich die Laufzeit des Dump. <br><br>
  11404. <ul>
  11405. <b>Hinweis </b> <br>
  11406. Die Tabellenoptimierung fĂźhrt zur Sperrung der Tabellen und damit zur Blockierung von
  11407. FHEM falls DbLog nicht im asynchronen Modus (DbLog-Attribut "asyncMode") betrieben wird !
  11408. <br>
  11409. </ul>
  11410. </li> <br>
  11411. <a name="reading"></a>
  11412. <li><b>reading </b> - Abgrenzung der DB-Selektionen auf ein bestimmtes oder mehrere Readings sowie exkludieren von
  11413. Readings.
  11414. Mehrere Readings werden als Komma separierte Liste angegeben. <br>
  11415. SQL Wildcard (%) wird in einer Liste als normales ASCII-Zeichen gewertet. <br>
  11416. Wird dem Reading bzw. der Reading-Liste ein "EXCLUDE=" vorangestellt, werden diese Readings
  11417. von der Selektion ausgeschlossen.
  11418. </li> <br>
  11419. <ul>
  11420. <b>Beispiele:</b> <br>
  11421. <code>attr &lt;name&gt; reading etotal</code> <br>
  11422. <code>attr &lt;name&gt; reading et%</code> <br>
  11423. <code>attr &lt;name&gt; reading etotal,etoday</code> <br>
  11424. <code>attr &lt;name&gt; reading etotal,etoday EXCLUDE=state </code> <br>
  11425. <code>attr &lt;name&gt; reading etotal,etoday EXCLUDE=Einspeisung% </code> <br>
  11426. </ul>
  11427. <br><br>
  11428. <a name="readingNameMap"></a>
  11429. <li><b>readingNameMap </b> - der Name des ausgewerteten Readings wird mit diesem String fĂźr die Anzeige Ăźberschrieben </li> <br>
  11430. <a name="readingPreventFromDel"></a>
  11431. <li><b>readingPreventFromDel </b> - Komma separierte Liste von Readings die vor einer neuen Operation nicht gelĂśscht
  11432. werden sollen </li> <br>
  11433. <a name="role"></a>
  11434. <li><b>role </b> - die Rolle des DbRep-Device. Standard ist "Client". Die Rolle "Agent" ist im Abschnitt
  11435. "DbRep-Agent" beschrieben. <br>
  11436. <a name="DbRep_role"></a>
  11437. Siehe auch Abschnitt <a href="#DbRepAutoRename">DbRep-Agent</a>.
  11438. </li> <br>
  11439. <a name="seqDoubletsVariance"></a>
  11440. <li><b>seqDoubletsVariance </b> - akzeptierte Abweichung (+/-) fĂźr das Kommando "set &lt;name&gt; delSeqDoublets". <br>
  11441. Der Wert des Attributs beschreibt die Abweichung bis zu der aufeinanderfolgende numerische
  11442. Werte (VALUE) von Datensätze als gleich angesehen und gelÜscht werden sollen.
  11443. "seqDoubletsVariance" ist ein absoluter Zahlenwert,
  11444. der sowohl als positive als auch negative Abweichung verwendet wird. </li> <br>
  11445. <ul>
  11446. <b>Beispiele:</b> <br>
  11447. <code>attr &lt;name&gt; seqDoubletsVariance 0.0014 </code> <br>
  11448. <code>attr &lt;name&gt; seqDoubletsVariance 1.45 </code> <br>
  11449. </ul>
  11450. <br><br>
  11451. <a name="showproctime"></a>
  11452. <li><b>showproctime </b> - wenn gesetzt, zeigt das Reading "sql_processing_time" die benĂśtigte Abarbeitungszeit (in Sekunden)
  11453. fĂźr die SQL-AusfĂźhrung der durchgefĂźhrten Funktion. Dabei wird nicht ein einzelnes
  11454. SQl-Statement, sondern die Summe aller notwendigen SQL-Abfragen innerhalb der jeweiligen
  11455. Funktion betrachtet. </li> <br>
  11456. <a name="showStatus"></a>
  11457. <li><b>showStatus </b> - grenzt die Ergebnismenge des Befehls "get &lt;name&gt; dbstatus" ein. Es kĂśnnen SQL-Wildcard (%) verwendet werden. </li> <br>
  11458. <ul>
  11459. <b>Bespiel: </b> <br>
  11460. attr &lt;name&gt; showStatus %uptime%,%qcache% <br>
  11461. # Es werden nur Readings erzeugt die im Namen "uptime" und "qcache" enthalten <br>
  11462. </ul><br>
  11463. <a name="showVariables"></a>
  11464. <li><b>showVariables </b> - grenzt die Ergebnismenge des Befehls "get &lt;name&gt; dbvars" ein. Es kĂśnnen SQL-Wildcard (%) verwendet werden. </li> <br>
  11465. <ul>
  11466. <b>Bespiel: </b> <br>
  11467. attr &lt;name&gt; showVariables %version%,%query_cache% <br>
  11468. # Es werden nur Readings erzeugt die im Namen "version" und "query_cache" enthalten <br>
  11469. </ul><br>
  11470. <a name="showSvrInfo"></a>
  11471. <li><b>showSvrInfo </b> - grenzt die Ergebnismenge des Befehls "get &lt;name&gt; svrinfo" ein. Es kĂśnnen SQL-Wildcard (%) verwendet werden. </li> <br>
  11472. <ul>
  11473. <b>Bespiel: </b> <br>
  11474. attr &lt;name&gt; showSvrInfo %SQL_CATALOG_TERM%,%NAME% <br>
  11475. # Es werden nur Readings erzeugt die im Namen "SQL_CATALOG_TERM" und "NAME" enthalten <br>
  11476. </ul><br>
  11477. <a name="showTableInfo"></a>
  11478. <li><b>showTableInfo </b> - grenzt die Ergebnismenge des Befehls "get &lt;name&gt; tableinfo" ein. Es kĂśnnen SQL-Wildcard (%) verwendet werden. </li> <br>
  11479. <ul>
  11480. <b>Bespiel: </b> <br>
  11481. attr &lt;name&gt; showTableInfo current,history <br>
  11482. # Es werden nur Information der Tabellen "current" und "history" angezeigt <br>
  11483. </ul><br>
  11484. <a name="sqlResultFieldSep"></a>
  11485. <li><b>sqlResultFieldSep </b> - legt den verwendeten Feldseparator (default: "|") im Ergebnis des Kommandos
  11486. "set ... sqlCmd" fest. </li> <br>
  11487. <a name="sqlCmdHistoryLength"></a>
  11488. <li><b>sqlCmdHistoryLength </b>
  11489. - aktiviert die Kommandohistorie von "sqlCmd" und legt deren Länge fest </li> <br>
  11490. <a name="sqlResultFormat"></a>
  11491. <li><b>sqlResultFormat </b> - legt die Formatierung des Ergebnisses des Kommandos "set &lt;name&gt; sqlCmd" fest.
  11492. MĂśgliche Optionen sind: <br><br>
  11493. <ul>
  11494. <b>separated </b> - die Ergebniszeilen werden als einzelne Readings fortlaufend
  11495. generiert. (default)<br><br>
  11496. <b>mline </b> - das Ergebnis wird als Mehrzeiler im Reading
  11497. SqlResult dargestellt. <br><br>
  11498. <b>sline </b> - das Ergebnis wird als Singleline im Reading
  11499. SqlResult dargestellt. Satztrenner ist"]|[". <br><br>
  11500. <b>table </b> - das Ergebnis wird als Tabelle im Reading
  11501. SqlResult dargestellt. <br><br>
  11502. <b>json </b> - erzeugt das Reading SqlResult als
  11503. JSON-kodierten Hash.
  11504. Jedes Hash-Element (Ergebnissatz) setzt sich aus der laufenden Nummer
  11505. des Datensatzes (Key) und dessen Wert zusammen. </li><br><br>
  11506. Die Weiterverarbeitung des Ergebnisses kann z.B. mit der folgenden userExitFn in 99_myUtils.pm erfolgen: <br>
  11507. <pre>
  11508. sub resfromjson {
  11509. my ($name,$reading,$value) = @_;
  11510. my $hash = $defs{$name};
  11511. if ($reading eq "SqlResult") {
  11512. # nur Reading SqlResult enthält JSON-kodierte Daten
  11513. my $data = decode_json($value);
  11514. foreach my $k (keys(%$data)) {
  11515. # ab hier eigene Verarbeitung fĂźr jedes Hash-Element
  11516. # z.B. Ausgabe jedes Element welches "Cam" enthält
  11517. my $ke = $data->{$k};
  11518. if($ke =~ m/Cam/i) {
  11519. my ($res1,$res2) = split("\\|", $ke);
  11520. Log3($name, 1, "$name - extract element $k by userExitFn: ".$res1." ".$res2);
  11521. }
  11522. }
  11523. }
  11524. return;
  11525. }
  11526. </pre>
  11527. </ul><br>
  11528. <a name="timeYearPeriod"></a>
  11529. <li><b>timeYearPeriod </b> - Mit Hilfe dieses Attributes wird eine jährliche Zeitperiode fßr die Datenbankselektion bestimmt.
  11530. Die Zeitgrenzen werden zur AusfĂźhrungszeit dynamisch berechnet. Es wird immer eine Jahresperiode
  11531. bestimmt. Eine unterjährige Angabe ist nicht mÜglich. <br>
  11532. Dieses Attribut ist vor allem dazu gedacht Auswertungen synchron zu einer Abrechnungsperiode, z.B. der eines
  11533. Energie- oder Gaslieferanten, anzufertigen.
  11534. </li> <br>
  11535. <ul>
  11536. <b>Beispiel:</b> <br><br>
  11537. attr &lt;name&gt; timeYearPeriod 06-25 06-24 <br><br>
  11538. # wertet die Datenbank in den Zeitgrenzen 25. Juni AAAA bis 24. Juni BBBB aus. <br>
  11539. # Das Jahr AAAA bzw. BBBB wird in Abhängigkeit des aktuellen Datums errechnet. <br>
  11540. # Ist das aktuelle Datum >= 25. Juni und =< 31. Dezember, dann ist AAAA = aktuelles Jahr und BBBB = aktuelles Jahr+1 <br>
  11541. # Ist das aktuelle Datum >= 01. Januar und =< 24. Juni, dann ist AAAA = aktuelles Jahr-1 und BBBB = aktuelles Jahr
  11542. </ul>
  11543. <br><br>
  11544. <a name="timestamp_begin"></a>
  11545. <li><b>timestamp_begin </b> - der zeitliche Beginn fĂźr die Datenselektion </li> <br>
  11546. Das Format von Timestamp ist "YYYY-MM-DD HH:MM:SS". FĂźr die Attribute "timestamp_begin", "timestamp_end"
  11547. kann ebenso eine der folgenden Eingaben verwendet werden. Dabei wird das timestamp-Attribut dynamisch belegt: <br><br>
  11548. <ul>
  11549. <b>current_year_begin</b> : entspricht "&lt;aktuelles Jahr&gt;-01-01 00:00:00" <br>
  11550. <b>current_year_end</b> : entspricht "&lt;aktuelles Jahr&gt;-12-31 23:59:59" <br>
  11551. <b>previous_year_begin</b> : entspricht "&lt;vorheriges Jahr&gt;-01-01 00:00:00" <br>
  11552. <b>previous_year_end</b> : entspricht "&lt;vorheriges Jahr&gt;-12-31 23:59:59" <br>
  11553. <b>current_month_begin</b> : entspricht "&lt;aktueller Monat erster Tag&gt; 00:00:00" <br>
  11554. <b>current_month_end</b> : entspricht "&lt;aktueller Monat letzter Tag&gt; 23:59:59" <br>
  11555. <b>previous_month_begin</b> : entspricht "&lt;Vormonat erster Tag&gt; 00:00:00" <br>
  11556. <b>previous_month_end</b> : entspricht "&lt;Vormonat letzter Tag&gt; 23:59:59" <br>
  11557. <b>current_week_begin</b> : entspricht "&lt;erster Tag der akt. Woche&gt; 00:00:00" <br>
  11558. <b>current_week_end</b> : entspricht "&lt;letzter Tag der akt. Woche&gt; 23:59:59" <br>
  11559. <b>previous_week_begin</b> : entspricht "&lt;erster Tag Vorwoche&gt; 00:00:00" <br>
  11560. <b>previous_week_end</b> : entspricht "&lt;letzter Tag Vorwoche&gt; 23:59:59" <br>
  11561. <b>current_day_begin</b> : entspricht "&lt;aktueller Tag&gt; 00:00:00" <br>
  11562. <b>current_day_end</b> : entspricht "&lt;aktueller Tag&gt; 23:59:59" <br>
  11563. <b>previous_day_begin</b> : entspricht "&lt;Vortag&gt; 00:00:00" <br>
  11564. <b>previous_day_end</b> : entspricht "&lt;Vortag&gt; 23:59:59" <br>
  11565. <b>current_hour_begin</b> : entspricht "&lt;aktuelle Stunde&gt;:00:00" <br>
  11566. <b>current_hour_end</b> : entspricht "&lt;aktuelle Stunde&gt;:59:59" <br>
  11567. <b>previous_hour_begin</b> : entspricht "&lt;vorherige Stunde&gt;:00:00" <br>
  11568. <b>previous_hour_end</b> : entspricht "&lt;vorherige Stunde&gt;:59:59" <br>
  11569. </ul><br>
  11570. <a name="timestamp_end"></a>
  11571. <li><b>timestamp_end </b> - das zeitliche Ende fĂźr die Datenselektion. Wenn nicht gesetzt wird immer die aktuelle
  11572. Datum/Zeit-Kombi fĂźr das Ende der Selektion eingesetzt. </li> <br>
  11573. Das Format von Timestamp ist "YYYY-MM-DD HH:MM:SS". FĂźr die Attribute "timestamp_begin", "timestamp_end"
  11574. kann ebenso eine der folgenden Eingaben verwendet werden. Dabei wird das timestamp-Attribut dynamisch belegt: <br><br>
  11575. <ul>
  11576. <b>current_year_begin</b> : entspricht "&lt;aktuelles Jahr&gt;-01-01 00:00:00" <br>
  11577. <b>current_year_end</b> : entspricht "&lt;aktuelles Jahr&gt;-12-31 23:59:59" <br>
  11578. <b>previous_year_begin</b> : entspricht "&lt;vorheriges Jahr&gt;-01-01 00:00:00" <br>
  11579. <b>previous_year_end</b> : entspricht "&lt;vorheriges Jahr&gt;-12-31 23:59:59" <br>
  11580. <b>current_month_begin</b> : entspricht "&lt;aktueller Monat erster Tag&gt; 00:00:00" <br>
  11581. <b>current_month_end</b> : entspricht "&lt;aktueller Monat letzter Tag&gt; 23:59:59" <br>
  11582. <b>previous_month_begin</b> : entspricht "&lt;Vormonat erster Tag&gt; 00:00:00" <br>
  11583. <b>previous_month_end</b> : entspricht "&lt;Vormonat letzter Tag&gt; 23:59:59" <br>
  11584. <b>current_week_begin</b> : entspricht "&lt;erster Tag der akt. Woche&gt; 00:00:00" <br>
  11585. <b>current_week_end</b> : entspricht "&lt;letzter Tag der akt. Woche&gt; 23:59:59" <br>
  11586. <b>previous_week_begin</b> : entspricht "&lt;erster Tag Vorwoche&gt; 00:00:00" <br>
  11587. <b>previous_week_end</b> : entspricht "&lt;letzter Tag Vorwoche&gt; 23:59:59" <br>
  11588. <b>current_day_begin</b> : entspricht "&lt;aktueller Tag&gt; 00:00:00" <br>
  11589. <b>current_day_end</b> : entspricht "&lt;aktueller Tag&gt; 23:59:59" <br>
  11590. <b>previous_day_begin</b> : entspricht "&lt;Vortag&gt; 00:00:00" <br>
  11591. <b>previous_day_end</b> : entspricht "&lt;Vortag&gt; 23:59:59" <br>
  11592. <b>current_hour_begin</b> : entspricht "&lt;aktuelle Stunde&gt;:00:00" <br>
  11593. <b>current_hour_end</b> : entspricht "&lt;aktuelle Stunde&gt;:59:59" <br>
  11594. <b>previous_hour_begin</b> : entspricht "&lt;vorherige Stunde&gt;:00:00" <br>
  11595. <b>previous_hour_end</b> : entspricht "&lt;vorherige Stunde&gt;:59:59" <br>
  11596. </ul><br>
  11597. NatĂźrlich sollte man immer darauf achten dass "timestamp_begin" < "timestamp_end" ist. <br><br>
  11598. <ul>
  11599. <b>Beispiel:</b> <br><br>
  11600. attr &lt;name&gt; timestamp_begin current_year_begin <br>
  11601. attr &lt;name&gt; timestamp_end current_year_end <br><br>
  11602. # Wertet die Datenbank in den Zeitgrenzen des aktuellen Jahres aus. <br>
  11603. </ul>
  11604. <br><br>
  11605. <b>Hinweis </b> <br>
  11606. Wird das Attribut "timeDiffToNow" gesetzt, werden die eventuell gesetzten anderen Zeit-Attribute
  11607. ("timestamp_begin","timestamp_end","timeYearPeriod") gelĂśscht.
  11608. Das Setzen von "timestamp_begin" bzw. "timestamp_end" bedingt die LĂśschung von anderen Zeit-Attribute falls sie vorher
  11609. gesetzt waren.
  11610. <br><br>
  11611. <a name="timeDiffToNow"></a>
  11612. <li><b>timeDiffToNow </b> - der <b>Selektionsbeginn</b> wird auf den Zeitpunkt <b>"&lt;aktuelle Zeit&gt; - &lt;timeDiffToNow&gt;"</b>
  11613. gesetzt (z.b. werden die letzten 24 Stunden in die Selektion eingehen wenn das Attribut auf "86400" gesetzt
  11614. wurde). Die Timestampermittlung erfolgt dynamisch zum AusfĂźhrungszeitpunkt. </li> <br>
  11615. <ul>
  11616. <b>Eingabeformat Beispiel:</b> <br>
  11617. <code>attr &lt;name&gt; timeDiffToNow 86400</code> <br>
  11618. # die Startzeit wird auf "aktuelle Zeit - 86400 Sekunden" gesetzt <br>
  11619. <code>attr &lt;name&gt; timeDiffToNow d:2 h:3 m:2 s:10</code> <br>
  11620. # die Startzeit wird auf "aktuelle Zeit - 2 Tage 3 Stunden 2 Minuten 10 Sekunden" gesetzt <br>
  11621. <code>attr &lt;name&gt; timeDiffToNow m:600</code> <br>
  11622. # die Startzeit wird auf "aktuelle Zeit - 600 Minuten" gesetzt <br>
  11623. <code>attr &lt;name&gt; timeDiffToNow h:2.5</code> <br>
  11624. # die Startzeit wird auf "aktuelle Zeit - 2,5 Stunden" gesetzt <br>
  11625. <code>attr &lt;name&gt; timeDiffToNow y:1 h:2.5</code> <br>
  11626. # die Startzeit wird auf "aktuelle Zeit - 1 Jahr und 2,5 Stunden" gesetzt <br>
  11627. <code>attr &lt;name&gt; timeDiffToNow y:1.5</code> <br>
  11628. # die Startzeit wird auf "aktuelle Zeit - 1,5 Jahre gesetzt <br>
  11629. </ul>
  11630. <br>
  11631. Sind die Attribute "timeDiffToNow" und "timeOlderThan" gleichzeitig gesetzt, wird der
  11632. Selektionszeitraum zwischen diesen Zeitpunkten dynamisch kalkuliert.
  11633. <br><br>
  11634. <a name="timeOlderThan"></a>
  11635. <li><b>timeOlderThan </b> - das <b>Selektionsende</b> wird auf den Zeitpunkt <b>"&lt;aktuelle Zeit&gt; - &lt;timeOlderThan&gt;"</b>
  11636. gesetzt. Dadurch werden alle Datensätze bis zu dem Zeitpunkt "&lt;aktuelle
  11637. Zeit&gt; - &lt;timeOlderThan&gt;" berĂźcksichtigt (z.b. wenn auf 86400 gesetzt, werden alle
  11638. Datensätze die älter als ein Tag sind berßcksichtigt). Die Timestampermittlung erfolgt
  11639. dynamisch zum AusfĂźhrungszeitpunkt. </li> <br>
  11640. <ul>
  11641. <b>Eingabeformat Beispiel:</b> <br>
  11642. <code>attr &lt;name&gt; timeOlderThan 86400</code> <br>
  11643. # das Selektionsende wird auf "aktuelle Zeit - 86400 Sekunden" gesetzt <br>
  11644. <code>attr &lt;name&gt; timeOlderThan d:2 h:3 m:2 s:10</code> <br>
  11645. # das Selektionsende wird auf "aktuelle Zeit - 2 Tage 3 Stunden 2 Minuten 10 Sekunden" gesetzt <br>
  11646. <code>attr &lt;name&gt; timeOlderThan m:600</code> <br>
  11647. # das Selektionsende wird auf "aktuelle Zeit - 600 Minuten" gesetzt <br>
  11648. <code>attr &lt;name&gt; timeOlderThan h:2.5</code> <br>
  11649. # das Selektionsende wird auf "aktuelle Zeit - 2,5 Stunden" gesetzt <br>
  11650. <code>attr &lt;name&gt; timeOlderThan y:1 h:2.5</code> <br>
  11651. # das Selektionsende wird auf "aktuelle Zeit - 1 Jahr und 2,5 Stunden" gesetzt <br>
  11652. <code>attr &lt;name&gt; timeOlderThan y:1.5</code> <br>
  11653. # das Selektionsende wird auf "aktuelle Zeit - 1,5 Jahre gesetzt <br>
  11654. </ul>
  11655. <br>
  11656. Sind die Attribute "timeDiffToNow" und "timeOlderThan" gleichzeitig gesetzt, wird der
  11657. Selektionszeitraum zwischen diesen Zeitpunkten dynamisch kalkuliert.
  11658. <br><br>
  11659. <a name="timeout"></a>
  11660. <li><b>timeout </b> - das Attribut setzt den Timeout-Wert fĂźr die Blocking-Call Routinen in Sekunden
  11661. (Default: 86400) </li> <br>
  11662. <a name="userExitFn"></a>
  11663. <li><b>userExitFn </b> - stellt eine Schnittstelle zur AusfĂźhrung eigenen Usercodes zur VerfĂźgung. <br>
  11664. Um die Schnittstelle zu aktivieren, wird zunächst die aufzurufende Subroutine in
  11665. 99_myUtls.pm nach folgendem Muster erstellt: <br>
  11666. <pre>
  11667. sub UserFunction {
  11668. my ($name,$reading,$value) = @_;
  11669. my $hash = $defs{$name};
  11670. ...
  11671. # z.B. Ăźbergebene Daten loggen
  11672. Log3 $name, 1, "UserExitFn $name called - transfer parameter are Reading: $reading, Value: $value " ;
  11673. ...
  11674. return;
  11675. }
  11676. </pre>
  11677. Die Aktivierung der Schnittstelle erfogt durch Setzen des Funktionsnamens im Attribut.
  11678. Optional kann ein Reading:Value Regex als Argument angegeben werden. Wird kein Regex
  11679. angegeben, werden alle Wertekombinationen als "wahr" gewertet (entspricht .*:.*).
  11680. <br><br>
  11681. <ul>
  11682. <b>Beispiel:</b> <br>
  11683. attr <device> userExitFn UserFunction .*:.* <br>
  11684. # "UserFunction" ist die Subroutine in 99_myUtils.pm.
  11685. </ul>
  11686. <br>
  11687. Grundsätzlich arbeitet die Schnittstelle OHNE Eventgenerierung bzw. benÜtigt zur Funktion keinen
  11688. Event. Sofern das Attribut gesetzt ist, erfolgt Die RegexprĂźfung NACH der Erstellung eines
  11689. Readings. Ist die PrĂźfung WAHR, wird die angegebene Funktion aufgerufen.
  11690. Zur Weiterverarbeitung werden der aufgerufenenen Funktion folgende Variablen Ăźbergeben: <br><br>
  11691. <ul>
  11692. <li>$name - der Name des DbRep-Devices </li>
  11693. <li>$reading - der Namen des erstellen Readings </li>
  11694. <li>$value - der Wert des Readings </li>
  11695. </ul>
  11696. </li>
  11697. <br>
  11698. <br>
  11699. <a name="valueFilter"></a>
  11700. <li><b>valueFilter </b> - Regulärer Ausdruck (REGEXP) zur Filterung von Datensätzen innerhalb bestimmter Funktionen.
  11701. Der REGEXP wird auf ein bestimmtes Feld oder den gesamten selektierten Datensatz (inkl. Device,
  11702. Reading usw.) angewendet.
  11703. Bitte beachten sie die Erläuterungen zu den entsprechenden Set-Kommandos. Weitere Informationen
  11704. sind mit "get &lt;name&gt; versionNotes 4" verfĂźgbar. </li> <br>
  11705. </ul></ul>
  11706. </ul>
  11707. <a name="DbRepReadings"></a>
  11708. <b>Readings</b>
  11709. <br>
  11710. <ul>
  11711. Abhängig von der ausgefßhrten DB-Operation werden die Ergebnisse in entsprechenden Readings dargestellt. Zu Beginn einer neuen Operation
  11712. werden alle alten Readings einer vorangegangenen Operation gelĂśscht um den Verbleib unpassender bzw. ungĂźltiger Readings zu vermeiden.
  11713. <br><br>
  11714. Zusätzlich werden folgende Readings erzeugt (Auswahl): <br><br>
  11715. <ul><ul>
  11716. <li><b>state </b> - enthält den aktuellen Status der Auswertung. Wenn Warnungen auftraten (state = Warning) vergleiche Readings
  11717. "diff_overrun_limit_&lt;diffLimit&gt;" und "less_data_in_period" </li> <br>
  11718. <li><b>errortext </b> - Grund eines Fehlerstatus </li> <br>
  11719. <li><b>background_processing_time </b> - die gesamte Prozesszeit die im Hintergrund/Blockingcall verbraucht wird </li> <br>
  11720. <li><b>diff_overrun_limit_&lt;diffLimit&gt;</b> - enthält eine Liste der Wertepaare die eine durch das Attribut "diffAccept" festgelegte Differenz
  11721. &lt;diffLimit&gt; (Standard: 20) Ăźberschreiten. Gilt fĂźr Funktion "diffValue". </li> <br>
  11722. <li><b>less_data_in_period </b> - enthält eine Liste der Zeitperioden in denen nur ein einziger Datensatz gefunden wurde. Die
  11723. Differenzberechnung berĂźcksichtigt den letzten Wert der Vorperiode. Gilt fĂźr Funktion "diffValue". </li> <br>
  11724. <li><b>sql_processing_time </b> - der Anteil der Prozesszeit die fĂźr alle SQL-Statements der ausgefĂźhrten
  11725. Operation verbraucht wird </li> <br>
  11726. <li><b>SqlResult </b> - Ergebnis des letzten sqlCmd-Kommandos. Die Formatierung erfolgt entsprechend
  11727. des <a href="#DbRepattr">Attributes</a> "sqlResultFormat" </li> <br>
  11728. <li><b>sqlCmd </b> - das letzte ausgefĂźhrte sqlCmd-Kommando </li> <br>
  11729. </ul></ul>
  11730. <br>
  11731. </ul>
  11732. <a name="DbRepAutoRename"></a>
  11733. <b>DbRep Agent - automatisches �ndern von Device-Namen in Datenbanken und DbRep-Definitionen nach FHEM "rename" Kommando</b>
  11734. <br>
  11735. <ul>
  11736. Mit dem Attribut "role" wird die Rolle des DbRep-Device festgelegt. Die Standardrolle ist "Client". Mit der �nderung der Rolle in "Agent" wird das Device
  11737. veranlasst auf Umbenennungen von Geräten in der FHEM Installation zu reagieren. <br><br>
  11738. Durch den DbRep-Agenten werden folgende Features aktiviert wenn ein Gerät in FHEM mit "rename" umbenannt wird: <br><br>
  11739. <ul><ul>
  11740. <li> in der dem DbRep-Agenten zugeordneten Datenbank (Internal Database) wird nach Datensätzen mit dem alten Gerätenamen gesucht und dieser Gerätename in
  11741. <b>allen</b> betroffenen Datensätzen in den neuen Namen geändert. </li> <br>
  11742. <li> in dem DbRep-Agenten zugeordneten DbLog-Device wird in der Definition das alte durch das umbenannte Device ersetzt. Dadurch erfolgt ein weiteres Logging
  11743. des umbenannten Device in der Datenbank. </li> <br>
  11744. <li> in den existierenden DbRep-Definitionen vom Typ "Client" wird ein evtl. gesetztes Attribut "device = alter Devicename" in "device = neuer Devicename"
  11745. geändert. Dadurch werden Auswertungsdefinitionen bei Geräteumbenennungen automatisch konstistent gehalten. </li> <br>
  11746. </ul></ul>
  11747. Mit der �nderung in einen Agenten sind folgende Restriktionen verbunden die mit dem Setzen des Attributes "role = Agent" eingeschaltet
  11748. und geprĂźft werden: <br><br>
  11749. <ul><ul>
  11750. <li> es kann nur einen Agenten pro Datenbank in der FHEM-Installation geben. Ist mehr als eine Datenbank mit DbLog definiert, kĂśnnen
  11751. ebenso viele DbRep-Agenten eingerichtet werden </li> <br>
  11752. <li> mit der Umwandlung in einen Agenten wird nur noch das Set-Komando "renameDevice" verfßgbar sein sowie nur ein eingeschränkter Satz von DbRep-spezifischen
  11753. Attributen zugelassen. Wird ein DbRep-Device vom bisherigen Typ "Client" in einen Agenten geändert, werden evtl. gesetzte und nun nicht mehr zugelassene
  11754. Attribute glĂśscht. </li> <br>
  11755. </ul></ul>
  11756. Die Aktivitäten wie Datenbankänderungen bzw. �nderungen an anderen DbRep-Definitionen werden im Logfile mit verbose=3 protokolliert. Damit die renameDevice-Funktion
  11757. bei gro�en Datenbanken nicht in ein timeout läuft, sollte das Attribut "timeout" entsprechend dimensioniert werden. Wie alle Datenbankoperationen des Moduls
  11758. wird auch das Autorename nonblocking ausgefĂźhrt. <br><br>
  11759. <ul>
  11760. <b>Beispiel </b> fĂźr die Definition eines DbRep-Device als Agent: <br><br>
  11761. <code>
  11762. define Rep.Agent DbRep LogDB <br>
  11763. attr Rep.Agent devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen <br>
  11764. attr Rep.Agent icon security <br>
  11765. attr Rep.Agent role Agent <br>
  11766. attr Rep.Agent room DbLog <br>
  11767. attr Rep.Agent showproctime 1 <br>
  11768. attr Rep.Agent stateFormat { ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " &raquo;; ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"} <br>
  11769. attr Rep.Agent timeout 86400 <br>
  11770. </code>
  11771. <br>
  11772. </ul>
  11773. <b>Hinweis:</b> <br>
  11774. Obwohl die Funktion selbst non-blocking ausgelegt ist, sollte das zugeordnete DbLog-Device
  11775. im asynchronen Modus betrieben werden um ein Blockieren von FHEMWEB zu vermeiden (Tabellen-Lock). <br><br>
  11776. </ul>
  11777. <p><a name="Dooya"></a>
  11778. <h3>Dooya</h3>
  11779. <ul>
  11780. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  11781. hier: <a href='commandref.html#Dooya'>Dooya</a><br/>
  11782. </ul>
  11783. <a name="EC3000"></a>
  11784. <h3>EC3000</h3>
  11785. <ul>
  11786. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  11787. hier: <a href='commandref.html#EC3000'>EC3000</a><br/>
  11788. </ul>
  11789. <a name="ECMD"></a>
  11790. <h3>ECMD</h3>
  11791. <ul>
  11792. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  11793. hier: <a href='commandref.html#ECMD'>ECMD</a><br/>
  11794. </ul>
  11795. <a name="ECMDDevice"></a>
  11796. <h3>ECMDDevice</h3>
  11797. <ul>
  11798. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  11799. hier: <a href='commandref.html#ECMDDevice'>ECMDDevice</a><br/>
  11800. </ul>
  11801. <a name="EDIPLUG"></a>
  11802. <h3>EDIPLUG</h3>
  11803. <div class='langLinks'>[<a href='commandref.html#EDIPLUG'>EN</a> DE]</div>
  11804. FHEM Module f&uuml;r die Edimax Smart Plug Switches SP-2101W und SP-1101W (http://www.edimax.com)<br>
  11805. FHEM Forum : <a href="http://forum.fhem.de/index.php/topic,29541.0.html">http://forum.fhem.de/index.php/topic,29541.0.html</a><br>
  11806. SP-2101W - Edimax Smart Plug Switch mit Strom Verbrauchsmessung<br>
  11807. SP-1101W - Edimax Smart Plug Switch<br>
  11808. ben&oml;ntigt XML:Simple -> sudo apt-get install libxml-simple-perl
  11809. <br>
  11810. <ul>
  11811. <a name="EDIPLUGdefine"></a>
  11812. <b>Define</b>
  11813. <ul>
  11814. define &lt;name&gt; EDIPLUG IP_des_EDIPlug (oder FQDN Name)<br>
  11815. Beispiel:<br>
  11816. <li>define myediplug EDIPLUG 192.168.0.99</li>
  11817. <li>define myediplug EDIPLUG ediplug.fritz.box</li>
  11818. </ul>
  11819. <br>
  11820. <a name="EDIPLUGset"></a>
  11821. <b>Set</b>
  11822. <ul>
  11823. <li>on => schalte an</li>
  11824. <li>off => schalte aus</li>
  11825. <li>list => erzeugt eine neue Zeitplan Liste mit einem Eintrag : Wochentag(0-6) Startzeit(hh:mm) Endezeit(hh:mm) Kommando(on/off) Bsp. 1 10:00 11:30 on<br>
  11826. mit Wochentag 00:00 24:00 on kann man den kompletten Tag einschalten</li>
  11827. <li>addlist => f&uuml;gt eine neue Schaltzeit einer bestehenden Zeitplan Liste hinzu : Wochentag(0-6) Startzeit(hh:mm) Endtezeit(hh:mm) Kommando(on/off) Bsp. 1 10:00 11:30 on</li>
  11828. <li>dellist => l&ouml;scht eine bestimmte Schaltzeit eines Tages : Wochentag(0-6) Startzeit(hh:mm) Endezeit(hh:mm) Bsp. 1 10:00 11:30</li>
  11829. <li>delete => l&ouml;scht die Liste eines ganzen Tages : Wochentag(0-6)</li>
  11830. <li>day => schaltet die Zeitplanung eines Tages ein oder aus : Wochentag(0-6) on/off Bsp. 5 on</li>
  11831. </ul>
  11832. <br>
  11833. <a name="EDIPLUGget"></a>
  11834. <b>Get</b>
  11835. <ul>
  11836. <li>info => Anzeige von MAC , Firmware Version , Modell , Name</li>
  11837. <li>power => zeigt alle Stromverbrauchswerte ( nur Modell SP-2101W )</li>
  11838. <li>schedule => zeigt alle internen Schaltzeiten (ACHTUNG : Firmware Version beachten !)</li>
  11839. <li>status => zeigt an/aus Status der Schaltdose</li>
  11840. </ul>
  11841. <br>
  11842. <a name="EDIPLUGattr"></a>
  11843. <b>Attributes</b>
  11844. <ul>
  11845. <li>interval => polling interval (default 60)</li>
  11846. <li>timeout => max. Wartezeit in Sekunden (default 2)</li>
  11847. <li>read-only => es ist nur lesen (Get) erlaubt (default 0)</li>
  11848. <li>user => Username (default admin)</li>
  11849. <li>password => Passwort (default 1234)</li>
  11850. </ul>
  11851. <br>
  11852. <b>Readings</b>
  11853. <ul>
  11854. <li>0.So -> Schaltzeiten Sonntag</li>
  11855. <li>0.So.state -> Sonntag an/aus</li>
  11856. <li>.</li>
  11857. <li>.</li>
  11858. <li>.</li>
  11859. <li>6.Sa -> Schaltzeiten Samstag</li>
  11860. <li>6.Sa.state -> Samstag an/aus</li>
  11861. <li>last_Toggle_Time ( nur Modell SP-2101W)</li>
  11862. <li>current (nur Modell SP-2101W)</li>
  11863. <li>power_now (nur Modell SP-2101W)</li>
  11864. <li>power_day (nur Modell SP-2101W)</li>
  11865. <li>power_week (nur Modell SP-2101W)</li>
  11866. <li>power_month (nur Modell SP-2101W)</li>
  11867. </ul>
  11868. </ul>
  11869. <p><a name="EGPM"></a>
  11870. <h3>EGPM Steckdose</h3>
  11871. <div class='langLinks'>[<a href='commandref.html#EGPM'>EN</a> DE]</div>
  11872. <ul>
  11873. Definiert eine einzelne Netzwerk-Steckdose vom EGPM2LAN. Diese Definition wird beim Einrichten eines EGPM2LAN automatisch erstellt,
  11874. wenn das globale FHEM-Attribut AUTOCREATE aktiviert wurde. F&uuml;r weitere Informationen, siehe Beschreibung von <a href="#EGPM2LAN">EGPM2LAN</a>.
  11875. <br><br>
  11876. <a name="EGPMdefine"></a>
  11877. <b>Define</b>
  11878. <ul>
  11879. <code>define &lt;name&gt; EGPM &lt;device&gt; &lt;socket-nr&gt;</code>
  11880. <br>
  11881. </ul>
  11882. <br>
  11883. <a name="EGPMset"></a>
  11884. <b>Set</b>
  11885. <ul><code>set &lt;name&gt; &lt;[on|off|toggle]&gt;</code><br>
  11886. Schaltet die Steckdose ein oder aus.
  11887. </ul>
  11888. <ul><code>set &lt;name&gt; &lt;[on-for-timer|off-for-timer|on-till|off-till|blink|intervals]&gt;</code><br>
  11889. Schaltet die Steckdose f&uuml; einen bestimmten Zeitraum oder mehrfach hintereinander. Weitere Infos hierzu unter <a href="#setExtensions">set extensions</a>.
  11890. </ul><br>
  11891. Beispiel:
  11892. <ul>
  11893. <code>define lampe1 EGPM steckdose 1</code><br>
  11894. <code>set lampe1 on</code><br>
  11895. </ul>
  11896. <br>
  11897. <a name="EGPMget"></a>
  11898. <b>Get</b> <ul>N/A</ul>
  11899. <br>
  11900. <a name="EGPMattr"></a>
  11901. <b>Attributes</b>
  11902. <ul>
  11903. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  11904. </ul>
  11905. <br>
  11906. <a name="EGPM2LANevents"></a>
  11907. <b>Generated events</b>
  11908. <ul>
  11909. <li>EGPM &lt;name&gt; &lt;[on|off]&gt</li>
  11910. </ul>
  11911. </ul>
  11912. <p><a name="EGPM2LAN"></a>
  11913. <h3>EGPM2LAN</h3>
  11914. <div class='langLinks'>[<a href='commandref.html#EGPM2LAN'>EN</a> DE]</div>
  11915. <ul>
  11916. <br>
  11917. <a name="EGPM2LANdefine"></a>
  11918. <b>Define</b>
  11919. <ul>
  11920. <code>define &lt;name&gt; EGPM2LAN &lt;IP-Address&gt;</code><br>
  11921. <br>
  11922. Das Modul erstellt eine Verbindung zu einer Gembird &reg; <a href="http://energenie.com/item.aspx?id=7557" >Energenie EG-PM2-LAN</a> Steckdosenleiste und steuert 4 angeschlossene Ger&auml;te..
  11923. Falls mehrere Steckdosenleisten &uuml;ber das Netzwerk gesteuert werden, ist es ratsam, diese zuerst &uuml;ber die Web-Oberfl&auml;che zu konfigurieren und die einzelnen Steckdosen zu benennen. Die Namen werden dann automatisch in die
  11924. Oberfl&auml;che von FHEM &uuml;bernommen. Bitte darauf achten, die Weboberfl&auml;che mit <i>Logoff</i> wieder zu verlassen, da der Zugriff sonst blockiert wird.
  11925. </ul><br>
  11926. <a name="EGPM2LANset"></a>
  11927. <b>Set</b>
  11928. <ul>
  11929. <code>set &lt;name&gt; &lt;[on|off|toggle]&gt &lt;socketnr.&gt;</code><br>
  11930. Schaltet die gew&auml;hlte Steckdose ein oder aus.<br>
  11931. <br>
  11932. <code>set &lt;name&gt; &lt;[on|off]&gt &lt;all&gt;</code><br>
  11933. Schaltet alle Steckdosen gleichzeitig ein oder aus.<br>
  11934. <br>
  11935. <code>set &lt;name&gt; password [&lt;mein-passwort&gt;]</code><br>
  11936. Speichert das Passwort verschl&uuml;sselt in FHEM ab. Zum Entfernen eines vorhandenen Passworts den Befehl ohne Parameter aufrufen.<br>
  11937. Vor 04/2017 wurde das Passwort im Klartext gespeichert und mit dem DEFINE-Command &uuml;bergeben.<br>
  11938. <br>
  11939. <code>set &lt;name&gt; &lt;staterequest&gt;</code><br>
  11940. Aktualisiert die Statusinformation der Steckdosenleiste.<br>
  11941. Wenn das globale Attribut <a href="#autocreate">autocreate</a> aktiviert ist, wird f&uuml;r jede Steckdose ein <a href="#EGPM">EGPM</a>-Eintrag erstellt.<br>
  11942. <br>
  11943. <code>set &lt;name&gt; &lt;clearreadings&gt;</code><br>
  11944. L&ouml;scht alle ung&uuml;ltigen Eintr&auml;ge im Abschnitt &lt;readings&gt;.
  11945. </ul>
  11946. <br>
  11947. <a name="EGPM2LANget"></a>
  11948. <b>Get</b>
  11949. <ul><code>get &lt;name&gt; state</code><br>
  11950. Gibt einen Text in diesem Format aus: "1: off 2: on 3: off 4: off" oder enth&auml;lt die letzte Fehlermeldung.<br>
  11951. </ul><br>
  11952. <a name="EGPM2LANattr"></a>
  11953. <b>Attribute</b>
  11954. <ul>
  11955. <li>stateDisplay</li>
  11956. Default: <b>socketNumer</b> wechselt zwischen <b>socketNumer</b> and <b>socketName</b> f&uuml;r jeden Statuseintrag. Verwende <b>set statusrequest</b>, um die Anzeige zu aktualisieren.
  11957. <li>autocreate</li>
  11958. Default: <b>on</b> <a href="#EGPM">EGPM</a>-Eintr&auml;ge werden automatisch mit dem <b>set</b>-command erstellt.
  11959. <li><a href="#loglevel">loglevel</a></li>
  11960. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  11961. </ul>
  11962. <br>
  11963. <br>
  11964. <br>
  11965. Beispiel:
  11966. <ul>
  11967. <code>define sleiste EGPM2LAN 10.192.192.20</code><br>
  11968. <code>set sleiste password SecretGarden</code><br>
  11969. <code>set sleiste on 1</code><br>
  11970. </ul>
  11971. </ul>
  11972. <p><a name="EIB"></a>
  11973. <h3>EIB</h3>
  11974. <ul>
  11975. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  11976. hier: <a href='commandref.html#EIB'>EIB</a><br/>
  11977. </ul>
  11978. <a name="EM"></a>
  11979. <h3>EM</h3>
  11980. <ul>
  11981. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  11982. hier: <a href='commandref.html#EM'>EM</a><br/>
  11983. </ul>
  11984. <a name="EMEM"></a>
  11985. <h3>EMEM</h3>
  11986. <ul>
  11987. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  11988. hier: <a href='commandref.html#EMEM'>EMEM</a><br/>
  11989. </ul>
  11990. <a name="EMGZ"></a>
  11991. <h3>EMGZ</h3>
  11992. <ul>
  11993. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  11994. hier: <a href='commandref.html#EMGZ'>EMGZ</a><br/>
  11995. </ul>
  11996. <a name="EMT7110"></a>
  11997. <h3>EMT7110</h3>
  11998. <ul>
  11999. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12000. hier: <a href='commandref.html#EMT7110'>EMT7110</a><br/>
  12001. </ul>
  12002. <a name="EMWZ"></a>
  12003. <h3>EMWZ</h3>
  12004. <ul>
  12005. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12006. hier: <a href='commandref.html#EMWZ'>EMWZ</a><br/>
  12007. </ul>
  12008. <a name="ENECSYSGW"></a>
  12009. <h3>ENECSYSGW</h3>
  12010. <ul>
  12011. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12012. hier: <a href='commandref.html#ENECSYSGW'>ENECSYSGW</a><br/>
  12013. </ul>
  12014. <a name="ENECSYSINV"></a>
  12015. <h3>ENECSYSINV</h3>
  12016. <ul>
  12017. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12018. hier: <a href='commandref.html#ENECSYSINV'>ENECSYSINV</a><br/>
  12019. </ul>
  12020. <p>
  12021. <a name="ENIGMA2" id="ENIGMA2"></a>
  12022. </p>
  12023. <h3>
  12024. ENIGMA2
  12025. </h3>
  12026. <div class='langLinks'>[<a href='commandref.html#ENIGMA2'>EN</a> DE]</div>
  12027. <ul>
  12028. Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
  12029. </ul>
  12030. <ul>
  12031. <a href='http://fhem.de/commandref.html#ENIGMA2'>ENIGMA2</a>
  12032. </ul>
  12033. <p><a name="EQ3BT"></a>
  12034. <h3>EQ3BT</h3>
  12035. <ul>
  12036. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12037. hier: <a href='commandref.html#EQ3BT'>EQ3BT</a><br/>
  12038. </ul>
  12039. <a name="ESA2000"></a>
  12040. <h3>ESA2000</h3>
  12041. <ul>
  12042. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12043. hier: <a href='commandref.html#ESA2000'>ESA2000</a><br/>
  12044. </ul>
  12045. <a name="ESPEasy"></a>
  12046. <h3>ESPEasy</h3>
  12047. <ul>
  12048. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12049. hier: <a href='commandref.html#ESPEasy'>ESPEasy</a><br/>
  12050. </ul>
  12051. <a name="ElectricityCalculator"></a>
  12052. <h3>ElectricityCalculator</h3>
  12053. <div class='langLinks'>[<a href='commandref.html#ElectricityCalculator'>EN</a> DE]</div>
  12054. <ul>
  12055. <table>
  12056. <tr>
  12057. <td>
  12058. Das ElectricityCalculator Modul berechnet den Verbrauch an elektrischer Energie (Stromverbrauch) und den verbundenen Kosten von einem oder mehreren Elektrizit&auml;tsz&auml;hlern.<BR>
  12059. Es ist kein eigenes Z&auml;hlermodul sondern ben&ouml;tigt eine Regular Expression (regex or regexp) um das Reading mit den Z&auml;hlimpulse von einem oder mehreren Electrizit&auml;tsz&auml;hlern zu finden.<BR>
  12060. <BR>
  12061. Sobald das Modul in der fhem.cfg definiert wurde, reagiert das Modul auf jedes durch das regex definierte event wie beispielsweise ein myOWDEVICE:counter.* etc.<BR>
  12062. <BR>
  12063. Das ElectricityCalculator Modul berechnet augenblickliche, historische statistische und vorhersehbare Werte von einem oder mehreren Elektrizit&auml;tsz&auml;hlern und erstellt die entsprechenden Readings.<BR>
  12064. <BR>
  12065. Um zu verhindern, dass man bis zu 12 Monate warten muss, bis alle Werte der Realit&auml;t entsprechen, m&uuml;ssen die Readings<BR>
  12066. <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterDay1st</code>,<BR>
  12067. <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMonth1st</code>,<BR>
  12068. <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterYear1st</code> und<BR>
  12069. <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMeter1st</code><BR>
  12070. entsprechend mit dem <code>setreading</code> - Befehl korrigiert werden.<BR>
  12071. Diese Werte findet man unter Umst&auml;nden auf der letzten Abrechnung des Elektrizit&auml;tsversorgers. Andernfalls dauert es bis zu 24h f&uuml;r die t&auml;glichen, 30 Tage f&uuml;r die monatlichen und bis zu 12 Monate f&uuml;r die j&auml;hrlichen Werte bis diese der Realit&auml;t entsprechen.<BR>
  12072. <BR>
  12073. <BR>
  12074. Intervalle kleienr als 10s werden ignoriert um Spitzen zu verhindern die von Blockaden des fhem Systems hervorgerufen werden (z.B. DbLog - reducelog).
  12075. </td>
  12076. </tr>
  12077. </table>
  12078. <table>
  12079. <tr><td><a name="ElectricityCalculatorDefine"></a><b>Define</b></td></tr>
  12080. </table>
  12081. <table><tr><td><ul><code>define &lt;name&gt; ElectricityCalculator &lt;regex&gt;</code></ul></td></tr></table>
  12082. <ul><ul>
  12083. <table>
  12084. <tr><td><code>&lt;name&gt;</code> : </td><td>Der Name dieses Berechnungs-Device. Empfehlung: "myElectricityCalculator".</td></tr>
  12085. <tr><td><code>&lt;regex&gt;</code> : </td><td>Eine g&uuml;ltige Regular Expression (regex or regexp) von dem Event wo der Z&auml;hlerstand gefunden werden kann</td></tr>
  12086. </table>
  12087. </ul></ul>
  12088. <table><tr><td><ul>Beispiel: <code>define myElectricityCalculator ElectricityCalculator myElectricityCounter:countersA.*</code></ul></td></tr></table>
  12089. <BR>
  12090. <table>
  12091. <tr><td><a name="ElectricityCalculatorSet"></a><b>Set</b></td></tr>
  12092. <tr><td>
  12093. <ul>
  12094. Die set - Funktion erlaubt individuelle Readings zu ver&auml;ndern um beispielsweise nach einem Stromausfall Werte zu korrigieren.<BR>
  12095. Die set - Funktion funktioniert nur f&uumlr Readings welche im CalculatorDevice gespeichert wurden.<BR>
  12096. Die Readings welche im Counter - Device gespeichert wurden, m&uumlssen individuell mit <code>set</code> - Befehl gesetzt werden.<BR>
  12097. </ul>
  12098. </td></tr>
  12099. </table>
  12100. <BR>
  12101. <table>
  12102. <tr><td><a name="ElectricityCalculatorGet"></a><b>Get</b></td></tr>
  12103. <tr><td>
  12104. <ul>
  12105. Die get - Funktion liefert nur den Wert des jeweiligen Readings zur&uuml;ck.<BR>
  12106. Die get - Funktion funktioniert nur f&uumlr Readings welche im CalculatorDevice gespeichert wurden.<BR>
  12107. Die Readings welche im Counter - Device gespeichert wurden, m&uumlssen individuell mit <code>get</code> - Befehl ausgelesen werden.<BR>
  12108. </ul>
  12109. </td></tr>
  12110. </table>
  12111. <BR>
  12112. <table>
  12113. <tr><td><a name="ElectricityCalculatorAttr"></a><b>Attributes</b></td></tr>
  12114. <tr><td>
  12115. <ul>
  12116. Sollten die unten ausfeg&auuml;hrten Attribute bei der Definition eines entsprechenden Ger&auml;tes nicht gesetzt sein, so werden sie vom Modul mit Standard Werten automatisch gesetzt<BR>
  12117. Zus&auml;tzlich k&ouml;nnen die globalen Attribute wie <a href="#room">room</a> verwendet werden.<BR>
  12118. </ul>
  12119. </td></tr>
  12120. </table>
  12121. <ul><ul>
  12122. <table>
  12123. <tr>
  12124. <td>
  12125. <tr><td><li><code>BasicPricePerAnnum</code> : </li></td><td> Eine g&uuml;ltige float Zahl f&uuml;r die j&auml;hrliche Grundgeb&uuml;hr in der gew&auml;hlten W&auml;hrung f&uuml;r die Elektrizit&auml;ts-Versorgung zum Endverbraucher.<BR>
  12126. Dieser Wert stammt vom Elektrizit&auml;tsversorger und steht auf der Abrechnung.<BR>
  12127. Der Standard Wert ist 0.00<BR>
  12128. </td></tr>
  12129. </td>
  12130. </tr>
  12131. </table>
  12132. </ul></ul>
  12133. <ul><ul>
  12134. <table>
  12135. <tr>
  12136. <td>
  12137. <tr><td><li><code>Currency</code> : </li></td><td> Eines der vordefinerten W&auml;hrungssymbole: [&#8364;,&#163;,&#36;].<BR>
  12138. Der Standard Wert ist &#8364;<BR>
  12139. </td></tr>
  12140. </td>
  12141. </tr>
  12142. </table>
  12143. </ul></ul>
  12144. <ul><ul>
  12145. <table>
  12146. <tr>
  12147. <td>
  12148. <tr><td><li><code>disable</code> : </li></td><td> Deaktiviert das device. Das Modul wird nicht mehr auf die Events reagieren die durch die Regular Expression definiert wurde.<BR>
  12149. Der Standard Wert ist 0 = aktiviert.<BR>
  12150. </td></tr>
  12151. </td>
  12152. </tr>
  12153. </table>
  12154. </ul></ul>
  12155. <ul><ul>
  12156. <table>
  12157. <tr>
  12158. <td>
  12159. <tr><td><li><code>ElectricityCounterOffset</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r den Unterschied = Offset (Nicht der Unterschied zwischen Z&auml;hlimpulsen) zwischen dem am mechanischen Elektrizit&auml;tsz&auml;hlern und dem angezeigten Wert im Reading dieses Device.<BR>
  12160. Der Offset-Wert wird wie folgt ermittelt: W<sub>Offset</sub> = W<sub>Mechanisch</sub> - W<sub>Module</sub><BR>
  12161. Der Standard-Wert ist 0.00<BR>
  12162. </td></tr>
  12163. </td>
  12164. </tr>
  12165. </table>
  12166. </ul></ul>
  12167. <ul><ul>
  12168. <table>
  12169. <tr>
  12170. <td>
  12171. <tr><td><li><code>ElectricityKwhPerCounts</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r die Menge kWh pro Z&auml;hlimpulsen.<BR>
  12172. Der Wert ist durch das mechanische Z&auml;hlwerk des Elektrizit&auml;tsz&auml;hlern vorgegeben. ElectricityKwhPerCounts = 0.001 bedeutet, dass jeder Z&auml;hlimpuls ein Tausendstel einer kWh ist (=Wh).<BR>
  12173. Einige elektronische Zähler (Bsp.: HomeMatic HM-ES-TX-WM) stellen die gezählte Menge an elektrischer Energie als Wh bereit.<BR>
  12174. Aus diesem Grund muss dieses Attribut auf 0.001 gesetzt werden um eine korrekte Transformation in kWh zu erm&ouml;glichen.<BR>
  12175. Der Standard-Wert ist 1<BR>
  12176. </td></tr>
  12177. </td>
  12178. </tr>
  12179. </table>
  12180. </ul></ul>
  12181. <ul><ul>
  12182. <table>
  12183. <tr>
  12184. <td>
  12185. <tr><td><li><code>ElectricityPricePerKWh</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r den Preis pro kWh.<BR>
  12186. Dieser Wert stammt vom Elektrizit&auml;tsversorger und steht auf der Abrechnung.<BR>
  12187. Der Standard-Wert ist 0.2567<BR>
  12188. </td></tr>
  12189. </td>
  12190. </tr>
  12191. </table>
  12192. </ul></ul>
  12193. <ul><ul>
  12194. <table>
  12195. <tr>
  12196. <td>
  12197. <tr><td><li><code>MonthlyPayment</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r die monatlichen Abschlagszahlungen in der gew&auml;hlten W&auml;hrung an den Elektrizit&auml;tsversorger.<BR>
  12198. Der Standard-Wert ist 0.00<BR>
  12199. </td></tr>
  12200. </td>
  12201. </tr>
  12202. </table>
  12203. </ul></ul>
  12204. <ul><ul>
  12205. <table>
  12206. <tr>
  12207. <td>
  12208. <tr><td><li><code>MonthOfAnnualReading</code> : </li></td><td> Eine g&uuml;ltige Ganz-Zahl f&uuml;r den Monat wenn der mechanische Elektrizit&auml;tsz&auml;hler jedes Jahr durch den Elektrizit&auml;tsversorger abgelesen wird.<BR>
  12209. Der Standard-Wert ist 5 (Mai)<BR>
  12210. </td></tr>
  12211. </td>
  12212. </tr>
  12213. </table>
  12214. </ul></ul>
  12215. <ul><ul>
  12216. <table>
  12217. <tr>
  12218. <td>
  12219. <tr><td><li><code>ReadingDestination</code> : </li></td><td> Eines der vordefinerten Device als Ziel der errechneten Readings: [CalculatorDevice,CounterDevice].<BR>
  12220. Das CalculatorDevice ist das mit diesem Modul erstellte Device.<BR>
  12221. Das CounterDevice ist das Device von welchem der mechanische Z&auml;hler ausgelesen wird.<BR>
  12222. Der Standard-Wert ist CalculatorDevice.<BR>
  12223. </td></tr>
  12224. </td>
  12225. </tr>
  12226. </table>
  12227. </ul></ul>
  12228. <ul><ul>
  12229. <table>
  12230. <tr>
  12231. <td>
  12232. <tr><td><li><code>SiPrefixPower</code> : </li></td><td> Ein Wert der vorgegebenen Auswahlliste: W (Watt), kW (Kilowatt), MW (Megawatt) or GW (Gigawatt).<BR>
  12233. Es definiert welcher SI-Prefix verwendet werden soll und teilt die Leistung entsprechend durch ein Vielfaches von 1000.
  12234. Der Standard-Wert ist W (Watt).<BR>
  12235. </td></tr>
  12236. </td>
  12237. </tr>
  12238. </table>
  12239. </ul></ul>
  12240. <BR>
  12241. <table>
  12242. <tr><td><a name="ElectricityCalculatorReadings"></a><b>Readings</b></td></tr>
  12243. <tr><td>
  12244. <ul>
  12245. Sobald das Device in der Lage war mindestens 2 Werte des Z&auml;hlers einzulesen, werden automatisch die entsprechenden Readings erzeugt:<BR>
  12246. Der Platzhalter <code>&lt;DestinationDevice&gt;</code> steht f&uuml;r das Device, welches man in dem Attribut <code>ReadingDestination</code> oben festgelegt hat. Dieser Platzhalter bleibt leer, sobald man dort CalculatorDevice ausgew&auml;hlt hat.<BR>
  12247. Der Platzhalter <code>&lt;SourceCounterReading&gt;</code> steht f&uuml;r das Reading welches mit der Regular Expression definiert wurde.<BR>
  12248. </ul>
  12249. </td></tr>
  12250. </table>
  12251. <ul><ul>
  12252. <table>
  12253. <tr>
  12254. <td>
  12255. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterCurrent</code> : </li></td><td>Aktueller Z&auml;hlerstand am mechanischen Z&auml;hler. Bei Unterschied muss das Offset-Attribut entspechend korrigiert werden.<BR>
  12256. </td></tr>
  12257. </td>
  12258. </tr>
  12259. </table>
  12260. </ul></ul>
  12261. <ul><ul>
  12262. <table>
  12263. <tr>
  12264. <td>
  12265. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterDay1st</code> : </li></td><td>Der erste Z&auml;hlerstand des laufenden Tages seit Mitternacht.<BR>
  12266. </td></tr>
  12267. </td>
  12268. </tr>
  12269. </table>
  12270. </ul></ul>
  12271. <ul><ul>
  12272. <table>
  12273. <tr>
  12274. <td>
  12275. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterDayLast</code> : </li></td><td>Der letzte Z&auml;hlerstand des vorherigen Tages.<BR>
  12276. </td></tr>
  12277. </td>
  12278. </tr>
  12279. </table>
  12280. </ul></ul>
  12281. <ul><ul>
  12282. <table>
  12283. <tr>
  12284. <td>
  12285. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMeter1st</code> : </li></td><td>Der erste Z&auml;hlerstand seit Mitternacht des ersten Tages der laufenden Ableseperiode.<BR>
  12286. </td></tr>
  12287. </td>
  12288. </tr>
  12289. </table>
  12290. </ul></ul>
  12291. <ul><ul>
  12292. <table>
  12293. <tr>
  12294. <td>
  12295. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMeterLast</code> : </li></td><td>Der letzte Z&auml;hlerstand seit Mitternacht des ersten Tages der vorherigen Ableseperiode.<BR>
  12296. </td></tr>
  12297. </td>
  12298. </tr>
  12299. </table>
  12300. </ul></ul>
  12301. <ul><ul>
  12302. <table>
  12303. <tr>
  12304. <td>
  12305. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMonth1st</code> : </li></td><td>Der erste Z&auml;hlerstand seit Mitternacht des ersten Tages des laufenden Monats.<BR>
  12306. </td></tr>
  12307. </td>
  12308. </tr>
  12309. </table>
  12310. </ul></ul>
  12311. <ul><ul>
  12312. <table>
  12313. <tr>
  12314. <td>
  12315. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMonthLast</code> : </li></td><td>Der letzte Z&auml;hlerstand des vorherigen Monats.<BR>
  12316. </td></tr>
  12317. </td>
  12318. </tr>
  12319. </table>
  12320. </ul></ul>
  12321. <ul><ul>
  12322. <table>
  12323. <tr>
  12324. <td>
  12325. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterYear1st</code> : </li></td><td>Der erste Z&auml;hlerstand seit Mitternacht des ersten Tages des laufenden Jahres.<BR>
  12326. </td></tr>
  12327. </td>
  12328. </tr>
  12329. </table>
  12330. </ul></ul>
  12331. <ul><ul>
  12332. <table>
  12333. <tr>
  12334. <td>
  12335. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterYearLast</code> : </li></td><td>Der letzte Z&auml;hlerstand des letzten Jahres.<BR>
  12336. </td></tr>
  12337. </td>
  12338. </tr>
  12339. </table>
  12340. </ul></ul>
  12341. <ul><ul>
  12342. <table>
  12343. <tr>
  12344. <td>
  12345. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostDayLast</code> : </li></td><td>Elektrische Energiekosten des letzten Tages.<BR>
  12346. </td></tr>
  12347. </td>
  12348. </tr>
  12349. </table>
  12350. </ul></ul>
  12351. <ul><ul>
  12352. <table>
  12353. <tr>
  12354. <td>
  12355. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostMeterLast</code> : </li></td><td>Elektrische Energiekosten der letzten Ableseperiode.<BR>
  12356. </td></tr>
  12357. </td>
  12358. </tr>
  12359. </table>
  12360. </ul></ul>
  12361. <ul><ul>
  12362. <table>
  12363. <tr>
  12364. <td>
  12365. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostMonthLast</code> : </li></td><td>Elektrische Energiekosten des letzten Monats.<BR>
  12366. </td></tr>
  12367. </td>
  12368. </tr>
  12369. </table>
  12370. </ul></ul>
  12371. <ul><ul>
  12372. <table>
  12373. <tr>
  12374. <td>
  12375. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostYearLast</code> : </li></td><td>Elektrische Energiekosten des letzten Kalenderjahres.<BR>
  12376. </td></tr>
  12377. </td>
  12378. </tr>
  12379. </table>
  12380. </ul></ul>
  12381. <ul><ul>
  12382. <table>
  12383. <tr>
  12384. <td>
  12385. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostDay</code> : </li></td><td>Energiekosten in gew&auml;hlter W&auml;hrung seit Mitternacht des laufenden Tages.<BR>
  12386. </td></tr>
  12387. </td>
  12388. </tr>
  12389. </table>
  12390. </ul></ul>
  12391. <ul><ul>
  12392. <table>
  12393. <tr>
  12394. <td>
  12395. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostMeter</code> : </li></td><td>Energiekosten in gew&auml;hlter W&auml;hrung seit Beginn der laufenden Ableseperiode.<BR>
  12396. </td></tr>
  12397. </td>
  12398. </tr>
  12399. </table>
  12400. </ul></ul>
  12401. <ul><ul>
  12402. <table>
  12403. <tr>
  12404. <td>
  12405. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostMonth</code> : </li></td><td>Energiekosten in gew&auml;hlter W&auml;hrung seit Beginn des laufenden Monats.<BR>
  12406. </td></tr>
  12407. </td>
  12408. </tr>
  12409. </table>
  12410. </ul></ul>
  12411. <ul><ul>
  12412. <table>
  12413. <tr>
  12414. <td>
  12415. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostYear</code> : </li></td><td>Energiekosten in gew&auml;hlter W&auml;hrung seit Beginn des laufenden Kalenderjahres.<BR>
  12416. </td></tr>
  12417. </td>
  12418. </tr>
  12419. </table>
  12420. </ul></ul>
  12421. <ul><ul>
  12422. <table>
  12423. <tr>
  12424. <td>
  12425. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyDay</code> : </li></td><td>Energieverbrauch seit Beginn der aktuellen Tages (Mitternacht).<BR>
  12426. </td></tr>
  12427. </td>
  12428. </tr>
  12429. </table>
  12430. </ul></ul>
  12431. <ul><ul>
  12432. <table>
  12433. <tr>
  12434. <td>
  12435. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyDayLast</code> : </li></td><td>Energieverbrauch in kWh des vorherigen Tages.<BR>
  12436. </td></tr>
  12437. </td>
  12438. </tr>
  12439. </table>
  12440. </ul></ul>
  12441. <ul><ul>
  12442. <table>
  12443. <tr>
  12444. <td>
  12445. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyMeter</code> : </li></td><td>Energieverbrauch seit Beginn der aktuellen Ableseperiode.<BR>
  12446. </td></tr>
  12447. </td>
  12448. </tr>
  12449. </table>
  12450. </ul></ul>
  12451. <ul><ul>
  12452. <table>
  12453. <tr>
  12454. <td>
  12455. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyMeterLast</code> : </li></td><td>Energieverbrauch in kWh der vorherigen Ableseperiode.<BR>
  12456. </td></tr>
  12457. </td>
  12458. </tr>
  12459. </table>
  12460. </ul></ul>
  12461. <ul><ul>
  12462. <table>
  12463. <tr>
  12464. <td>
  12465. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyMonth</code> : </li></td><td>Energieverbrauch seit Beginn des aktuellen Monats.<BR>
  12466. </td></tr>
  12467. </td>
  12468. </tr>
  12469. </table>
  12470. </ul></ul>
  12471. <ul><ul>
  12472. <table>
  12473. <tr>
  12474. <td>
  12475. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyMonthLast</code> : </li></td><td>Energieverbrauch in kWh des vorherigen Monats.<BR>
  12476. </td></tr>
  12477. </td>
  12478. </tr>
  12479. </table>
  12480. </ul></ul>
  12481. <ul><ul>
  12482. <table>
  12483. <tr>
  12484. <td>
  12485. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyYear</code> : </li></td><td>Energieverbrauch seit Beginn des aktuellen Kalenderjahres.<BR>
  12486. </td></tr>
  12487. </td>
  12488. </tr>
  12489. </table>
  12490. </ul></ul>
  12491. <ul><ul>
  12492. <table>
  12493. <tr>
  12494. <td>
  12495. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyYearLast</code> : </li></td><td>Energieverbrauch in kWh des vorherigen Kalenderjahres.<BR>
  12496. </td></tr>
  12497. </td>
  12498. </tr>
  12499. </table>
  12500. </ul></ul>
  12501. <ul><ul>
  12502. <table>
  12503. <tr>
  12504. <td>
  12505. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_FinanceReserve</code> : </li></td><td>Finanzielle Reserve basierend auf den Abschlagszahlungen die jeden Monat an den Elektrizit&auml;tsversorger gezahlt werden. Bei negativen Werten ist von einer Nachzahlung auszugehen.<BR>
  12506. </td></tr>
  12507. </td>
  12508. </tr>
  12509. </table>
  12510. </ul></ul>
  12511. <ul><ul>
  12512. <table>
  12513. <tr>
  12514. <td>
  12515. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_MonthMeterReading</code> : </li></td><td>Anzahl der Monate seit der letzten Zählerablesung. Der Monat der Zählerablesung ist der erste Monat = 1.<BR>
  12516. </td></tr>
  12517. </td>
  12518. </tr>
  12519. </table>
  12520. </ul></ul>
  12521. <ul><ul>
  12522. <table>
  12523. <tr>
  12524. <td>
  12525. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_PowerCurrent</code> : </li></td><td>Aktuelle elektrische Leistung. (Mittelwert zwischen aktueller und letzter Messung)<BR>
  12526. </td></tr>
  12527. </td>
  12528. </tr>
  12529. </table>
  12530. </ul></ul>
  12531. <ul><ul>
  12532. <table>
  12533. <tr>
  12534. <td>
  12535. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_PowerDayAver</code> : </li></td><td>Mittlere elektrische Leistung seit Mitternacht.<BR>
  12536. </td></tr>
  12537. </td>
  12538. </tr>
  12539. </table>
  12540. </ul></ul>
  12541. <ul><ul>
  12542. <table>
  12543. <tr>
  12544. <td>
  12545. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_PowerDayMax</code> : </li></td><td>Maximale elektrische Leistungsaufnahme seit Mitternacht.<BR>
  12546. </td></tr>
  12547. </td>
  12548. </tr>
  12549. </table>
  12550. </ul></ul>
  12551. <ul><ul>
  12552. <table>
  12553. <tr>
  12554. <td>
  12555. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_PowerDayMin</code> : </li></td><td>Minimale elektrische Leistungsaufnahme seit Mitternacht.<BR>
  12556. </td></tr>
  12557. </td>
  12558. </tr>
  12559. </table>
  12560. </ul></ul>
  12561. </ul>
  12562. <p><a name="EleroDrive"></a>
  12563. <h3>EleroDrive</h3>
  12564. <ul>
  12565. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12566. hier: <a href='commandref.html#EleroDrive'>EleroDrive</a><br/>
  12567. </ul>
  12568. <a name="EleroStick"></a>
  12569. <h3>EleroStick</h3>
  12570. <ul>
  12571. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12572. hier: <a href='commandref.html#EleroStick'>EleroStick</a><br/>
  12573. </ul>
  12574. <a name="EleroSwitch"></a>
  12575. <h3>EleroSwitch</h3>
  12576. <ul>
  12577. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12578. hier: <a href='commandref.html#EleroSwitch'>EleroSwitch</a><br/>
  12579. </ul>
  12580. <a name="EnOcean"></a>
  12581. <h3>EnOcean</h3>
  12582. <ul>
  12583. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12584. hier: <a href='commandref.html#EnOcean'>EnOcean</a><br/>
  12585. </ul>
  12586. <a name="FBAHA"></a>
  12587. <h3>FBAHA</h3>
  12588. <div class='langLinks'>[<a href='commandref.html#FBAHA'>EN</a> DE]</div>
  12589. <ul>
  12590. <br>Achtung: ab Fritz!OS 6.90 ist der ben&ouml;tigte Dienst deaktiviert,
  12591. bitte den Nachfolger FBAHAHTTP verwenden.<br>
  12592. Dieses Modul verbindet sich mit dem AHA (AVM Home Automation) Server auf
  12593. einem FRITZ!Box. Es dient als "physikalisches" Gegenst&uuml;ck zum <a
  12594. href="#FBDECT">FBDECT</a> Modul. Als erstes muss der Zugang zu diesen Daten
  12595. in der FRITZ!Box Web-Oberfl&auml;che aktiviert werden.
  12596. <br><br>
  12597. <a name="FBAHAdefine"></a>
  12598. <b>Define</b>
  12599. <ul>
  12600. <code>define &lt;name&gt; FBAHA &lt;device&gt;</code>
  12601. <br>
  12602. <br>
  12603. &lt;host&gt; ist normalerweise die Adresse der FRITZ!Box, wo das AHA Server
  12604. l&auml;uft (fritz.box oder localhost), &lt;port&gt; ist 2002.
  12605. &lt;device&gt; is entweder a eine Kombianation aus &lt;host&gt;:&lt;port&gt;,
  12606. wobei &lt;host&gt; die Adresse der FRITZ!Box ist (localhost AUF dem
  12607. FRITZ.BOX) und &lt;port&gt; 2002 ist, oder
  12608. UNIX:SEQPACKET:/var/tmp/me_avm_home_external.ctl, wobei das nur fuer
  12609. FHEM@FRITZ!BOX zur Verf&uuml;gung steht. Mit FRITZ!OS 5.50 steht auch der
  12610. Netzwerkport zur Verf&uuml;gung, auf manchen Laborvarianten nur das UNIX
  12611. socket.<br>
  12612. Beispiel:
  12613. <ul>
  12614. <code>define fb1 FBAHA fritz.box:2002</code><br>
  12615. <code>define fb1 FBAHA UNIX:SEQPACKET:/var/tmp/me_avm_home_external.ctl</code><br>
  12616. </ul>
  12617. </ul>
  12618. <br>
  12619. <a name="FBAHAset"></a>
  12620. <b>Set</b>
  12621. <ul>
  12622. <li>createDevs<br>
  12623. legt FHEM Ger&auml;te an f&uuml;r jedes auf dem AHA-Server gefundenen DECT
  12624. Eintrag, siehe auch "get devList".
  12625. </li>
  12626. <li>reopen<br>
  12627. Schlie&szlig;t und &ouml;ffnet die Verbindung zum AHA Server. Nur f&uuml;r
  12628. debugging.
  12629. </li>
  12630. <li>reregister<br>
  12631. Gibt den AHA handle frei, und registriert sich erneut beim AHA Server. Nur
  12632. f&uuml;r debugging.
  12633. </li>
  12634. </ul>
  12635. <br>
  12636. <a name="FBAHAget"></a>
  12637. <b>Get</b>
  12638. <ul>
  12639. <li>devList<br>
  12640. liefert die Liste aller DECT-Eintr&auml;ge der AHA Server zur&uuml;ck, mit
  12641. einem kurzen Info.
  12642. </li>
  12643. </ul>
  12644. <br>
  12645. <a name="FBAHAattr"></a>
  12646. <b>Attributes</b>
  12647. <ul>
  12648. <li><a href="#dummy">dummy</a></li>
  12649. </ul>
  12650. <br>
  12651. <a name="FBAHAevents"></a>
  12652. <b>Generierte Events:</b>
  12653. <ul>
  12654. <li>UNDEFINED FBDECT_$ahaName_${NR} FBDECT $id"
  12655. </li>
  12656. </ul>
  12657. <br>
  12658. Da manchmal die FRITZ!Box die interne Nummer der FBDECT Ger&auml;te
  12659. neu vergibt, werden beim Verbindungsaufbau zum AHA Server die gespeicherten
  12660. Namen (FBNAME) mit dem aktuellen Wert verglichen. Damit das funktioniert,
  12661. m&uuml;ssen alle FBDECT Ger&auml;te auf dem FRITZ!Box einen eindeutigen Namen
  12662. bekommen, und in FHEM muss f&uuml;r alle Ger&auml;te "get FBDECTDEVICE
  12663. devInfo" ausgef&uuml;hrt werden, um FBNAME als Reading zu speichern.<br>
  12664. </ul>
  12665. <p><a name="FBAHAHTTP"></a>
  12666. <h3>FBAHAHTTP</h3>
  12667. <ul>
  12668. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  12669. hier: <a href='commandref.html#FBAHAHTTP'>FBAHAHTTP</a><br/>
  12670. </ul>
  12671. <a name="FBDECT"></a>
  12672. <h3>FBDECT</h3>
  12673. <div class='langLinks'>[<a href='commandref.html#FBDECT'>EN</a> DE]</div>
  12674. <ul>
  12675. Dieses Modul wird verwendet, um AVM FRITZ!DECT Ger&auml;te via FHEM zu
  12676. steuern, siehe auch das <a href="#FBAHA">FBAHA</a> oder <a
  12677. href="#FBAHAHTTP">FBAHAHTTP</a> Modul f&uuml;r die Anbindung an das FRITZ!Box.
  12678. <br><br>
  12679. <a name="FBDECTdefine"></a>
  12680. <b>Define</b>
  12681. <ul>
  12682. <code>define &lt;name&gt; FBDECT [&lt;FBAHAname&gt;:]&lt;id&gt; props</code>
  12683. <br>
  12684. <br>
  12685. Beispiel:
  12686. <ul>
  12687. <code>define lampe FBDECT 16 switch,powerMeter</code><br>
  12688. </ul>
  12689. <b>Achtung:</b>FBDECT Eintr&auml;ge werden normalerweise per
  12690. <a href="#autocreate">autocreate</a> angelegt. Falls sie die zugeordnete
  12691. FBAHA oder FBAHAHTTP Instanz umbenennen, dann muss die FBDECT Definition
  12692. manuell angepasst werden.
  12693. </ul>
  12694. <br>
  12695. <br
  12696. <a name="FBDECTset"></a>
  12697. <b>Set</b>
  12698. <ul>
  12699. <li>on/off<br>
  12700. Ger&auml;t einschalten bzw. ausschalten.</li>
  12701. <li>desired-temp &lt;value&gt;<br>
  12702. Gew&uuml;nschte Temperatur beim Comet DECT setzen (nur mit FBAHAHTTP als
  12703. IODev).
  12704. </li>
  12705. <li>
  12706. Die <a href="#setExtensions">set extensions</a> werden
  12707. unterst&uuml;tzt.
  12708. </li>
  12709. <li>msgInterval &lt;sec&gt;<br>
  12710. Anzahl der Sekunden zwischen den Sensornachrichten (nur mit FBAHA als
  12711. IODev).
  12712. </li>
  12713. </ul>
  12714. <br>
  12715. <a name="FBDECTget"></a>
  12716. <b>Get</b>
  12717. <ul>
  12718. <li>devInfo<br>
  12719. meldet Ger&auml;te-Informationen (nur mit FBAHA als IODev)</li>
  12720. </ul>
  12721. <br>
  12722. <a name="FBDECTattr"></a>
  12723. <b>Attribute</b>
  12724. <ul>
  12725. <li><a href="#IODev">IODev</a></li>
  12726. <li><a href="#disable">disable</a></li>
  12727. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  12728. <li><a href="#do_not_notify">do_not_notify</a></li>
  12729. <li><a href="#ignore">ignore</a></li>
  12730. <li><a href="#dummy">dummy</a></li>
  12731. <li><a href="#showtime">showtime</a></li>
  12732. <li><a href="#model">model</a></li>
  12733. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  12734. </ul>
  12735. <br>
  12736. <a name="FBDECTevents"></a>
  12737. <b>Generierte events:</b>
  12738. <ul>
  12739. <li>on</li>
  12740. <li>off</li>
  12741. <li>set_on</li>
  12742. <li>set_off</li>
  12743. <li>current: $v A</li>
  12744. <li>voltage: $v V</li>
  12745. <li>power: $v W</li>
  12746. <li>energy: $v Wh</li>
  12747. <li>powerFactor: $v"</li>
  12748. <li>temperature: $v C ([measured|corrected])</li>
  12749. <li>options: uninitialized</li>
  12750. <li>options: powerOnState:[on|off|last],lock:[none,webUi,remoteFb,button]</li>
  12751. <li>control: disabled</li>
  12752. <li>control: on power < $v delay:$d sec do:state [on|off]</li>
  12753. <li>relaytimes: disabled</li>
  12754. <li>relaytimes: HEX</li>
  12755. </ul>
  12756. </ul>
  12757. <p><a name="FB_CALLLIST"></a>
  12758. <h3>FB_CALLLIST</h3>
  12759. <div class='langLinks'>[<a href='commandref.html#FB_CALLLIST'>EN</a> DE]</div>
  12760. <ul>
  12761. Das FB_CALLLIST Modul erstellt eine Anrufliste f&uuml;r eine konfigurierte <a href="#FB_CALLMONITOR">FB_CALLMONITOR</a> Definition.
  12762. Es speichert alle Anrufe und zeigt sie in einer historischen Tabelle an.
  12763. <br><br>
  12764. Es wird eine bereits konfigurierte FB_CALLMONITOR Definition ben&ouml;tigt, von der FB_CALLLIST die Events entsprechend verarbeiten kann.<br><br>
  12765. Abh&auml;ngig von der Konfiguration der Attribute wird der Status als Icon oder als Textzeichen ausgegeben.
  12766. Um die Icons korrekt anzeigen zu k&ouml;nnen, muss das openautomation Icon-Set in der entsprechenden FHEMWEB-Instanz konfiguriert sein (siehe dazu FHEMWEB Attribut <a href="#iconPath">iconPath</a>).
  12767. <br><br>
  12768. Die Icons haben verschiedene Farben:<br><br>
  12769. <ul>
  12770. <li><font color="blue"><b>blau</b></font> - Eingehender Anruf (aktiv oder beendet)</li>
  12771. <li><font color="green"><b>gr&uuml;n</b></font> - Ausgehender Anruf (aktiv oder beendet))</li>
  12772. <li><font color="red"><b>rot</b></font> - Verpasster Anruf (eingehend)</li>
  12773. </ul>
  12774. <br>
  12775. Falls keine Icons verwendet werden sollen (siehe Attribut <a href="#FB_CALLLIST_show-icons">show-icons</a>), wird der Status wie folgt angezeigt:<br><br>
  12776. <ul>
  12777. <li><code><b>&lt;= ((o))</b></code></td><td> - Ausgehender Anruf (klingelt)</li>
  12778. <li><code><b>=&gt; ((o))</b></code></td><td> - Eingehender Anruf (klingelt)</li>
  12779. <br>
  12780. <li><code><b>&lt;= [=]</b></code></td><td> - Ausgehender Anruf (laufendes Gespr&auml;ch)</li>
  12781. <li><code><b>=&gt; [=]</b></code></td><td> - Eingehender Anruf (laufendes Gespr&auml;ch)</li>
  12782. <br>
  12783. <li><code><b>&lt;= X</b></code></td><td> - Ausgehender, erfolgloser Anruf (Gegenseite nicht abgenommen)</li>
  12784. <li><code><b>=&gt; X</b></code></td><td> - Eingehender, erfolgloser Anruf (Verpasster Anruf)</li>
  12785. <br>
  12786. <li><code><b>=&gt; O_O</b></code></td><td> - Eingehender Anruf, der durch einen Anrufbeantworter entgegen genommen wurde</li>
  12787. <br>
  12788. <li><code><b>&lt;=</b></code></td><td> - Ausgehender Anruf (beendet)</li>
  12789. <li><code><b>=&gt;</b></code></td><td> - Eingehender Anruf (beendet)</li>
  12790. </ul>
  12791. <br>
  12792. <a name="FB_CALLLIST_define"></a>
  12793. <b>Definition</b>
  12794. <ul>
  12795. <code>define &lt;Name&gt; FB_CALLLIST &lt;FB_CALLMONITOR Name&gt;</code><br>
  12796. </ul>
  12797. <br>
  12798. <a name="FB_CALLLIST_set"></a>
  12799. <b>Set-Kommandos</b><br>
  12800. <ul>
  12801. <li><b>clear</b> - l&ouml;scht die gesamte Anrufliste</li>
  12802. </ul>
  12803. <br>
  12804. <a name="FB_CALLLIST_get"></a>
  12805. <b>Get</b><br>
  12806. <ul>
  12807. N/A
  12808. </ul>
  12809. <br>
  12810. <a name="FB_CALLLIST_attr"></a>
  12811. <b>Attributes</b><br><br>
  12812. <ul>
  12813. <li><a href="#do_not_notify">do_not_notify</a></li>
  12814. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  12815. <br>
  12816. <li><a name="FB_CALLLIST_answMachine-is-missed-call">answMachine-is-missed-call</a> 0,1</li>
  12817. Sofern aktiviert, werden Anrufe, welche durch einen internen Anrufbeantworter beantwortet werden, als "verpasster Anruf" gewertet. Diese Funktionalit&auml;t ist nur relevant, wenn <a href="#FB_CALLLIST_list-type">list-type</a> auf "missed-call" gesetzt ist.
  12818. <br><br>
  12819. M&ouml;gliche Werte: 0 =&gt; deaktiviert, 1 =&gt; aktiviert (Anrufbeantworter gilt als "verpasster Anruf").<br>
  12820. Standardwert ist 0 (deaktiviert)<br><br>
  12821. <li><a name="FB_CALLLIST_create-readings">create-readings</a> 0,1</li>
  12822. Sofern aktiviert, werden f&uuml;r alle sichtbaren Anrufe in der Liste entsprechende Readings und Events erzeugt.
  12823. Es wird empfohlen das Attribut <a href="#event-on-change-reading">event-on-change-reading</a> auf den Wert <code>.*</code> zu stellen um die hohe Anzahl an Events in bestimmten F&auml;llen zu minimieren.<br><br>
  12824. M&ouml;gliche Werte: 0 =&gt; keine Readings erstellen, 1 =&gt; Readings und Events werden erzeugt.<br>
  12825. Standardwert ist 0 (keine Readings erstellen)<br><br>
  12826. <li><a name="FB_CALLLIST_connection-mapping">connection-mapping</a> &lt;hash&gt;</li>
  12827. Definiert eine eigene Zuordnung der Endger&auml;te (Reading: internal_connection) zu eigenen Bezeichnungen. Die Zuordnung erfolgt &uuml;ber eine Hash-Struktur.<br><br>
  12828. z.B.<br>
  12829. <ul>
  12830. <code>attr &lt;name&gt; connection-mapping {'DECT_1' =&gt; 'Mobilteil K&uuml;che', 'FON1' =&gt; 'Fax', 'Answering_Machine_1' =&gt; 'Anrufbeantworter'}</code>
  12831. </ul><br>
  12832. Die jeweils zugeordnete Bezeichnung wird in der Anrufliste dann entsprechend angezeigt anstatt des originalen Werten von FB_CALLMONITOR.
  12833. <br><br>
  12834. Standardwert ist <i>nicht gesetzt</i> (Keine Zuordnung, es werden die Originalwerte verwendet)
  12835. <br><br>
  12836. <li><a name="FB_CALLLIST_disable">disable</a> 0,1,2,3</li>
  12837. Optionales Attribut zur Deaktivierung der Anrufliste. Sofern aktiviert, werden keine Anruf-Events mehr verarbeitet und die Liste nicht weiter aktualisiert. Je nach gesetztem Wert verh&auml;lt sich FB_CALLLIST unterschiedlich.
  12838. <br><br>
  12839. M&ouml;gliche Werte:<ul>
  12840. <li>0 =&gt; Anrufliste ist aktiv, verarbeitet Events und aktualisiert die Darstellung kontinuierlich.</li>
  12841. <li>1 =&gt; Events werden NICHT verarbeitet. Die Darstellung wird NICHT aktualisiert (bleibt wie sie ist).</li>
  12842. <li>2 =&gt; Events werden NICHT verarbeitet. Die Darstellung zeigt nur "disabled" an (keine Eintr&auml;ge mehr).</li>
  12843. <li>3 =&gt; Events werden NICHT verarbeitet. Die Liste wird NICHT mehr angezeigt.</li>
  12844. </ul><br>
  12845. Standardwert ist 0 (aktiv)<br><br>
  12846. <li><a name="FB_CALLLIST_disabledForIntervals">disabledForIntervals</a> HH:MM-HH:MM HH:MM-HH:MM...</li>
  12847. Optionales Attribut zur Deaktivierung der Anrufliste innerhalb von bestimmten Zeitintervallen.
  12848. Das Argument ist eine Leerzeichen-getrennte Liste von Minuszeichen-getrennten HH:MM Paaren (Stunde : Minute).
  12849. Falls die aktuelle Uhrzeit zwischen diese Werte f&auml;llt, dann wird die Ausf&uuml;hrung, wie bei <a href="#FB_CALLLIST_disable">disable</a> gleich 1, ausgesetzt.
  12850. Statt HH:MM kann man auch HH oder HH:MM:SS angeben.<br><br>
  12851. Um einen Intervall um Mitternacht zu spezifizieren, muss man zwei einzelne Intervalle angeben, z.Bsp.:
  12852. <pre>23:00-24:00 00:00-01:00</pre>
  12853. Standardwert ist <i>nicht gesetzt</i> (dauerhaft aktiv)<br><br>
  12854. <li><a name="FB_CALLLIST_processEventsWhileDisabled">processEventsWhileDisabled</a> 0,1</li>
  12855. Sofern gesetzt, werden Events weiterhin verarbeitet, selbst wenn FB_CALLLIST deaktiviert ist (siehe <a href="FB_CALLLIST_disable">disabled</a> und <a href="FB_CALLLIST_disabledForIntervals">disabledForIntervals</a>).
  12856. Sobald FB_CALLLIST wieder aktiviert wurde, stehen s&auml;mtliche Anrufe, w&auml;hrend FB_CALLLIST deaktiviert war, zur Verf&uuml;gung.
  12857. <br><br>
  12858. M&ouml;gliche Werte: 0 =&gt; keine Eventverabeitung wenn FB_CALLLIST deaktiviert ist, 1 =&gt; Events werden trotz deaktiviert FB_CALLLIST intern weiterhin verarbeitet.<br>
  12859. Standardwert ist 0 (keine Eventverabeitung wenn deaktiviert)<br><br>
  12860. <li><a name="FB_CALLLIST_expire-calls-after">expire-calls-after</a> &lt;Zeitfenster&gt;</li>
  12861. Optionales Attribut um beendete Anrufe nach einem angegeben Zeitfenster automatisch aus der Anrufliste zu l&ouml;schen.
  12862. Sobald ein beendetes Gespr&auml;ch &auml;lter ist als das angegebene Zeitfenster, wird es automatisch aus der Liste entfernt.
  12863. <br><br>Ein Zeitfenster kann wie folgt angegeben werden:
  12864. <ul>
  12865. <li>als Minuten: <code>1 minute</code> oder <code>30 minutes</code></li>
  12866. <li>als Stunden: <code>1 hour</code> oder <code>12 hours</code></li>
  12867. <li>als Tage: <code>1 day</code> oder <code>5 days</code></li>
  12868. <li>als Monate: <code>1 month</code> oder <code>6 months</code> (ein Monat entspricht hierbei 30 Tagen month is here equal to 30 days)</li>
  12869. <li>als Jahr: <code>1 year</code> oder <code>2 years</code> (ein Jahr entspricht hierbei 365 Tagen)</li>
  12870. </ul>
  12871. <br>
  12872. <b>WICHTIG:</b> Es wird hierbei der Endezeitpunkt eines Gespr&auml;chs betrachtet, nicht der Beginn des Gespr&auml;chs.<br><br>
  12873. Wenn keine Einheit angegeben ist, wird die angegebene Zahl als Sekunden interpretiert. Es k&ouml;nnen auch Fliesskommazahlen mit einem Punkt als Kommastelle angegeben werden (z.B. <code>0.5 day</code>).
  12874. Der Wert <code>0</code> bedeutet, das keine Gespr&auml;che nach einem gewissen Zeitfenster gel&ouml;scht werden.<br><br>
  12875. Standardwert ist 0 (keine Gespr&auml;che werden nach einem Zeitfenster gel&ouml;scht)<br><br>
  12876. <li><a name="FB_CALLLIST_external-mapping">external-mapping</a> &lt;hash&gt;</li>
  12877. Definiert eine eigene Zuordnung der externen Anschlussbezeichnung (Reading: external_connection) zu eigenen Bezeichnungen. Die Zuordnung erfolgt &uuml;ber eine Hash-Struktur.<br><br>
  12878. z.B.<br>
  12879. <ul>
  12880. <code>attr &lt;name&gt; external-mapping {'ISDN' =&gt; 'Festnetz', 'SIP0' =&gt; 'Anbieter A', 'SIP1' =&gt; 'Anbieter B'}</code>
  12881. </ul><br>
  12882. Die jeweils zugeordnete Bezeichnung wird in der Anrufliste dann entsprechend angezeigt anstatt des originalen Werten von FB_CALLMONITOR.
  12883. <br><br>
  12884. Standardwert ist <i>nicht gesetzt</i> (Keine Zuordnung, es werden die Originalwerte verwendet)
  12885. <br><br>
  12886. <li><a name="FB_CALLLIST_icon-mapping">icon-mapping</a> &lt;hash&gt;</li>
  12887. Definiert eine eigene Zuordnung eines Anrufstatus zu einem Icon. Die Zuordnung erfolgt &uuml;ber eine Hash-Struktur.<br><br>
  12888. z.B.<br>
  12889. <ul>
  12890. <code>attr &lt;name&gt; icon-mapping {'incoming.connected' =&gt; 'phone_ring_in@yellow', 'outgoing.missed' =&gt; 'phone_missed_out@red'}</code>
  12891. </ul><br>
  12892. Das entsprechende Icon wird an Stelle des Original-Icons bzw. Text verwendet. Sofern SVG-basierte Icons verwendet werden, kann man die Farbe optional definieren durch das Anf&uuml;gen via @ mit Name oder einem HTML Farbcode.
  12893. <br><br>
  12894. M&ouml;gliche Werte und ihre Standard-Icons sind:<br><br>
  12895. <ul>
  12896. <li><b>incoming.ring</b> =&gt; phone_ring@blue</li>
  12897. <li><b>outgoing.ring</b> =&gt; phone_ring@green</li>
  12898. <li><b>incoming.connected</b> =&gt; phone_ring_in@blue</li>
  12899. <li><b>outgoing.connected</b> =&gt; phone_ring_in@green</li>
  12900. <li><b>incoming.missed</b> =&gt; phone_missed_in@red</li>
  12901. <li><b>outgoing.missed</b> =&gt; phone_missed_out@green</li>
  12902. <li><b>incoming.done</b> =&gt; phone_call_end_in@blue</li>
  12903. <li><b>outgoing.done</b> =&gt; phone_call_end_out@green</li>
  12904. <li><b>incoming.tam</b> =&gt; phone_answering@blue</li>
  12905. </ul>
  12906. <br><br>
  12907. Standardwert ist <i>nicht gesetzt</i> (Keine Zuordnung, es werden die Standard-Icons verwendet, sofern Icons akitivert sind)
  12908. <br><br>
  12909. <li><a name="FB_CALLLIST_internal-number-filter">internal-number-filter</a> &lt;hash&gt;</li>
  12910. Dieses Attribut erm&ouml;glicht das Filtern der angezeigten Anrufe auf bestimmte interne Rufnummern sowie das Zuordnen von Namen zu den internen Rufnummern.<br><br>
  12911. Es ist m&ouml;glich eine kommaseparierte Liste an internen Rufnummern anzugeben oder eine Hash-Tabelle in der man den internen Rufnummern eine eigene Bezeichnung zuweist.
  12912. <br>
  12913. <br>
  12914. z.B.<br>
  12915. <ul>
  12916. <code>attr &lt;name&gt; internal-number-filter 304050,304060<br><br>
  12917. attr &lt;name&gt; internal-number-filter {'304050' =&gt; 'geschftl.', '304060' =&gt; 'privat'}</code>
  12918. </ul>
  12919. <br>
  12920. <b>Wichtig:</b> Je nach Telefonanbieter kann der Wert die Ortsvorwahl enthalten. Die Rufnummer muss genauso angegeben werden, wie sie ohne eine Zuordnung in der Anrufliste auftaucht.<br><br>
  12921. Wenn dieses Attribut gesetzt ist, werden nur die eingestellten Rufnummern in der Liste angezeigt.
  12922. <br><br>
  12923. Standardwert ist <i>nicht gesetzt</i> (alle internen Rufnummern werden angezeigt)
  12924. <br><br>
  12925. <li><a name="FB_CALLLIST_list-order">list-order</a> descending,ascending</li>
  12926. Gibt an ob der neueste Anruf in der ersten Zeile (aufsteigend =&gt; descending) oder in der letzten Zeile (absteigend =&gt; ascending) in der Liste angezeigt werden soll. Dementsprechend rollt die Liste dann nach oben oder unten durch.<br><br>
  12927. Standardwert ist "descending" (absteigend, neuester Anruf in der ersten Zeile)<br><br>
  12928. <li><a name="FB_CALLLIST_list-type">list-type</a> all,incoming,outgoing,missed-calls,completed,active</li>
  12929. Ist dieses Attribut gesetzt, werden nur bestimmte Typen von Anrufen in der Liste angezeigt:<br><br>
  12930. <ul>
  12931. <li><code>all</code> - Alle Anrufe werden angezeigt</li>
  12932. <li><code>incoming</code> - Alle eingehenden Anrufe werden angezeigt (aktive und abgeschlossene)</li>
  12933. <li><code>outgoing</code> - Alle ausgehenden Anrufe werden angezeigt (aktive und abgeschlossene)</li>
  12934. <li><code>missed-calls</code> - Alle eingehenden, verpassten Anrufe werden angezeigt.</li>
  12935. <li><code>completed</code> - Alle abgeschlossenen Anrufe werden angezeigt (eingehend und ausgehend)</li>
  12936. <li><code>active</code> - Alle aktuell laufenden Anrufe werden angezeigt (eingehend und ausgehend)</li>
  12937. </ul><br>
  12938. Standardwert ist "all" (alle Anrufe anzeigen)<br><br>
  12939. <li><a name="FB_CALLLIST_no-heading">no-heading</a> 0,1</li>
  12940. Sofern aktiviert, wird die &Uuml;berschriftenzeile ausserhalb der Liste inkl. Link auf die Detail-Seite der aktuellen Definition ausgeblendet.<br><br>
  12941. M&ouml;gliche Werte: 0 =&gt; &Uuml;berschriftenzeile wird angezeigt , 1 =&gt; &Uuml;berschriftenzeile wird ausgeblendet<br>
  12942. Standardwert ist 1 (&Uuml;berschriftenzeile wird angezeigt)<br><br>
  12943. <li><a name="FB_CALLLIST_no-table-header">no-table-header</a> 0,1</li>
  12944. Sofern aktiviert, wird die Kopfzeile der Tabelle f&uuml;r die aktuelle Definition ausgeblendet.<br><br>
  12945. M&ouml;gliche Werte: 0 =&gt; Kopfzeile wird angezeigt , 1 =&gt; Kopfzeile wird ausgeblendet<br>
  12946. Standardwert ist 1 (Kopfzeile wird angezeigt)<br><br>
  12947. <li><a name="FB_CALLLIST_number-cmd">number-cmd</a> &lt;Befehl&gt;</li>
  12948. Kann gesetzt werden, um ein FHEM-Befehl oder Perl-Code (in geschweiften Klammern: { ... } ) auszuf&uuml;hren, wenn man auf eine Rufnummer in der Anrufliste klickt.
  12949. Der Platzhalter <code>$NUMBER</code> wird dabei mit der entsprechenden Rufnummer der jeweiligen Zeile ersetzt.
  12950. <br><br>
  12951. Damit kann man beispielsweise einen R&uuml;ckruf starten.
  12952. e.g.:<br><br>
  12953. <ul>
  12954. <li><code>set FRITZBOX call $NUMBER</code></li>
  12955. <li><code>{dialNumber("$NUMBER")}</code></li>
  12956. </ul>
  12957. <br>
  12958. Sofern nicht gesetzt, wird kein Link angezeigt.<br><br>
  12959. <li><a name="FB_CALLLIST_number-of-calls">number-of-calls</a> 1..40</li>
  12960. Setzt die maximale Anzahl an Eintr&auml;gen in der Anrufliste. Sollte die Anrufliste voll sein, wird das &auml;lteste Gespr&auml;ch gel&ouml;scht.<br><br>
  12961. Standardwert sind 5 Eintr&auml;ge<br><br>
  12962. <li><a name="FB_CALLLIST_show-icons">show-icons</a> 0,1</li>
  12963. Im Normalfall wird der Status eines jeden Anrufs mit einem Icon angezeigt. Dazu muss das openautomation Icon-Set im iconpath-Attribut der entsprechenden FHEMWEB Instanz konfiguriert sein. Sollte man keine Icons w&uuml;nschen, so kann man diese hiermit abschalten. Der Status wird dann mittels Textzeichen dargestellt.<br><br>
  12964. M&ouml;gliche Werte: 0 =&gt; keine Icons , 1 =&gt; benutze Icons<br>
  12965. Standardwert ist 1 (benutze Icons)<br><br>
  12966. <li><a name="FB_CALLLIST_time-format-string">time-format-string</a> &lt;string&gt;</li>
  12967. Definiert einen Formatierungs-String welcher benutzt wird um die Zeitangaben in der Anrufliste nach eigenen W&uuml;nschen anzupassen. Es stehen hier eine ganze Reihe an Platzhaltern zur Verf&uuml;gung um die einzelnen Elemente einer Datums-/Zeitangabe einzeln zu setzen. Die m&ouml;glichen Werte sind alle Standard POSIX strftime() Platzhalter. G&auml;ngige Platzhalter sind:<br><br>
  12968. <ul>
  12969. <li><code>%a</code> - Der abgek&uuml;rzte Wochentagname</li>
  12970. <li><code>%b</code> - Der abgek&uuml;rzte Monatsname</li>
  12971. <li><code>%S</code> - Die Sekunden als Dezimalzahl</li>
  12972. <li><code>%M</code> - Die Minuten als Dezimalzahl</li>
  12973. <li><code>%H</code> - Die Stunden als Dezimalzahl</li>
  12974. <li><code>%d</code> - Der Tag im Monat als Dezimalzahl</li>
  12975. <li><code>%m</code> - Der Monat als Dezimalzahl</li>
  12976. <li><code>%Y</code> - Das Jahr als Dezimalzahl (4-stellig).</li>
  12977. </ul><br>
  12978. Es gibt hierf&uuml;r noch weitere Platzhalter. Weitere Informationen dazu findet man in der Manpage von <code>strftime()</code> oder der Dokumentation des entsprechenden Perl Interpreters.
  12979. <br><br>
  12980. Standardwert ist "%a, %d %b %Y %H:%M:%S" (entspricht "So, 07 Jun 2015 12:50:09")<br><br>
  12981. <li><a name="FB_CALLLIST_language">language</a> en,de</li>
  12982. Definiert die Sprache in der die Anrufliste angezeigt werden soll (Tabellenkopf, Datum). Die entsprechende Sprache muss auch im Betriebssystem installiert und unterst&uuml;tzt werden.<br><br>
  12983. M&ouml;gliche Werte: en =&gt; Englisch , de =&gt; Deutsch<br>
  12984. Standardwert ist en (Englisch)<br><br>
  12985. <li><a name="FB_CALLLIST_visible-columns">visible-columns</a> row,state,timestamp,name,number,internal,external,connection,duration</li>
  12986. Legt fest, welche Spalten in welcher Reihenfolge (von links nach rechts) in der Anrufliste angezeigt werden sollen.
  12987. Es m&uuml;ssen nicht alle verf&uuml;gbaren Spalten angezeigt werden.
  12988. Es kann auch eine Auswahl von einzelnen Spalten angezeigt werden.
  12989. <br><br>
  12990. Die m&ouml;glichen Werte repr&auml;sentieren die jeweilige Spalte.
  12991. Der Wert "row" steht f&uuml;r die Zeilennummer innerhalb der Liste.
  12992. <br><br>
  12993. M&ouml;gliche Werte: Eine Kombination der folgenden Werte in der gew&uuml;nschten Reihenfolge: <code>row,state,timestamp,name,number,internal,external,connection,duration</code><br>
  12994. Standardwert ist "row,state,timestamp,name,number,internal,external,connection,duration" (Anzeige aller Spalten)<br><br>
  12995. </ul>
  12996. <br>
  12997. <a name="FB_CALLLIST_events"></a>
  12998. <b>Generierte Events:</b><br><br>
  12999. <ul>
  13000. Dieses Modul generiert Readings/Events sofern das Attribut <a href="#FB_CALLLIST_create-readings">create-readings</a> aktiviert ist. Die Anzahl, sowie der Name der Readings ist von den gew&auml;hlten Spalten (Attribut: <a href="#FB_CALLLIST_visible-columns">visible-columns</a>), sowie der Anzahl der anzuzeigenden Anrufe abh&auml;ngig (Attribut: <a href="#FB_CALLLIST_number-of-calls">number-of-calls</a>).
  13001. </ul>
  13002. </ul>
  13003. <p><a name="FB_CALLMONITOR"></a>
  13004. <h3>FB_CALLMONITOR</h3>
  13005. <div class='langLinks'>[<a href='commandref.html#FB_CALLMONITOR'>EN</a> DE]</div>
  13006. <ul>
  13007. Das Modul FB_CALLMONITOR verbindet sich zu einer AVM FritzBox Fon und verarbeitet
  13008. Telefonie-<a href="#FB_CALLMONITOR_events">Ereignisse</a>.(eingehende &amp; ausgehende Telefonate)
  13009. <br><br>
  13010. Um dieses Modul nutzen zu k&ouml;nnen, muss der Callmonitor via Kurzwahl mit einem Telefon aktiviert werden.
  13011. .<br><br>
  13012. <ul>
  13013. <code>#96*5* - Callmonitor aktivieren<br>#96*4* - Callmonitor deaktivieren</code>
  13014. </ul>
  13015. <br>
  13016. Einfach die entsprechende Kurzwahl auf irgend einem Telefon eingeben, welches an die Fritz!Box angeschlossen ist.
  13017. Nach ca. 3 Sekunden kann man einfach wieder auflegen. Nun ist der Callmonitor aktiviert.
  13018. <br><br>
  13019. Sobald der Callmonitor auf der Fritz!Box aktiviert wurde erzeugt das Modul entsprechende Events (s.u.) f&uuml;r alle externen Anrufe. Interne Anrufe werden nicht durch den Callmonitor erfasst.
  13020. <br><br>
  13021. Dieses Modul funktioniert mit allen Fritz!Box Modellen, welche Telefonie unterst&uuml;tzen (Namenszusatz: Fon).
  13022. <br><br>
  13023. <a name="FB_CALLMONITOR_define"></a>
  13024. <b>Definition</b>
  13025. <ul>
  13026. <code>define &lt;name&gt; FB_CALLMONITOR &lt;IP-Addresse&gt;[:Port]</code><br>
  13027. <br>
  13028. Port 1012 ist der Standardport und muss daher nicht explizit angegeben werden.
  13029. <br>
  13030. </ul>
  13031. <br>
  13032. <a name="FB_CALLMONITOR_set"></a>
  13033. <b>Set-Kommandos</b>
  13034. <ul>
  13035. <li><b>reopen</b> - schliesst die Verbindung zur FritzBox und &ouml;ffnet sie erneut</li>
  13036. <li><b>rereadCache</b> - Liest den Cache aus der Datei neu ein (sofern konfiguriert, siehe dazu Attribut <a href="#FB_CALLMONITOR_reverse-search-cache-file">reverse-search-cache-file</a>)</li>
  13037. <li><b>rereadPhonebook</b> - Liest das Telefonbuch der FritzBox neu ein (per Datei, Telnet oder direkt lokal)</li>
  13038. <li><b>rereadTextfile</b> - Liest die nutzereigene Textdatei neu ein (sofern konfiguriert, siehe dazu Attribut <a href="#FB_CALLMONITOR_reverse-search-text-file">reverse-search-text-file</a>)</li>
  13039. <li><b>password</b> - speichert das FritzBox Passwort, welches f&uuml;r das Einlesen aller Telefonb&uuml;cher direkt von der FritzBox ben&ouml;tigt wird. Dieses Kommando ist nur verf&uuml;gbar, wenn ein Passwort ben&ouml;tigt wird um das Telefonbuch via Netzwerk einzulesen, siehe dazu Attribut <a href="#FB_CALLMONITOR_fritzbox-remote-phonebook">fritzbox-remote-phonebook</a>.</li>
  13040. </ul>
  13041. <br>
  13042. <a name="FB_CALLMONITOR_get"></a>
  13043. <b>Get-Kommandos</b>
  13044. <ul>
  13045. <li><b>search &lt;Rufnummer&gt;</b> - gibt den Namen der Telefonnummer zur&uuml;ck (aus Cache, Telefonbuch oder R&uuml;ckw&auml;rtssuche)</li>
  13046. <li><b>showPhonebookIds</b> - gibt eine Liste aller verf&uuml;gbaren Telefonb&uuml;cher auf der FritzBox zur&uuml;ck (nicht verf&uuml;gbar wenn das Telefonbuch via Telnet-Verbindung eingelesen wird)</li>
  13047. <li><b>showPhonebookEntries [Phonebook-ID]</b> - gibt eine Liste aller bekannten Telefonbucheintr&auml;ge, oder nur eines bestimmten Telefonbuchs, zur&uuml;ck (nur verf&uuml;gbar, wenn eine R&uuml;ckw&auml;rtssuche via Telefonbuch aktiviert ist)</li>
  13048. <li><b>showCacheEntries</b> - gibt eine Liste aller bekannten Cacheeintr&auml;ge zur&uuml;ck (nur verf&uuml;gbar, wenn die Cache-Funktionalit&auml;t der R&uuml;ckw&auml;rtssuche aktiviert ist))</li>
  13049. <li><b>showTextEntries</b> - gibt eine Liste aller Eintr&auml;ge aus der nutzereigenen Textdatei zur&uuml;ck (nur verf&uuml;gbar, wenn eine Textdatei als Attribut definiert ist))</li>
  13050. </ul>
  13051. <br>
  13052. <a name="FB_CALLMONITOR_attr"></a>
  13053. <b>Attribute</b><br><br>
  13054. <ul>
  13055. <li><a href="#do_not_notify">do_not_notify</a></li>
  13056. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  13057. <li><a name="FB_CALLMONITOR_disable">disable</a> 0,1</li>
  13058. Optionales Attribut zur Deaktivierung des Callmonitors. Es k&ouml;nnen dann keine Anruf-Events mehr erkannt und erzeugt werden.
  13059. <br><br>
  13060. M&ouml;gliche Werte: 0 =&gt; Callmonitor ist aktiv, 1 =&gt; Callmonitor ist deaktiviert.<br>
  13061. Standardwert ist 0 (aktiv)<br><br>
  13062. <li><a name="FB_CALLMONITOR_disabledForIntervals">disabledForIntervals</a> HH:MM-HH:MM HH:MM-HH-MM...</li>
  13063. Optionales Attribut zur Deaktivierung des Callmonitors innerhalb von bestimmten Zeitintervallen.
  13064. Das Argument ist eine Leerzeichen-getrennte Liste von Minuszeichen-getrennten HH:MM P&auml;rchen (Stunde : Minute).
  13065. Falls die aktuelle Uhrzeit zwischen diese Werte f&auml;llt, dann wird die Verarbeitung, wie bei <a href="#FB_CALLMONITOR_disable">disable</a>, ausgesetzt.
  13066. Statt HH:MM kann man auch HH oder HH:MM:SS angeben.<br><br>
  13067. Um einen Intervall um Mitternacht zu spezifizieren, muss man zwei einzelne Intervalle angeben, z.Bsp.:
  13068. <pre>23:00-24:00 00:00-01:00</pre>
  13069. Standardwert ist <i>nicht gesetzt</i> (dauerhaft aktiv)<br><br>
  13070. <li><a name="FB_CALLMONITOR_answMachine-is-missed-call">answMachine-is-missed-call</a> 0,1</li>
  13071. Sofern aktiviert, werden Anrufe, welche durch einen internen Anrufbeantworter beantwortet werden, als "unbeantworteter Anruf" gewertet (siehe Reading "missed_call" unter <a href="#FB_CALLMONITOR_events">Generated Events</a>).
  13072. <br><br>
  13073. M&ouml;gliche Werte: 0 =&gt; deaktiviert, 1 =&gt; aktiviert (Anrufbeantworter gilt als "unbeantworteter Anruf").<br>
  13074. Standardwert ist 0 (deaktiviert)<br><br>
  13075. <li><a name="FB_CALLMONITOR_reverse-search">reverse-search</a> (phonebook,dasoertliche.de,11880.com,search.ch,dasschnelle.at,herold.at)</li>
  13076. Aktiviert die R&uuml;ckw&auml;rtssuche der externen Rufnummer (bei eingehenden/ausgehenden Anrufen).
  13077. Dieses Attribut enth&auml;lt eine komma-separierte Liste mit allen Anbietern die f&uuml;r eine R&uuml;ckw&auml;rtssuche benutzt werden sollen.
  13078. Die R&uuml;ckw&auml;rtssuche pr&uuml;ft in der gegebenen Reihenfolge (von links nach rechts) ob der entsprechende Anbieter (Telefonbuch, Textdatei oder Internetanbieter) die Rufnummer aufl&ouml;sen k&ouml;nnen.
  13079. Das erste Resultat was dabei gefunden wird, wird als Ergebnis f&uuml;r die R&uuml;ckw&auml;rtssuche verwendet.
  13080. Es ist m&ouml;glich einen bestimmten Suchanbieter zu verwenden, welcher f&uuml;r die R&uuml;ckw&auml;rtssuche verwendet werden soll.
  13081. Der Anbieter "textfile" verwendet die nutzereigene Textdatei, sofern definiert (siehe Attribut reverse-search-text-file).
  13082. Der Anbieter "phonebook" verwendet das Telefonbuch der FritzBox (siehe Attribut reverse-search-phonebook-file oder fritzbox-remote-phonebook).<br><br>
  13083. Standardm&auml;&szlig;ig ist diese Funktion deaktiviert (nicht gesetzt)<br><br>
  13084. <li><a name="FB_CALLMONITOR_reverse-search-cache">reverse-search-cache</a> 0,1</li>
  13085. Wenn dieses Attribut gesetzt ist, werden alle Ergebisse von Internetanbietern in einem modul-internen Cache gespeichert
  13086. und alle existierenden Ergebnisse aus dem Cache genutzt anstatt eine erneute Anfrage bei einem Internet-Anbieter durchzuf&uuml;hren.
  13087. Der Cache ist immer an die Internetanbieter gekoppelt und speichert nur Ergebnisse von Internetanbietern.<br><br>
  13088. M&ouml;gliche Werte: 0 =&gt; deaktiviert , 1 =&gt; aktiviert<br>
  13089. Standardwert ist 0 (deaktiviert)<br><br>
  13090. <li><a name="FB_CALLMONITOR_reverse-search-cache-file">reverse-search-cache-file</a> &lt;Dateipfad&gt;</li>
  13091. Da der Cache nur im Arbeitsspeicher existiert, ist er nicht persistent und geht beim stoppen von FHEM verloren.
  13092. Mit diesem Parameter werden alle Cache-Ergebnisse in eine Textdatei geschrieben (z.B. /usr/share/fhem/telefonbuch.txt)
  13093. und beim n&auml;chsten Start von FHEM wieder in den Cache geladen und genutzt.
  13094. <br><br>
  13095. <li><a name="FB_CALLMONITOR_reverse-search-cache-file">reverse-search-text-file</a> &lt;Dateipfad&gt;</li>
  13096. L&auml;dt eine nutzereigene Textdatei welche eine eigene Namenszuordnungen f&uuml;r Rufnummern enth&auml;lt. Diese Datei enth&auml;lt zeilenweise komma-separierte Werte nach folgendem Schema:
  13097. <pre>
  13098. &lt;Nummer1&gt;,&lt;Name1&gt;
  13099. &lt;Nummer2&gt;,&lt;Name2&gt;
  13100. ...
  13101. &lt;NummerN&gt;,&lt;NameN&gt;
  13102. </pre>
  13103. Die Datei kann dabei auch Kommentar-Zeilen enthalten mit # vorangestellt. Sollte die Datei nicht existieren, wird sie durch FHEM erstellt.
  13104. <br><br>
  13105. <li><a name="FB_CALLMONITOR_reverse-search-phonebook-file">reverse-search-phonebook-file</a> &lt;Dateipfad&gt</li>
  13106. Mit diesem Attribut kann man optional den Pfad zu einer Datei angeben, welche ein Telefonbuch im FritzBox-Format (XML-Struktur) enth&auml;lt.
  13107. Dadurch ist es m&ouml;glich ein FritzBox-Telefonbuch zu verwenden, ohne das FHEM auf einer FritzBox laufen muss.
  13108. Sofern FHEM auf einer FritzBox l&auml;uft (und nichts abweichendes angegeben wurde), wird das interne File /var/flash/phonebook verwendet. Alternativ kann man das Telefonbuch in der FritzBox-Weboberfl&auml;che exportieren und dieses verwenden<br><br>
  13109. Standardwert ist /var/flash/phonebook (entspricht dem Pfad auf einer FritzBox)<br><br>
  13110. <li><a name="FB_CALLMONITOR_remove-leading-zero">remove-leading-zero</a> 0,1</li>
  13111. Wenn dieses Attribut aktiviert ist, wird die f&uuml;hrende Null aus der externen Rufnummer (bei eingehenden &amp; abgehenden Anrufen) entfernt. Dies ist z.B. notwendig bei Telefonanlagen.<br><br>
  13112. M&ouml;gliche Werte: 0 =&gt; deaktiviert , 1 =&gt; aktiviert<br>
  13113. Standardwert ist 0 (deaktiviert)<br><br>
  13114. <li><a name="FB_CALLMONITOR_unique-call-ids">unique-call-ids</a> 0,1</li>
  13115. Wenn dieses Attribut aktiviert ist, wird f&uuml;r jedes Gespr&auml;ch eine eineindeutige Identifizierungsnummer verwendet. Dadurch lassen sich auch bereits beendete Gespr&auml;che voneinander unterscheiden. Dies ist z.B. notwendig bei der Verarbeitung der Events durch eine Datenbank.<br><br>
  13116. M&ouml;gliche Werte: 0 =&gt; deaktiviert , 1 =&gt; aktiviert<br>
  13117. Standardwert ist 0 (deaktiviert)<br><br>
  13118. <li><a name="FB_CALLMONITOR_local-area-code">local-area-code</a> &lt;Ortsvorwahl&gt;</li>
  13119. Verwendet die gesetze Vorwahlnummer bei R&uuml;ckw&auml;rtssuchen von Ortsgespr&auml;chen (z.B. 0228 f&uuml;r Bonn)<br><br>
  13120. <li><a name="FB_CALLMONITOR_country-code">country-code</a> &lt;Landesvorwahl&gt;</li>
  13121. Die Landesvorwahl wird ben&ouml;tigt um Telefonbucheintr&auml;ge mit lokaler Landesvorwahl als Inlands-Rufnummern, als auch um Call-By-Call-Vorwahlen richtig zu erkennen (z.B. 0049 f&uuml;r Deutschland, 0043 f&uuml;r &Ouml;sterreich oder 001 f&uuml;r USA).<br><br>
  13122. Standardwert ist 0049 (Deutschland)<br><br>
  13123. <li><a name="FB_CALLMONITOR_check-deflection">check-deflections</a> 0,1</li>
  13124. Wenn dieses Attribut aktiviert ist, werden eingehende Anrufe gegen die konfigurierten Rufsperren-Regeln aus der FritzBox gepr&uuml;ft. Wenn ein Anruf auf eine dieser Regeln passt, wird der Anruf ignoriert und es werden keinerlei Readings/Events f&uuml;r diesen Anruf generiert. Dies funktioniert nur, wenn man das Telefonbuch aus der FritzBox via TR-064 einliest (siehe Attribute <a href="#FB_CALLMONITOR_fritzbox-remote-phonebook">fritzbox-remote-phonebook</a> und <a href="#FB_CALLMONITOR_fritzbox-remote-phonebook-via">fritzbox-remote-phonebook-via</a>).<br><br>
  13125. M&ouml;gliche Werte: 0 =&gt; deaktiviert , 1 =&gt; aktiviert<br>
  13126. Standardwert ist 0 (deaktiviert)<br><br>
  13127. <li><a name="FB_CALLMONITOR_fritzbox-remote-phonebook">fritzbox-remote-phonebook</a> 0,1</li>
  13128. Wenn dieses Attribut aktiviert ist, wird das FritzBox Telefonbuch direkt von der FritzBox gelesen. Dazu ist das FritzBox Passwort und je nach FritzBox Konfiguration auch ein Username notwendig, der in den entsprechenden Attributen konfiguriert sein muss.<br><br>
  13129. M&ouml;gliche Werte: 0 =&gt; deaktiviert , 1 =&gt; aktiviert<br>
  13130. Standardwert ist 0 (deaktiviert)<br><br>
  13131. <li><a name="FB_CALLMONITOR_fritzbox-remote-phonebook-via">fritzbox-remote-phonebook-via</a> tr064,web,telnet</li>
  13132. Setzt die Methode mit der das Telefonbuch von der FritzBox abgefragt werden soll. Bei der Methode "web", werden alle verf&uuml;gbaren Telefonb&uuml;cher (lokales sowie alle konfigurierten Online-Telefonb&uuml;cher) &uuml;ber die Web-Oberfl&auml;che eingelesen. Bei der Methode "telnet" wird eine Telnet-Verbindung zur FritzBox aufgebaut um das lokale Telefonbuch abzufragen (keine Online-Telefonb&uuml;cher). Dazu muss die Telnet-Funktion aktiviert sein (Telefon Kurzwahl: #96*7*). Bei der Methode "tr064" werden alle verf&uuml;gbaren Telefonb&uuml;cher &uuml;ber die TR-064 SOAP Schnittstelle ausgelesen. <br><br>
  13133. M&ouml;gliche Werte: tr064,web,telnet<br>
  13134. Standardwert ist "tr064" (Abfrage aller verf&uuml;gbaren Telefonb&uuml;cher &uuml;ber die TR-064-Schnittstelle)<br><br>
  13135. <li><a name="FB_CALLMONITOR_fritzbox-remote-phonebook-exclude">fritzbox-remote-phonebook-exclude</a> &lt;Liste&gt;</li>
  13136. Eine komma-separierte Liste von Telefonbuch-ID's oder Namen welche beim einlesen &uuml;bersprungen werden sollen. Dieses Attribut greift nur beim einlesen der Telefonb&uuml;cher via "web"- oder "tr064"-Methode (siehe Attribut <i>fritzbox-remote-phonebook-via</i>). Eine Liste aller m&ouml;glichen Werte kann &uuml;ber das <a href="#FB_CALLMONITOR_get">Get-Kommando</a> <i>showPhonebookIds</i> angezeigt werden.<br><br>
  13137. Standardm&auml;&szlig;ig ist diese Funktion deaktiviert (alle Telefonb&uuml;cher werden eingelesen)<br><br>
  13138. <li><a name="FB_CALLMONITOR_fritzbox-user">fritzbox-user</a> &lt;Username&gt;</li>
  13139. Der Username, sofern das Telefonbuch direkt von der FritzBox via Netzwerk geladen werden soll (siehe Attribut: <a href="#FB_CALLMONITOR_fritzbox-remote-phonebook">fritzbox-remote-phonebook</a>). Dieses Attribut ist nur notwendig, wenn verschiedene Benutzernamen auf der FritzBox konfiguriert sind.<br><br>
  13140. <li><a name="FB_CALLMONITOR_apiKeySearchCh">apiKeySearchCh</a> &lt;API-Key&gt;</li>
  13141. Der private API-Key von <a href="https://tel.search.ch/api/getkey" target="_new">tel.search.ch</a> um eine R&uuml;ckw&auml;rtssuche via search.ch durchzuf&uuml;hren (siehe Attribut <a href=#FB_CALLMONITOR_reverse-search">reverse-search</a>). Ohne einen solchen API-Key ist eine R&uuml;ckw&auml;rtssuche via search.ch nicht m&ouml;glich<br><br>
  13142. <li><a name="FB_CALLMONITOR_sendKeepAlives">sendKeepAlives</a> (none,5m,10m,15m,30m,1h)</li>
  13143. Wenn dieses Attribut gesetzt ist, wird ein zyklisches Keep-Alive im konfigurierten Zeitabstand an die FritzBox gesendet um die Verbindung aktiv zu halten. Dadurch bleibt die Verbindung bestehen, insbesondere wenn die verbundene FritzBox sich hinter einem weiteren NAT-Router befindet (z.B. einer weiteren FritzBox). Dadurch wird die Verbindung in so einem Fall nicht f&auml;lschlicherweise als "tot" erkannt und geblockt.<br><br>
  13144. M&ouml;gliche Werte: none,5m,10m,15m,30m,1h<br>
  13145. Standardwert ist "none" (es werden keine Keep-Alives gesendet)<br>
  13146. </ul>
  13147. <br>
  13148. <a name="FB_CALLMONITOR_events"></a>
  13149. <b>Generierte Events:</b><br><br>
  13150. <ul>
  13151. <li><b>event</b> (call|ring|connect|disconnect) - Welches Event wurde genau ausgel&ouml;st. ("call" =&gt; ausgehender Rufversuch, "ring" =&gt; eingehender Rufversuch, "connect" =&gt; Gespr&auml;ch ist zustande gekommen, "disconnect" =&gt; es wurde aufgelegt)</li>
  13152. <li><b>direction</b> (incoming|outgoing) - Die Anruf-Richtung ("incoming" =&gt; eingehender Anruf, "outgoing" =&gt; ausgehender Anruf)</li>
  13153. <li><b>external_number</b> - Die Rufnummer des Gegen&uuml;bers, welcher anruft (event: ring) oder angerufen wird (event: call)</li>
  13154. <li><b>external_name</b> - Das Ergebniss der R&uuml;ckw&auml;rtssuche (sofern aktiviert). Im Fehlerfall kann diese Reading auch den Inhalt "unknown" (keinen Eintrag gefunden) enthalten. Im Falle einer Zeit&uuml;berschreitung bei der R&uuml;ckw&auml;rtssuche und aktiviertem Caching, wird die Rufnummer beim n&auml;chsten Mal erneut gesucht.</li>
  13155. <li><b>internal_number</b> - Die interne Rufnummer (Festnetz, VoIP-Nummer, ...) auf welcher man angerufen wird (event: ring) oder die man gerade nutzt um jemanden anzurufen (event: call)</li>
  13156. <li><b>internal_connection</b> - Der interne Anschluss an der Fritz!Box welcher genutzt wird um das Gespr&auml;ch durchzuf&uuml;hren (FON1, FON2, ISDN, DECT, ...)</li>
  13157. <li><b>external_connection</b> - Der externe Anschluss welcher genutzt wird um das Gespr&auml;ch durchzuf&uuml;hren ("POTS" =&gt; analoges Festnetz, "SIPx" =&gt; VoIP Nummer, "ISDN", "GSM" =&gt; Mobilfunk via GSM/UMTS-Stick)</li>
  13158. <li><b>call_duration</b> - Die Gespr&auml;chsdauer in Sekunden. Dieser Wert wird nur bei einem disconnect-Event erzeugt. Ist der Wert 0, so wurde das Gespr&auml;ch von niemandem angenommen.</li>
  13159. <li><b>call_id</b> - Die Identifizierungsnummer eines einzelnen Gespr&auml;chs. Dient der Zuordnung bei zwei oder mehr parallelen Gespr&auml;chen, damit alle Events eindeutig einem Gespr&auml;ch zugeordnet werden k&ouml;nnen</li>
  13160. <li><b>missed_call</b> - Dieses Event wird nur generiert, wenn ein eingehender Anruf nicht beantwortet wird. Sofern der Name dazu bekannt ist, wird dieser ebenfalls mit angezeigt.</li>
  13161. </ul>
  13162. </ul>
  13163. <p><a name="FHEM2FHEM"></a>
  13164. <h3>FHEM2FHEM</h3>
  13165. <div class='langLinks'>[<a href='commandref.html#FHEM2FHEM'>EN</a> DE]</div>
  13166. <ul>
  13167. FHEM2FHEM ist ein Hilfsmodul, um mehrere FHEM-Installationen zu verbinden.
  13168. <br><br>
  13169. <a name="FHEM2FHEMdefine"></a>
  13170. <b>Define</b>
  13171. <ul>
  13172. <code>define &lt;name&gt; FHEM2FHEM &lt;host&gt;[:&lt;portnr&gt;][:SSL] [LOG:regexp|RAW:devicename] {portpassword}
  13173. </code>
  13174. <br>
  13175. <br>
  13176. Zum <i>remote (entfernten)</i> FHEM auf Rechner &lt;host&gt; verbinden.
  13177. &lt;portnr&gt; ist der telnetPort des remote FHEM, Standardport ist 7072.
  13178. Der Zusatz :SSL wird ben&ouml;tigt, wenn das remote FHEM
  13179. SSL-Verschl&uuml;sselung voraussetzt. Auch auf dem lokalen Host muss dann
  13180. das Perl-Modul IO::Socket::SSL installiert sein.<br>
  13181. <br>
  13182. Achtung:
  13183. <ul>
  13184. <li>
  13185. Wenn das remote FHEM auf einem eigenen Host l&auml;uft, muss
  13186. "telnetPort" des remote FHEM mit der global Option definiert sein.
  13187. </li>
  13188. <li>ab FHEM Version 5.9 wird in der ausgelieferten Initialversion der fhem.cfg
  13189. keine telnet Instanz vorkonfiguriert, man muss sie z.Bsp.
  13190. folgenderma&szlig;en definieren:
  13191. <ul><code>
  13192. define telnetPort telnet 7072 global
  13193. </code></ul>
  13194. </li>
  13195. </ul>
  13196. <br>
  13197. Der n&auml;chste Parameter spezifiziert den Verbindungs-Typ:
  13198. <ul>
  13199. <li>LOG<br>
  13200. Bei Verwendung dieses Verbindungstyps werden alle Ereignisse (Events) der
  13201. remote FHEM-Installation empfangen. Die Ereignisse sehen aus wie die, die
  13202. nach <a href="#inform">inform on</a> Befehl erzeugt werden. Sie k&ouml;nnen
  13203. wie lokale Ereignisse durch <a href="#FileLog">FileLog </a> oder <a
  13204. href="#notify">notify</a> genutzt werden und mit einem regul&auml;ren
  13205. Ausdruck gefiltert werden. Die Syntax daf&uuml;r ist unter der
  13206. notify-Definition beschrieben.<br>
  13207. Einschr&auml;nkungen: die Ger&auml;te der remote Installation werden nicht
  13208. lokal angelegt und k&ouml;nnen weder mit list angezeigt noch lokal
  13209. angesprochen werden. Auf beiden FHEM-Installationen k&ouml;nnen
  13210. Ger&auml;te gleichen Namens angelegt werden, aber wenn beide dasselbe
  13211. Ereignis empfangen (z.B. wenn an beiden Installationen CULs angeschlossen
  13212. sind), werden alle FileLogs und notifys doppelt ausgel&ouml;st.<br>
  13213. Falls man lokal Ger&auml;te mit dem gleichen Namen (z.Bsp. als dummy)
  13214. angelegt hat, dann werden die Readings von dem lokalen Ger&auml;t
  13215. aktualisiert.
  13216. </li>
  13217. <li>RAW<br>
  13218. Bei diesem Verbindungstyp werden unaufbereitete Ereignisse (raw messages)
  13219. des remote FHEM-Ger&auml;ts <i>devicename</i> genau so empfangen, als
  13220. w&auml;re das Ger&auml;t lokal verbunden.<br>
  13221. Einschr&auml;nkungen: nur Ger&auml;te, welche die "Dispatch-Funktion"
  13222. unterst&uuml;tzen (CUL, FHZ, CM11, SISPM, RFXCOM, TCM, TRX, TUL) erzeugen
  13223. raw messages, und f&uuml;r jedes entfernte Ger&auml;t muss ein eigenes
  13224. FHEM2FHEM Objekt erzeugt werden.<br>
  13225. <i>devicename</i> muss mit demselben Namen und Typ wie das Remote Devive
  13226. angelegt sein, aber als Dummy, d.h. als device-node "none".
  13227. Zus&auml;tzlich m&uuml;ssen alle notwendigen Attribute lokal gesetzt sein
  13228. (z.B. <a href="#rfmode">rfmode</a>, wenn die remote CUL im HomeMatic-Modus
  13229. l&auml;uft). Die Verwendung bereits bestehender lokaler Ger&auml;te ist zu
  13230. vermeiden, weil sonst die Duplikatsfilterung nicht richtig funktioniert
  13231. (siehe dupTimeout). </li>
  13232. </ul>
  13233. Der letzte Parameter enth&auml;lt das Passwort des Remote-Servers, wenn dort
  13234. eines aktiviert ist <a href="#portpassword">portpassword</a>.
  13235. <br>
  13236. Beispiele:
  13237. <ul>
  13238. <code>define ds1 FHEM2FHEM 192.168.178.22:7072 LOG:.*</code><br>
  13239. <br>
  13240. <code>define RpiCUL CUL none 0000</code><br>
  13241. <code>define ds2 FHEM2FHEM 192.168.178.22:7072 RAW:RpiCUL</code><br> und auf dem RPi (192.168.178.22):<br>
  13242. <code>rename CUL_0 RpiCUL</code><br>
  13243. </ul>
  13244. </ul>
  13245. <br>
  13246. <a name="FHEM2FHEMset"></a>
  13247. <b>Set </b>
  13248. <ul>
  13249. <li>reopen<br>
  13250. &Ouml;ffnet die Verbindung erneut.</li>
  13251. </ul>
  13252. <a name="FHEM2FHEMget"></a>
  13253. <b>Get</b> <ul>N/A</ul><br>
  13254. <a name="FHEM2FHEMattr"></a>
  13255. <b>Attribute</b>
  13256. <ul>
  13257. <li><a href="#dummy">dummy</a></li>
  13258. <li><a href="#disable">disable</a></li>
  13259. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  13260. <li><a name="#eventOnly">eventOnly</a><br>
  13261. falls gesetzt, werden nur die Events generiert, und es wird kein
  13262. Reading aktualisiert. Ist nur im LOG-Mode aktiv.
  13263. </li>
  13264. <li><a name="#addStateEvent">addStateEvent</a><br>
  13265. falls gesetzt, werden state Events als solche uebertragen. Zu beachten:
  13266. das Attribut ist nur f&uuml;r LOG-Mode relevant, beim Setzen wird eine
  13267. zus&auml;tzliche reopened Logzeile generiert, und die andere Seite muss
  13268. aktuell sein.
  13269. </li>
  13270. <li><a name="#excludeEvents">excludeEvents &lt;regexp&gt;</a>
  13271. die auf das &lt;regexp&gt; zutreffende Events werden nicht
  13272. bereitgestellt.
  13273. </li>
  13274. </ul>
  13275. </ul>
  13276. <p><a name="FHEMWEB"></a>
  13277. <h3>FHEMWEB</h3>
  13278. <div class='langLinks'>[<a href='commandref.html#FHEMWEB'>EN</a> DE]</div>
  13279. <ul>
  13280. FHEMWEB ist das default WEB-Frontend, es implementiert auch einen einfachen
  13281. Webserver (optional mit Basic-Auth und HTTPS).
  13282. <br> <br>
  13283. <a name="FHEMWEBdefine"></a>
  13284. <b>Define</b>
  13285. <ul>
  13286. <code>define &lt;name&gt; FHEMWEB &lt;tcp-portnr&gt; [global|IP]</code>
  13287. <br><br>
  13288. Aktiviert das Webfrontend auf dem Port &lt;tcp-portnr&gt;. Mit dem
  13289. Parameter global werden Anfragen von allen Netzwerkschnittstellen
  13290. akzeptiert (nicht nur vom localhost / 127.0.0.1). Falls IP angegeben wurde,
  13291. dann werden nur Anfragen an diese IP Adresse akzeptiert. <br>
  13292. Informationen f&uuml;r den Betrieb mit IPv6 finden Sie <a
  13293. href="#telnet">hier</a>.<br>
  13294. </ul>
  13295. <br>
  13296. <a name="FHEMWEBset"></a>
  13297. <b>Set</b>
  13298. <ul>
  13299. <li>rereadicons<br>
  13300. Damit wird die Liste der Icons neu eingelesen, f&uuml;r den Fall, dass
  13301. Sie Icons l&ouml;schen oder hinzuf&uuml;gen.
  13302. </li>
  13303. <li>clearSvgCache<br>
  13304. Im Verzeichnis www/SVGcache werden SVG Daten zwischengespeichert, wenn
  13305. das Attribut SVGcache gesetzt ist. Mit diesem Befehl leeren Sie diesen
  13306. Zwischenspeicher.
  13307. </li>
  13308. </ul>
  13309. <br>
  13310. <a name="FHEMWEBget"></a>
  13311. <b>Get</b>
  13312. <ul>
  13313. <li>icon &lt;logical icon&gt;<br>
  13314. Liefert den absoluten Pfad des (logischen) Icons zur&uuml;ck. Beispiel:
  13315. <ul>
  13316. <code>get myFHEMWEB icon FS20.on<br>
  13317. /data/Homeautomation/fhem/FHEM/FS20.on.png
  13318. </code>
  13319. </ul></li>
  13320. <li>pathlist<br>
  13321. Zeigt diejenigen Verzeichnisse an, in welchen die verschiedenen Dateien
  13322. f&uuml;r FHEMWEB liegen.
  13323. </li>
  13324. <br><br>
  13325. </ul>
  13326. <a name="FHEMWEBattr"></a>
  13327. <b>Attribute</b>
  13328. <ul>
  13329. <a name="addHtmlTitle"></a>
  13330. <li>addHtmlTitle<br>
  13331. Falls der Wert 0 ist, wird bei den set/get/attr Parametern in der
  13332. DetailAnsicht der Ger&auml;te kein title Attribut gesetzt. Das is bei
  13333. manchen Screenreadern erforderlich. Die Voreinstellung ist 1.
  13334. </li><br>
  13335. <li><a href="#addStateEvent">addStateEvent</a></li><br>
  13336. <li>alias_&lt;RoomName&gt;<br>
  13337. Falls man das Attribut alias_&lt;RoomName&gt; definiert, und dieses
  13338. Attribut f&uuml;r ein Ger&auml;t setzt, dann wird dieser Wert bei
  13339. Anzeige von &lt;RoomName&gt; verwendet.<br>
  13340. Achtung: man kann im userattr auch alias_.* verwenden um alle
  13341. m&ouml;glichen R&auml;ume abzudecken, in diesem Fall wird aber die
  13342. Attributauswahl in der Detailansicht f&uuml;r alias_.* nicht
  13343. funktionieren.
  13344. </li><br>
  13345. <li><a href="#allowfrom">allowfrom</a>
  13346. </li><br>
  13347. <li>allowedCommands, basicAuth, basicAuthMsg<br>
  13348. Diese Attribute m&uuml;ssen ab sofort bei dem passenden <a
  13349. href="#allowed">allowed</a> Ger&auml;t angelegt werden, und sind
  13350. f&uuml;r eine FHEMWEB Instanz unerw&uuml;nscht.
  13351. </li><br>
  13352. <a name="allowedHttpMethods"></a>
  13353. <li>allowedHttpMethods</br>
  13354. FHEMWEB implementiert die HTTP Methoden GET, POST und OPTIONS. Manche
  13355. externe Ger&auml;te ben&ouml;tigen HEAD, das ist aber in FHEMWEB nicht
  13356. korrekt implementiert, da FHEMWEB immer ein body zur&uuml;ckliefert, was
  13357. laut Spec falsch ist. Da ein body in manchen F&auml;llen kein Problem
  13358. ist, kann man HEAD durch setzen dieses Attributes auf GET|POST|HEAD
  13359. aktivieren, die Voreinstellung ist GET|POST. OPTIONS ist immer
  13360. aktiviert.
  13361. </li><br>
  13362. <a name="closeConn"></a>
  13363. <li>closeConn<br>
  13364. Falls gesetzt, wird pro TCP Verbindung nur ein HTTP Request
  13365. durchgef&uuml;hrt. F&uuml;r iOS9 WebApp startups scheint es zu helfen.
  13366. </li><br>
  13367. <a name="cmdIcon"></a>
  13368. <li>cmdIcon<br>
  13369. Leerzeichen getrennte Auflistung von cmd:iconName Paaren.
  13370. Falls gesetzt, wird das webCmd text durch den icon gesetzt.
  13371. Am einfachsten setzt man cmdIcon indem man "Extend devStateIcon" im
  13372. Detail-Ansicht verwendet, und den Wert nach cmdIcon kopiert.<br>
  13373. Beispiel:<ul>
  13374. attr lamp cmdIcon on:control_centr_arrow_up off:control_centr_arrow_down
  13375. </ul>
  13376. </li><br>
  13377. <a name="column"></a>
  13378. <li>column<br>
  13379. Damit werden mehrere Spalten f&uuml;r einen Raum angezeigt, indem
  13380. sie verschiedene Gruppen Spalten zuordnen. Beispiel:<br>
  13381. <ul><code>
  13382. attr WEB column LivingRoom:FS20,notify|FHZ,notify DiningRoom:FS20|FHZ
  13383. </code></ul>
  13384. In diesem Beispiel werden im Raum LivingRoom die FS20 sowie die notify
  13385. Gruppe in der ersten Spalte, die FHZ und das notify in der zweiten
  13386. Spalte angezeigt.<br>
  13387. Anmerkungen: einige Elemente, wie SVG Plots und readingsGroup
  13388. k&ouml;nnen nur dann Teil einer Spalte sein wenn sie in <a
  13389. href="#group">group</a> stehen. Dieses Attribut kann man zum sortieren
  13390. der Gruppen auch dann verwenden, wenn man nur eine Spalte hat.
  13391. Leerzeichen im Raum- und Gruppennamen sind f&uuml;r dieses Attribut als
  13392. %20 zu schreiben. Raum- und Gruppenspezifikation ist jeweils ein
  13393. %regul&auml;rer Ausdruck.
  13394. </li><br>
  13395. <a name="confirmDelete"></a>
  13396. <li>confirmDelete<br>
  13397. L&ouml;schaktionen weden mit einem Dialog best&auml;tigt.
  13398. Falls dieses Attribut auf 0 gesetzt ist, entf&auml;llt das.
  13399. </li>
  13400. <br>
  13401. <a name="confirmJSError"></a>
  13402. <li>confirmJSError<br>
  13403. JavaScript Fehler werden per Voreinstellung in einem Dialog gemeldet.
  13404. Durch setzen dieses Attributes auf 0 werden solche Fehler nicht
  13405. gemeldet.
  13406. </li>
  13407. <br>
  13408. <a name="CORS"></a>
  13409. <li>CORS<br>
  13410. Wenn auf 1 gestellt, wird FHEMWEB einen "Cross origin resource sharing"
  13411. Header bereitstellen, n&auml;heres siehe Wikipedia.
  13412. </li><br>
  13413. <a name="csrfToken"></a>
  13414. <li>csrfToken<br>
  13415. Falls gesetzt, wird der Wert des Attributes als fwcsrf Parameter bei
  13416. jedem &uuml;ber FHEMWEB abgesetzten Kommando verlangt, es dient zum
  13417. Schutz von Cross Site Resource Forgery Angriffen.
  13418. Falls der Wert random ist, dann wird ein Zufallswert beim jeden FHEMWEB
  13419. Start neu generiert, falls er none ist, dann wird kein Parameter
  13420. verlangt. Default ist random f&uuml;r featurelevel 5.8 und
  13421. gr&ouml;&szlig;er, und none f&uuml;r featurelevel kleiner 5.8
  13422. </li><br>
  13423. <a name="csrfTokenHTTPHeader"></a>
  13424. <li>csrfTokenHTTPHeader<br>
  13425. Falls gesetzt (Voreinstellung), FHEMWEB sendet im HTTP Header den
  13426. csrfToken als X-FHEM-csrfToken, das wird von manchen FHEM-Clients
  13427. benutzt. Mit 0 kann man das abstellen, um Sites wie shodan.io die
  13428. Erkennung von FHEM zu erschweren.</li><br>
  13429. <a name="CssFiles"></a>
  13430. <li>CssFiles<br>
  13431. Leerzeichen getrennte Liste von .css Dateien, die geladen werden.
  13432. Die Dateinamen sind relativ zum www Verzeichnis anzugeben. Beispiel:
  13433. <ul><code>
  13434. attr WEB CssFiles pgm2/mystyle.css
  13435. </code></ul>
  13436. </li><br>
  13437. <a name="Css"></a>
  13438. <li>Css<br>
  13439. CSS, was nach dem CssFiles Abschnitt im Header eingefuegt wird.
  13440. </li><br>
  13441. <a name="defaultRoom"></a>
  13442. <li>defaultRoom<br>
  13443. Zeigt den angegebenen Raum an falls kein Raum explizit ausgew&auml;hlt
  13444. wurde. Achtung: falls gesetzt, wird motd nicht mehr angezeigt.
  13445. Beispiel:<br>
  13446. attr WEB defaultRoom Zentrale
  13447. </li><br>
  13448. <a name="devStateIcon"></a>
  13449. <li>devStateIcon<br>
  13450. Erste Variante:<br>
  13451. <ul>
  13452. Leerzeichen getrennte Auflistung von regexp:icon-name:cmd
  13453. Dreierp&auml;rchen, icon-name und cmd d&uuml;rfen leer sein.<br>
  13454. Wenn der Zustand des Ger&auml;tes mit der regexp &uuml;bereinstimmt,
  13455. wird als icon-name das entsprechende Status Icon angezeigt, und (falls
  13456. definiert), l&ouml;st ein Klick auf das Icon das entsprechende cmd aus.
  13457. Wenn fhem icon-name nicht finden kann, wird der Status als Text
  13458. angezeigt.
  13459. Beispiel:<br>
  13460. <ul>
  13461. attr lamp devStateIcon on:closed off:open<br>
  13462. attr lamp devStateIcon on::A0 off::AI<br>
  13463. attr lamp devStateIcon .*:noIcon<br>
  13464. </ul>
  13465. Anmerkung: Wenn das Icon ein SVG Bild ist, kann das @colorname Suffix
  13466. verwendet werden um das Icon einzuf&auml;rben. Z.B.:<br>
  13467. <ul>
  13468. attr Fax devStateIcon on:control_building_empty@red
  13469. off:control_building_filled:278727
  13470. </ul>
  13471. Falls cmd noFhemwebLink ist, dann wird kein HTML-Link generiert, d.h.
  13472. es passiert nichts, wenn man auf das Icon/Text klickt.
  13473. </ul>
  13474. Zweite Variante:<br>
  13475. <ul>
  13476. Perl regexp eingeschlossen in {}. Wenn der Code undef
  13477. zur&uuml;ckliefert, wird das Standard Icon verwendet; wird ein String
  13478. in <> zur&uuml;ck geliefert, wird dieser als HTML String interpretiert.
  13479. Andernfalls wird der String als devStateIcon gem&auml;&szlig; der
  13480. ersten Variante interpretiert, siehe oben. Beispiel:<br>
  13481. {'&lt;div style="width:32px;height:32px;background-color:green"&gt;&lt;/div&gt;'}
  13482. </ul>
  13483. </li><br>
  13484. <a name="devStateStyle"></a>
  13485. <li>devStateStyle<br>
  13486. F&uuml;r ein best. Ger&auml;t einen best. HTML-Style benutzen.
  13487. Beispiel:<br>
  13488. <ul>
  13489. attr sensor devStateStyle style="text-align:left;;font-weight:bold;;"<br>
  13490. </ul>
  13491. </li><br>
  13492. <li>deviceOverview<br>
  13493. Gibt an ob die Darstellung aus der Raum-Ansicht (Zeile mit
  13494. Ger&uuml;teicon, Stateicon und webCmds/cmdIcons) auch in der
  13495. Detail-Ansicht angezeigt werden soll. Kann auf always, onClick,
  13496. iconOnly oder never gesetzt werden. Der Default ist always.
  13497. </li><br>
  13498. <a name="editConfig"></a>
  13499. <li>editConfig<br>
  13500. Falls dieses FHEMWEB Attribut (auf 1) gesetzt ist, dann kann man die
  13501. FHEM Konfigurationsdatei in dem "Edit files" Abschnitt bearbeiten. Beim
  13502. Speichern dieser Datei wird automatisch rereadcfg ausgefuehrt, was
  13503. diverse Nebeneffekte hat.<br>
  13504. </li><br>
  13505. <a name="editFileList"></a>
  13506. <li>editFileList<br>
  13507. Definiert die Liste der angezeigten Dateien in der "Edit Files"
  13508. Abschnitt. Es ist eine Newline getrennte Liste von Tripeln bestehend
  13509. aus Titel, Verzeichnis f&uuml;r die Suche als perl Ausdruck(!), und
  13510. Regexp. Die Voreinstellung ist:
  13511. <ul>
  13512. <code>
  13513. Own modules and helper files:$MW_dir:^(.*sh|[0-9][0-9].*Util.*pm|.*cfg|.*holiday|myUtilsTemplate.pm|.*layout)$<br>
  13514. Gplot files:$FW_gplotdir:^.*gplot$<br>
  13515. Styles:$FW_cssdir:^.*(css|svg)$<br>
  13516. </code>
  13517. </ul>
  13518. Achtung: die Verzeichnis Angabe ist nicht flexibel: alle
  13519. .js/.css/_defs.svg Dateien sind in www/pgm2 ($FW_cssdir), .gplot
  13520. Dateien in $FW_gplotdir (www/gplot), alles andere in $MW_dir (FHEM).
  13521. </li><br>
  13522. <a name="endPlotNow"></a>
  13523. <li>endPlotNow<br>
  13524. Wenn Sie dieses FHEMWEB Attribut auf 1 setzen, werden Tages und
  13525. Stunden-Plots zur aktuellen Zeit beendet. (&Auml;hnlich wie
  13526. endPlotToday, nur eben min&uuml;tlich).
  13527. Ansonsten wird der gesamte Tag oder eine 6 Stunden Periode (0, 6, 12,
  13528. 18 Stunde) gezeigt. Dieses Attribut wird nicht verwendet, wenn das SVG
  13529. Attribut startDate benutzt wird.<br>
  13530. </li><br>
  13531. <a name="endPlotToday"></a>
  13532. <li>endPlotToday<br>
  13533. Wird dieses FHEMWEB Attribut gesetzt, so enden Wochen- bzw. Monatsplots
  13534. am aktuellen Tag, sonst wird die aktuelle Woche/Monat angezeigt.
  13535. </li><br>
  13536. <a name="forbiddenroom"></a>
  13537. <li>forbiddenroom<br>
  13538. Wie hiddenroom, aber der Zugriff auf die Raum- oder Detailansicht
  13539. &uuml;ber direkte URL-Eingabe wird unterbunden.
  13540. </li><br>
  13541. <a name="fwcompress"></a>
  13542. <li>fwcompress<br>
  13543. Aktiviert die HTML Datenkompression (Standard ist 1, also ja, 0 stellt
  13544. die Kompression aus).
  13545. </li><br>
  13546. <a name="hiddengroup"></a>
  13547. <li>hiddengroup<br>
  13548. Wie hiddenroom (siehe unten), jedoch auf Ger&auml;tegruppen bezogen.
  13549. <br>
  13550. Beispiel: attr WEBtablet hiddengroup FileLog,dummy,at,notify
  13551. </li><br>
  13552. <a name="hiddengroupRegexp"></a>
  13553. <li>hiddengroupRegexp<br>
  13554. Ein regul&auml;rer Ausdruck, um Gruppen zu verstecken.
  13555. </li>
  13556. <br>
  13557. <a name="hiddenroom"></a>
  13558. <li>hiddenroom<br>
  13559. Eine Komma getrennte Liste, um R&auml;ume zu verstecken, d.h. nicht
  13560. anzuzeigen. Besondere Werte sind input, detail und save. In diesem
  13561. Fall werden diverse Eingabefelder ausgeblendent. Durch direktes Aufrufen
  13562. der URL sind diese R&auml;ume weiterhin erreichbar!<br>
  13563. Ebenso k&ouml;nnen Eintr&auml;ge in den Logfile/Commandref/etc Block
  13564. versteckt werden. </li><br>
  13565. <a name="hiddenroomRegexp"></a>
  13566. <li>hiddenroomRegexp<br>
  13567. Ein regul&auml;rer Ausdruck, um R&auml;ume zu verstecken. Beispiel:
  13568. <ul>
  13569. attr WEB hiddenroomRegexp .*config
  13570. </ul>
  13571. Achtung: die besonderen Werte input, detail und save m&uuml;ssen mit
  13572. hiddenroom spezifiziert werden.
  13573. </li>
  13574. <br>
  13575. <a name="HTTPS"></a>
  13576. <li>HTTPS<br>
  13577. Erm&ouml;glicht HTTPS Verbindungen. Es werden die Perl Module
  13578. IO::Socket::SSL ben&ouml;tigt, installierbar mit cpan -i
  13579. IO::Socket::SSL oder apt-get install libio-socket-ssl-perl; (OSX und
  13580. die FritzBox-7390 haben dieses Modul schon installiert.)<br>
  13581. Ein lokales Zertifikat muss im Verzeichis certs erzeugt werden.
  13582. Dieses Verzeichnis <b>muss</b> im <a href="#modpath">modpath</a>
  13583. angegeben werden, also auf der gleichen Ebene wie das FHEM Verzeichnis.
  13584. Beispiel:
  13585. <ul>
  13586. mkdir certs<br>
  13587. cd certs<br>
  13588. openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout
  13589. server-key.pem
  13590. </ul>
  13591. <br>
  13592. </li>
  13593. <a name="icon"></a>
  13594. <li>icon<br>
  13595. Damit definiert man ein Icon f&uuml;r die einzelnen Ger&auml;te in der
  13596. Raum&uuml;bersicht. Es gibt einen passenden Link in der Detailansicht
  13597. um das zu vereinfachen. Um ein Bild f&uuml;r die R&auml;ume selbst zu
  13598. definieren muss ein Icon mit dem Namen ico&lt;Raumname&gt;.png im
  13599. iconPath existieren (oder man verwendet roomIcons, s.u.)
  13600. </li><br>
  13601. <a name="iconPath"></a>
  13602. <li>iconPath<br>
  13603. Durch Doppelpunkt getrennte Aufz&auml;hlung der Verzeichnisse, in
  13604. welchen nach Icons gesucht wird. Die Verzeichnisse m&uuml;ssen unter
  13605. fhem/www/images angelegt sein. Standardeinstellung ist:
  13606. $styleSheetPrefix:fhemSVG:openautomation:default<br>
  13607. Setzen Sie den Wert auf fhemSVG:openautomation um nur SVG Bilder zu
  13608. benutzen.
  13609. </li><br>
  13610. <a name="JavaScripts"></a>
  13611. <li>JavaScripts<br>
  13612. Leerzeichen getrennte Liste von JavaScript Dateien, die geladen werden.
  13613. Die Dateinamen sind relativ zum www Verzeichnis anzugeben. F&uuml;r
  13614. jede Datei wird ein zus&auml;tzliches Attribut angelegt, damit der
  13615. Benutzer dem Skript Parameter weiterreichen kann. Bei diesem
  13616. Attributnamen werden Verzeichnisname und fhem_ Pr&auml;fix entfernt
  13617. und Param als Suffix hinzugef&uuml;gt. Beispiel:
  13618. <ul><code>
  13619. attr WEB JavaScripts codemirror/fhem_codemirror.js<br>
  13620. attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true }
  13621. </code></ul>
  13622. </li><br>
  13623. <a name="longpoll"></a>
  13624. <li>longpoll [0|1|websocket]<br>
  13625. Falls gesetzt, FHEMWEB benachrichtigt den Browser, wenn
  13626. Ger&auml;testatuus, Readings or Attribute sich &auml;ndern, ein
  13627. Neuladen der Seite ist nicht notwendig. Zum deaktivieren 0 verwenden.
  13628. <br>
  13629. Falls websocket spezifiziert ist, l&auml;uft die Benachrichtigung des
  13630. Browsers &uuml;ber dieses Verfahren sonst &uuml;ber HTTP longpoll.
  13631. Achtung: &auml;ltere Browser haben keine websocket Implementierung.
  13632. </li><br>
  13633. <a name="longpollSVG"></a>
  13634. <li>longpollSVG<br>
  13635. L&auml;dt SVG Instanzen erneut, falls ein Ereignis dessen Inhalt
  13636. &auml;ndert. Funktioniert nur, falls die dazugeh&ouml;rige Definition
  13637. der Quelle in der .gplot Datei folgenden Form hat: deviceName.Event
  13638. bzw. deviceName.*. Wenn man den <a href="#plotEditor">Plot Editor</a>
  13639. benutzt, ist das &uuml;brigens immer der Fall. Die SVG Datei wird bei
  13640. <b>jedem</b> ausl&ouml;senden Event dieses Ger&auml;tes neu geladen.
  13641. Die Voreinstellung ist aus. Achtung: das plotEmbed Attribute muss
  13642. gesetzt sein.
  13643. </li><br>
  13644. <a name="mainInputLength"></a>
  13645. <li>mainInputLength<br>
  13646. L&auml;nge des maininput Eingabefeldes (Anzahl der Buchstaben,
  13647. Ganzzahl).
  13648. </li> <br>
  13649. <a name="menuEntries"></a>
  13650. <li>menuEntries<br>
  13651. Komma getrennte Liste; diese Links werden im linken Men&uuml; angezeigt.
  13652. Beispiel:<br>
  13653. attr WEB menuEntries fhem.de,http://fhem.de,culfw.de,http://culfw.de<br>
  13654. attr WEB menuEntries
  13655. AlarmOn,http://fhemhost:8083/fhem?cmd=set%20alarm%20on<br>
  13656. </li><br>
  13657. <a name="nameDisplay"></a>
  13658. <li>nameDisplay<br>
  13659. Das Argument ist Perl-Code, was f&uuml;r jedes Ger&auml;t in der
  13660. Raum-&Uuml;bersicht ausgef&uuml;hrt wird, um den angezeigten Namen zu
  13661. berechnen. Dabei kann man die Variable $DEVICE f&uuml;r den aktuellen
  13662. Ger&auml;tenamen, und $ALIAS f&uuml;r den aktuellen alias bzw. Name,
  13663. falls alias nicht gesetzt ist, verwenden. Z.Bsp. f&uuml;r eine FHEMWEB
  13664. Instanz mit ungarischer Anzeige f&uuml;gt man ein global userattr
  13665. alias_hu hinzu, und man setzt nameDisplay f&uuml;r diese FHEMWEB
  13666. Instanz auf dem Wert:
  13667. <ul>
  13668. AttrVal($DEVICE, "alias_hu", $ALIAS)
  13669. </ul>
  13670. </li>
  13671. <br>
  13672. <a name="nrAxis"></a>
  13673. <li>nrAxis<br>
  13674. (bei mehrfach-Y-Achsen im SVG-Plot) Die Darstellung der Y Achsen
  13675. ben&ouml;tigt Platz. Hierdurch geben Sie an wie viele Achsen Sie
  13676. links,rechts [useLeft,useRight] ben&ouml;tigen. Default ist 1,1 (also 1
  13677. Achse links, 1 Achse rechts).
  13678. </li><br>
  13679. <a name="ploteditor"></a>
  13680. <li>ploteditor<br>
  13681. Gibt an ob der <a href="#plotEditor">Plot Editor</a> in der SVG detail
  13682. ansicht angezeigt werden soll. Kann auf always, onClick oder never
  13683. gesetzt werden. Der Default ist always.
  13684. </li><br>
  13685. <a name="plotEmbed"></a>
  13686. <li>plotEmbed 0<br>
  13687. Falls gesetzt (auf 1), dann werden SVG Grafiken mit &lt;embed&gt; Tags
  13688. gerendert, da auf &auml;lteren Browsern das die einzige
  13689. M&ouml;glichkeit war, SVG dastellen zu k&ouml;nnen. Falls 0 (die
  13690. Voreinstellung), dann werden die SVG Grafiken "in-place" gezeichnet.
  13691. </li><br>
  13692. <a name="plotfork"></a>
  13693. <li>plotfork<br>
  13694. Falls gesetzt, dann werden bestimmte Berechnungen (z.Bsp. SVG und RSS)
  13695. auf nebenl&auml;ufige Prozesse verteilt. Voreinstellung ist 0. Achtung:
  13696. nicht auf Systemen mit wenig Hauptspeicher verwenden.
  13697. </li><br>
  13698. <a name="plotmode"></a>
  13699. <li>plotmode<br>
  13700. Spezifiziert, wie Plots erzeugt werden sollen:
  13701. <ul>
  13702. <li>SVG<br>
  13703. Die Plots werden mit Hilfe des <a href="#SVG">SVG</a> Moduls als SVG
  13704. Grafik gerendert. Das ist die Standardeinstellung.</li>
  13705. <li>gnuplot-scroll<br>
  13706. Die plots werden mit dem Programm gnuplot erstellt. Das output
  13707. terminal ist PNG. Der einfache Zugriff auf historische Daten
  13708. ist m&ouml;glich (analog SVG).
  13709. </li>
  13710. <li>gnuplot-scroll-svg<br>
  13711. Wie gnuplot-scroll, aber als output terminal wird SVG angenommen.
  13712. </li>
  13713. </ul>
  13714. </li><br>
  13715. <a name="plotsize"></a>
  13716. <li>plotsize<br>
  13717. gibt die Standardbildgr&ouml;&szlig;e aller erzeugten Plots an als
  13718. Breite,H&ouml;he an. Um einem individuellen Plot die Gr&ouml;&szlig;e zu
  13719. &auml;ndern muss dieses Attribut bei der entsprechenden SVG Instanz
  13720. gesetzt werden. Default sind 800,160 f&uuml;r Desktop und 480,160
  13721. f&uuml;r Smallscreen
  13722. </li><br>
  13723. <a name="plotWeekStartDay"></a>
  13724. <li>plotWeekStartDay<br>
  13725. Starte das Plot in der Wochen-Ansicht mit diesem Tag.
  13726. 0 ist Sonntag, 1 ist Montag, usw.
  13727. </li><br>
  13728. <a name="redirectCmds"></a>
  13729. <li>redirectCmds<br>
  13730. Damit wird das URL Eingabefeld des Browser nach einem Befehl geleert.
  13731. Standard ist eingeschaltet (1), ausschalten kann man es durch
  13732. setzen des Attributs auf 0, z.Bsp. um den Syntax der Kommunikation mit
  13733. FHEMWEB zu untersuchen.
  13734. </li><br>
  13735. <a name="refresh"></a>
  13736. <li>refresh<br>
  13737. Damit erzeugen Sie auf den ausgegebenen Webseiten einen automatischen
  13738. Refresh, z.B. nach 5 Sekunden.
  13739. </li><br>
  13740. <a name="reverseLogs"></a>
  13741. <li>reverseLogs<br>
  13742. Damit wird das Logfile umsortiert, die neuesten Eintr&auml;ge stehen
  13743. oben. Der Vorteil ist, dass man nicht runterscrollen muss um den
  13744. neuesten Eintrag zu sehen, der Nachteil dass FHEM damit deutlich mehr
  13745. Hauptspeicher ben&ouml;tigt, etwa 6 mal so viel, wie das Logfile auf
  13746. dem Datentr&auml;ger gro&szlig; ist. Das kann auf Systemen mit wenig
  13747. Speicher (FRITZ!Box) zum Terminieren des FHEM Prozesses durch das
  13748. Betriebssystem f&uuml;hren.
  13749. </li><br>
  13750. <a name="roomIcons"></a>
  13751. <li>roomIcons<br>
  13752. Leerzeichen getrennte Liste von room:icon Zuordnungen
  13753. Der erste Teil wird als regexp interpretiert, daher muss ein
  13754. Leerzeichen als Punkt geschrieben werden. Beispiel:<br>
  13755. attr WEB roomIcons Anlagen.EDV:icoEverything
  13756. </li><br>
  13757. <a name="sortby"></a>
  13758. <li>sortby<br>
  13759. Der Wert dieses Attributs wird zum sortieren von Ger&auml;ten in
  13760. R&auml;umen verwendet, sonst w&auml;re es der Alias oder, wenn keiner
  13761. da ist, der Ger&auml;tename selbst. Falls der Wert des sortby
  13762. Attributes in {} eingeschlossen ist, dann wird er als ein perl Ausdruck
  13763. evaluiert. $NAME wird auf dem Ger&auml;tenamen gesetzt.
  13764. </li><br>
  13765. <a name="showUsedFiles"></a>
  13766. <li>showUsedFiles<br>
  13767. Zeige nur die verwendeten Dateien in der "Edit files" Abschnitt.
  13768. Achtung: aktuell ist das nur f&uuml;r den "Gplot files" Abschnitt
  13769. implementiert.
  13770. </li>
  13771. <br>
  13772. <a name="sortRooms"></a>
  13773. <li>sortRooms<br>
  13774. Durch Leerzeichen getrennte Liste von R&auml;umen, um deren Reihenfolge
  13775. zu definieren.
  13776. Da die R&auml;ume in diesem Attribut als Regexp interpretiert werden,
  13777. sind Leerzeichen im Raumnamen als Punkt (.) zu hinterlegen.
  13778. Beispiel:<br>
  13779. attr WEB sortRooms DG OG EG Keller
  13780. </li><br>
  13781. <a name="smallscreenCommands"></a>
  13782. <li>smallscreenCommands<br>
  13783. Falls auf 1 gesetzt werden Kommandos, Slider und Dropdown Men&uuml;s im
  13784. Smallscreen Landscape Modus angezeigt.
  13785. </li><br>
  13786. <li>sslVersion<br>
  13787. Siehe das global Attribut sslVersion.
  13788. </li><br>
  13789. <a name="sslCertPrefix"></a>
  13790. <li>sslCertPrefix<br>
  13791. Setzt das Pr&auml;fix der SSL-Zertifikate, die Voreinstellung ist
  13792. certs/server-, siehe auch das HTTP Attribut.
  13793. </li><br>
  13794. <a name="styleData"></a>
  13795. <li>styleData<br>
  13796. wird von dynamischen styles wie f18 werwendet
  13797. </li><br>
  13798. <a name="stylesheetPrefix"></a>
  13799. <li>stylesheetPrefix<br>
  13800. Pr&auml;fix f&uuml;r die Dateien style.css, svg_style.css und
  13801. svg_defs.svg. Wenn die Datei mit dem Pr&auml;fix fehlt, wird die Default
  13802. Datei (ohne Pr&auml;fix) verwendet. Diese Dateien m&uuml;ssen im FHEM
  13803. Ordner liegen und k&ouml;nnen direkt mit "Select style" im FHEMWEB
  13804. Men&uuml;eintrag ausgew&auml;hlt werden. Beispiel:
  13805. <ul>
  13806. attr WEB stylesheetPrefix dark<br>
  13807. <br>
  13808. Referenzdateien:<br>
  13809. <ul>
  13810. darksvg_defs.svg<br>
  13811. darksvg_style.css<br>
  13812. darkstyle.css<br>
  13813. </ul>
  13814. <br>
  13815. </ul>
  13816. <b>Anmerkung:</b>Wenn der Parametername smallscreen oder touchpad
  13817. enth&auml;lt, wird FHEMWEB das Layout/den Zugriff f&uuml;r entsprechende
  13818. Ger&auml;te (Smartphones oder Touchpads) optimieren<br>
  13819. Standardm&auml;&szlig;ig werden 3 FHEMWEB Instanzen aktiviert: Port 8083
  13820. f&uuml;r Desktop Browser, Port 8084 f&uuml;r Smallscreen, und 8085
  13821. f&uuml;r Touchpad.<br>
  13822. Wenn touchpad oder smallscreen benutzt werden, wird WebApp support
  13823. aktiviert: Nachdem Sie eine Seite am iPhone oder iPad mit Safari
  13824. angesehen haben, k&ouml;nnen Sie einen Link auf den Homescreen anlegen um
  13825. die Seite im Fullscreen Modus zu sehen. Links werden in diesem Modus
  13826. anders gerendert, um ein "Zur&uuml;ckfallen" in den "normalen" Browser zu
  13827. verhindern.
  13828. </li><br>
  13829. <a name="SVGcache"></a>
  13830. <li>SVGcache<br>
  13831. Plots die sich nicht mehr &auml;ndern, werden im SVGCache Verzeichnis
  13832. (www/SVGcache) gespeichert, um die erneute, rechenintensive
  13833. Berechnung der Grafiken zu vermeiden. Default ist 0, d.h. aus.<br>
  13834. Siehe den clearSvgCache Befehl um diese Daten zu l&ouml;schen.
  13835. </li><br>
  13836. <a name="title"></a>
  13837. <li>title<br>
  13838. Setzt den Titel der Seite. Falls in {} eingeschlossen, dann wird es
  13839. als Perl Ausdruck evaluiert.
  13840. </li><br>
  13841. <a name="viewport"></a>
  13842. <li>viewport<br>
  13843. Setzt das &quot;viewport&quot; Attribut im HTML Header. Das kann benutzt
  13844. werden um z.B. die Breite fest vorzugeben oder Zoomen zu verhindern.<br>
  13845. Beispiel: attr WEB viewport
  13846. width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no
  13847. </li><br>
  13848. <a name="webCmd"></a>
  13849. <li>webCmd<br>
  13850. Durch Doppelpunkte getrennte Auflistung von Befehlen, die f&uuml;r ein
  13851. bestimmtes Ger&auml;t gelten sollen. Funktioniert nicht mit
  13852. smallscreen, ein Ersatz daf&uuml;r ist der devStateIcon Befehl.<br>
  13853. Beispiel:
  13854. <ul>
  13855. attr lamp webCmd on:off:on-for-timer 10<br>
  13856. </ul>
  13857. <br>
  13858. Der erste angegebene Befehl wird in der "set device ?" list
  13859. nachgeschlagen (Siehe das <a href="#setList">setList</a> Attrib
  13860. f&uuml;r Dummy Ger&auml;te). Wenn <b>dort</b> bekannte Modifier sind,
  13861. wird ein anderes Widget angezeigt. Siehe auch widgetOverride.<br>
  13862. Wenn der Befehl state ist, wird der Wert als Kommando interpretiert.<br>
  13863. Beispiele:
  13864. <ul>
  13865. define d1 dummy<br>
  13866. attr d1 webCmd state<br>
  13867. attr d1 setList state:on,off<br>
  13868. define d2 dummy<br>
  13869. attr d2 webCmd state<br>
  13870. attr d2 setList state:slider,0,1,10<br>
  13871. define d3 dummy<br>
  13872. attr d3 webCmd state<br>
  13873. attr d3 setList state:time<br>
  13874. </ul>
  13875. Anmerkung: dies ist ein Attribut f&uuml;r das anzuzeigende Ger&auml;t,
  13876. nicht f&uuml;r die FHEMWEBInstanz.
  13877. </li><br>
  13878. <a name="webCmdLabel"></a>
  13879. <li>webCmdLabel<br>
  13880. Durch Doppelpunkte getrennte Auflistung von Texten, die vor dem
  13881. jeweiligen webCmd angezeigt werden. Der Anzahl der Texte muss exakt den
  13882. Anzahl der webCmds entsprechen. Um mehrzeilige Anzeige zu realisieren,
  13883. kann ein Return nach dem Text und vor dem Doppelpunkt eingefuehrt
  13884. werden.</li><br>
  13885. <a name="webname"></a>
  13886. <li>webname<br>
  13887. Der Pfad nach http://hostname:port/ . Standard ist fhem,
  13888. so ist die Standard HTTP Adresse http://localhost:8083/fhem
  13889. </li><br>
  13890. <a name="widgetOverride"></a>
  13891. <li>widgetOverride<br>
  13892. Leerzeichen separierte Liste von Name/Modifier Paaren, mit dem man den
  13893. vom Modulautor f&uuml;r einen bestimmten Parameter (Set/Get/Attribut)
  13894. vorgesehene Widgets &auml;ndern kann. Folgendes ist die Liste der
  13895. bekannten Modifier:
  13896. <ul>
  13897. <!-- INSERT_DOC_FROM: www/pgm2/fhemweb.*.js -->
  13898. <li>knob,min:1,max:100,... - zeigt das jQuery knob Widget.Die Parameter
  13899. werden als eine Komma separierte Liste von Key:Value Paaren spezifiziert,
  13900. wobei das data- Pr&auml;fix entf&auml;llt.F&uuml;r Details siehe die
  13901. jQuery knob Dokumentation.<br> Beispiel:
  13902. attr dimmer widgetOverride dim:knob,min:1,max:100,step:1,linecap:round
  13903. </li>
  13904. <p><p> <li>uzsuToggle,zust1,zust2 - damit ist es m&ouml;glich mit einem
  13905. Toggle-Button zwischen zwei Zust&auml;nden zu w&auml;hlen. Der Erste ist
  13906. der aktive Zustand.</li>
  13907. <li>uzsuSelect,val1,val2,... - damit ist es m&ouml;gliche in einer
  13908. Buttonleiste meherere Werte auszuw&auml;hlen. Das Ergebnis ist
  13909. Komma-separiert.</li>
  13910. <li>uzsuSelectRadio,val1,val2,... - damit ist es m&ouml;gliche in einer
  13911. Buttonleiste einen aus meherere Werten auszuw&auml;hlen.</li>
  13912. <li>uzsuDropDown,val1,val2,... - damit ist es m&ouml;gliche mit einem
  13913. DropDown Men&uuml; einen der Werte auszuw&auml;hlen.</li>
  13914. <li>uzsuTimerEntry[,modifier2] - damit werden je ein uzsuSelect,
  13915. uzsuDropDown und uzsuToggle Widget kombiniert um einen Schaltzeitpunkt
  13916. auszuw&auml;hlen. &Uuml;ber den optionalen modifier2 kann ein Widget zur
  13917. Auswahl des Schaltwertes angegeben werden. Siehe Beispiele unten. Das
  13918. Ergebniss is eine komma-separiert Liste von Wochentagen gefolgt vom
  13919. Zeitpunkt, eine Aktiv-Indikator und dem Schaltwert, jeweils durch |
  13920. abetrennt. Zum Beispiel: Mo,Di,Sa,So|00:00|enabled|19.5</li>
  13921. <li>uzsu[,modifier2] - damit werden mehrere uzsuTimerEntry Widets kombiniert
  13922. um eine beliebige Anzahl an Schaltzeiten einzugeben. &Uuml;ber den
  13923. optionalen modifier2 kann ein Widget zur Auswahl des Schaltwertes
  13924. angegeben werden. Siehe Beispiele unten. Das Ergebiss ist eine durch
  13925. leerzeichen getrennte Liste von uzsuTimerEntry Ergebnissen.<br>
  13926. Beispiele:
  13927. <ul>
  13928. attr myToggle widgetOverride state:uzsuToggle,123,xyz<br>
  13929. attr mySelect widgetOverride state:uzsuSelect,abc,123,456,xyz<br>
  13930. attr myTemp widgetOverride
  13931. state:uzsuDropDown,18,18.5,19,19.5,20,20.5,21,21.5,22,22.5,23<br>
  13932. attr myTimerEntry widgetOverride state:uzsuTimerEntry<br>
  13933. attr myTimer widgetOverride state:uzsu<br>
  13934. <br>
  13935. Im Folgenden wird die Verwendung des modifier2 parameters von
  13936. uzsuTimerEntry und uzsu gezeigt um die Auswahl des Schaltzeitpunktes
  13937. mit der Auswahl des Schaltwertes zu kombinieren:
  13938. <pre>
  13939. ... widgetOverride state:uzsu,slider,0,5,100 -> ein slider
  13940. ... widgetOverride state:uzsu,uzsuToggle,off,on -> ein on/off button
  13941. ... widgetOverride state:uzsu,uzsuDropDown,18,19,20,21,22,23 -> ein dropDownMenue
  13942. ... widgetOverride state:uzsu,knob,min:18,max:24,step:0.5,linecap:round,fgColor:red -> ein knob widget
  13943. ... widgetOverride state:uzsu,colorpicker -> ein colorpicker
  13944. ... widgetOverride state:uzsu,colorpicker,CT,2700,50,5000 -> ein colortemperature slider
  13945. </pre>
  13946. </ul></li>
  13947. <p><br>
  13948. <u>FĂźr die folgenden icon.* Widgets gilt:</u><br>
  13949. &lt;color&gt; kann ein Farbname oder eine Farbnummer ohne fßhrende <b>#</b> sein, z.B. orange oder FFA500. Abhängig vom Kontext ist <b>@</b> zu escapen <b>\@</b>.<br>
  13950. &lt;icon&gt; ist der Iconname.<br>
  13951. [class&lt;classname&gt;@] als Prefix vor dem zweiten Parameter, weist den SVG-Icons eine CSS-Klasse zu.<br>
  13952. Beispiele zum Import Ăźber Raw definition findet man im FHEM-Wiki unter <a href="https://wiki.fhem.de/wiki/FHEMWEB/Widgets">FHEMWEB-Widgets</a>
  13953. <li>iconRadio,[class&lt;classname&gt;@][use4icon@]&lt;select color&gt;,&lt;value&gt;,&lt;icon&gt;[@&lt;color&gt;][,&lt;value&gt;,&lt;icon&gt;[@&lt;color&gt;]]...
  13954. - zeigt Icons als Radiobutton an und gibt Value bei Betätigung zurßck.<br>
  13955. &lt;value&gt; ist der Rßckgabe- u.Vergleichswert. Wenn eine numerische Folge von &lt;value&gt; angegeben wird, dann passt der laufende Wert zum nächsten hÜheren Vergleichswert. Vor und hinter der numerischen Folge dßrfen nicht numerische Werte angegeben werden, dazwischen nicht. Die numerische Folge muss auf- oder absteigend sein.<br>
  13956. <u>Beispiel:</u> <code>iconRadio,808080,<b>zu</b>,control_arrow_down,<b>10</b>,fts_shutter_10,<b>20</b>,fts_shutter_20,<b>30</b>,fts_shutter_30,<b>auf</b>,control_arrow_up</code><br>
  13957. &lt;select color&gt; die Hintergrundfarbe des gewählten Icons oder die Farbe des Icons wenn der Prefix use4icon@ vorangestellt wird.<br>
  13958. Das Widget enthält eine CSS-Klasse "iconRadio_widget".<br>
  13959. </li>
  13960. <li>iconButtons,[class&lt;classname&gt;@][use4icon@]&lt;select color&gt;,&lt;value&gt;,&lt;icon&gt;[@&lt;color&gt;][,&lt;value&gt;,&lt;icon&gt;[@&lt;color&gt;]]...
  13961. - zeigt Icons als Tastenleiste an und gibt durch Komma getrennte Werte der betätigten Tasten zurßck.<br>
  13962. &lt;value&gt; ist der RĂźckgabewert.<br>
  13963. &lt;select color&gt; die Hintergrundfarbe des gewählten Icons oder die Farbe des Icons wenn der Prefix use4icon@ vorangestellt wird.<br>
  13964. Das Widget enthält eine CSS-Klasse "iconButton_widget".<br>
  13965. </li>
  13966. <li>iconLabel[,[class&lt;classname&gt;@]&lt;reference value&gt;,[&lt;icon&gt;][@&lt;color&gt;]][,&lt;reference value&gt;,[&lt;icon&gt;][@&lt;color&gt;]]...
  13967. - zeigt Zustände durch colorierte Werte, Beschriftungen und Icons an, wenn
  13968. der aktuelle Wert zum Vergleichswert passt. Ein Zustand wird durch
  13969. ein Parameterpaar beschrieben. Es kĂśnnen beliebig viele Paare angegeben
  13970. werden. Ein Paar besteht aus einem Vergleichswert &lt;reference
  13971. value&gt; und einem optionalen Anzeigewert mit optionaler mit
  13972. Farbangabe [,&lt;reference value&gt;,[&lt;icon&gt;][@&lt;color&gt;]].<br>
  13973. &lt;reference value&gt; kann eine Zahl oder ein regulärer Ausdruck sein.<br>
  13974. Wenn &lt;icon&gt; keinem Iconnamen entspricht, wird der Text angezeigt,
  13975. sonst das Icon. Wird &lt;icon&gt; nicht angegeben, wird der aktuelle
  13976. Wert angezeigt.<br>
  13977. </li>
  13978. <li>iconSwitch,[class&lt;classname&gt;@]&lt;reference value&gt;,[&lt;icon&gt;][@&lt;color&gt;][,&lt;reference value&gt;,[&lt;icon&gt;][@&lt;color&gt;]]...
  13979. - schaltet zyklisch nach jeder Betätigung in den angezeigten
  13980. Zustand, dabei wird der aktuelle Wert auf den Vergleichswert
  13981. gesetzt. Ein Zustand wird durch ein Parameterpaar beschrieben.
  13982. Es kĂśnnen beliebig viele Paare angegeben werden. Ein Paar
  13983. besteht aus einem Vergleichswert &lt;reference value&gt; und einem
  13984. optionalen Anzeigewert mit optionaler mit Farbangabe [,&lt;reference
  13985. value&gt;,[&lt;icon&gt;][@&lt;color&gt;]].<br>
  13986. &lt;reference value&gt; kann eine Zahl oder eine Zeichenkette sein.<br>
  13987. Wenn &lt;icon&gt; keinem Iconnamen entspricht, wird der Text
  13988. angezeigt, sonst das Icon. Wird &lt;icon&gt; nicht angegeben,
  13989. wird der Vergleichwert angezeigt.<br>
  13990. </li>
  13991. <br>
  13992. <p><p><p> <li>:sortable,val1,val2,... - damit ist es m&ouml;glich aus den gegebenen
  13993. Werten eine Liste der gew&uuml;nschten Werte durch Drag &amp; Drop
  13994. zusammenzustellen. Die Reihenfolge der Werte kann dabei entsprechend
  13995. ge&auml;ndert werden. Es m&uuml;ssen keine Werte explizit vorgegeben
  13996. werden, das Widget kann auch ohne vorgegebenen Werte benutzt werden. Es
  13997. k&ouml;nnen eigene Werte zur Liste hinzugef&uuml;gt und einsortiert
  13998. werden. Das Ergebnis ist Komma-separiert entsprechend aufsteigend
  13999. sortiert.</li>
  14000. <li>:sortable-strict,val1,val2,... - damit ist es m&ouml;glich aus den
  14001. gegebenen Werten eine Liste der gew&uuml;nschten Werte durch Drag &amp;
  14002. Drop zusammenzustellen. Die Reihenfolge der Werte kann dabei entsprechend
  14003. ge&auml;ndert werden. Es k&ouml;nnen jedoch keine eigenen Werte zur
  14004. Liste hinzugef&uuml;gt werden. Das Ergebnis ist Komma-separiert
  14005. entsprechend aufsteigend sortiert.</li>
  14006. <li>:sortable-given,val1,val2,... - damit ist es m&ouml;glich aus den
  14007. gegebenen Werten eine sortierte Liste der gew&uuml;nschten Werte durch
  14008. Drag & Drop zusammenzustellen. Es k&ouml;nnen keine Elemente
  14009. gel&ouml;scht und hinzugef&uuml;gt werden. Es m&uuml;ssen alle gegeben
  14010. Werte benutzt und entsprechend sortiert sein. Das Ergebnis ist
  14011. Komma-separiert entsprechend aufsteigend sortiert.</li>
  14012. <p> <li>noArg - es wird kein weiteres Eingabefeld angezeigt.</li>
  14013. <li>time - zeigt ein Zeitauswahlmen&uuml;.
  14014. Beispiel: attr FS20dev widgetOverride on-till:time</li>
  14015. <li>textField - zeigt ein Eingabefeld.<br>
  14016. Beispiel: attr WEB widgetOverride room:textField</li>
  14017. <li>textField-long - ist wie textField, aber beim Click im Eingabefeld wird
  14018. ein Dialog mit einer HTML textarea (60x25) wird ge&ouml;ffnet.</li>
  14019. <li>slider,&lt;min&gt;,&lt;step&gt;,&lt;max&gt;[,1] - zeigt einen
  14020. Schieberegler. Das optionale 1 (isFloat) vermeidet eine Rundung der
  14021. Fliesskommazahlen.</li>
  14022. <li>multiple,&lt;val1&gt;,&lt;val2&gt;,... - zeigt eine Mehrfachauswahl mit
  14023. einem zus&auml;tzlichen Eingabefeld. Das Ergebnis ist Komma
  14024. separiert.</li>
  14025. <li>multiple-strict,&lt;val1&gt;,&lt;val2&gt;,... - ist wie :multiple,
  14026. blo&szlig; ohne Eingabefeld.</li>
  14027. <li>selectnumbers,&lt;min&gt;,&lt;step&gt;,&lt;max&gt;,&lt;number of
  14028. digits after decimal point&gt;,lin|log10" zeigt ein HTML-select mit einer
  14029. Zahlenreihe vom Wert min bis Wert max mit Schritten von step
  14030. angezeigt.<br>
  14031. Die Angabe lin erzeugt eine konstant ansteigende Reihe. Die Angabe
  14032. log10 erzeugt eine exponentiell ansteigende Reihe zur Basis 10,
  14033. step bezieht sich auf den Exponenten, z.B. 0.0625.</li>
  14034. <li>select,&lt;val1&gt;,&lt;val2&gt;,... - zeigt ein HTML select mit allen
  14035. Werten. <b>Achtung</b>: so ein Widget wird auch dann angezeigt, falls
  14036. kein passender Modifier gefunden wurde.</li>
  14037. <p><p> </ul></li>
  14038. </ul>
  14039. </ul>
  14040. <p><a name="FHT"></a>
  14041. <h3>FHT</h3>
  14042. <div class='langLinks'>[<a href='commandref.html#FHT'>EN</a> DE]</div>
  14043. <ul>
  14044. Fhem kann FHT Funktelegramme (868.35 MHz) entweder mit einem <a
  14045. href="#FHZ">FHZ</a> oder einem <a href="#CUL">CUL</a> empfangen, daher muss
  14046. dieses zuerst definiert sein.
  14047. <br><br>
  14048. <a name="FHTdefine"></a>
  14049. <b>Define</b>
  14050. <ul>
  14051. define &lt;name&gt; FHT &lt;fhtaddress&gt;
  14052. <br><br>
  14053. &lt;fhtaddress&gt; ist eine vierstellige HEX Zahl entsprechend der
  14054. Adresse des FHT80b Ger&auml;tes.
  14055. <br>
  14056. Beispiel:
  14057. <ul>
  14058. define wz FHT 3232<br>
  14059. </ul>
  14060. <br>
  14061. Mehr dazu im FHT Abschnitt <a href="#set">set</a>.
  14062. </ul>
  14063. <br>
  14064. <a name="FHTset"></a>
  14065. <b>Set </b>
  14066. <ul>
  14067. set &lt;name&gt; &lt;valuetype&gt; &lt;value&gt;
  14068. <br><br>
  14069. Wobei value eines von folgenden ist:<br>
  14070. <ul>
  14071. desired-temp<br>
  14072. day-temp night-temp<br>
  14073. report1 report2<br>
  14074. refreshvalues<br>
  14075. mode<br>
  14076. holiday1 holiday2 # siehe mode holiday_short oder holiday<br>
  14077. manu-temp # Keine Ahnung was das bewirkt<br>
  14078. year month day hour minute<br>
  14079. time date<br>
  14080. lowtemp-offset # Alarm-Temp.-Differenz<br>
  14081. windowopen-temp<br>
  14082. mon-from1 mon-to1 mon-from2 mon-to2<br>
  14083. tue-from1 tue-to1 tue-from2 tue-to2<br>
  14084. wed-from1 wed-to1 wed-from2 wed-to2<br>
  14085. thu-from1 thu-to1 thu-from2 thu-to2<br>
  14086. fri-from1 fri-to1 fri-from2 fri-to2<br>
  14087. sat-from1 sat-to1 sat-from2 sat-to2<br>
  14088. sun-from1 sun-to1 sun-from2 sun-to2<br>
  14089. </ul>
  14090. Beispiele:
  14091. <ul>
  14092. set wz desired-temp 22.5<br>
  14093. set fl desired-temp 20.5 day-temp 19.0 night-temp 16.0<br>
  14094. </ul>
  14095. <br>
  14096. Hinweise:
  14097. <ul>
  14098. <li>Folgende Events werden (mehr oder weniger regelm&auml;&szlig;ig) von
  14099. jedem FHT Device gemeldet:
  14100. <ul>
  14101. measured-temp actuator actuator1...actuator8 warnings<br>
  14102. </ul>
  14103. Diese Strings k&ouml;nnen f&uuml;r <a href="#notify">notify</a> oder
  14104. <a href="#FileLog">FileLog</a> Definitionen verwendet werden.
  14105. <ul>
  14106. <li>Warnings k&ouml;nnen folgende Strings enthalten:
  14107. none, Battery low,Temperature too low, Window open,
  14108. Fault on window sensor
  14109. </li>
  14110. <li>actuator (ohne Suffix) steht f&uuml;r alle Aktoren.</li>
  14111. <li>actuator or actuator1..8 kann folgende Werte verarbeiten:
  14112. <ul>
  14113. <li>&lt;value&gt;%<br>
  14114. Das ist der Normalfall. Der Aktor wird angewiesen auf diesen
  14115. Wert zu &ouml;ffnen.
  14116. </li>
  14117. <li>offset &lt;value&gt;%<br>
  14118. Der Aktor l&auml;uft mit diesem Offset.
  14119. </li>
  14120. <li>lime-protection<br>
  14121. Der Aktor wird angewiesen die lime-protection (Kalkschutz)
  14122. Prozedur auszuf&uuml;hren.
  14123. </li>
  14124. <li>synctime<br>
  14125. Wenn Sond/Sync beim FHT80B gew&auml;hlt wird, wird ein
  14126. Countdown gesetzt.
  14127. </li>
  14128. <li>test<br>
  14129. Der Aktor wird vom FHT80b angewiesen zu piepsen (beep).
  14130. </li>
  14131. <li>pair<br>
  14132. Das FHT80b sendet ein "you-belong-to-me"
  14133. (Du-geh&ouml;rst-zu-mir) an diesen Aktor.
  14134. </li>
  14135. </ul></li>
  14136. </ul></li>
  14137. <br>
  14138. <li>Das FHT ist sehr sparsam (oder faul). Es akzeptiert eine Nachricht
  14139. vom FHZ1x00 alle 115+x Sekunden, wobei x von der fhtaddress
  14140. abh&auml;ngt. Nicht &uuml;berrascht sein wenn ein Befehl erst 10
  14141. Minuten sp&auml;ter vom Ger&auml;t angenommen wird. Die FHT Befehle
  14142. werden im FHZ1x00/CUL gepuffert bis sie zum FHT geschickt werden.
  14143. Siehe den zugeh&ouml;rigen fhtbuf Eintrag im der <a
  14144. href="#get">get</a> Abschnitt. Es k&ouml;nnen bis zu 8 Befehle in
  14145. einer Nachricht an ein FHT geschickt werden wenn diese alle als
  14146. Argumente im gleichen set Befehl zusammengefasst werden. Siehe
  14147. nachfolgendes Beispiel. </li><br>
  14148. <li>time setzt Stunde und Minute auf lokale Zeit</li><br>
  14149. <li>date setzt Jahr, Monat und Tag auf lokale Zeit</li><br>
  14150. <li>refreshvalues ist ein Alias f&uuml;r report1 255 report2 255</li><br>
  14151. <li>Alle *-temp Werte brauchen eine Temperatur als Argument welche auf
  14152. 0.5&deg;C gerundet wird.<br> Temperatur Werte m&uuml;ssen zwischen
  14153. 5.5&deg;C und 30.5&deg;C sein. Der Wert 5.5 setzt den Aktor auf OFF,
  14154. der Wert 30.5 setzt den Aktor auf ON</li><br>
  14155. <li>mode kann auto, manual, holiday or
  14156. holiday_short sein.<br>
  14157. Wenn der mode holiday ist, schaltet dieser zur&uuml;ck auf entweder
  14158. auto oder manual um 00:00 des Tages der wie folgt spezifiziert wird:
  14159. <ul>
  14160. <li>holiday1 setzt Endtag des Urlaubs</li>
  14161. <li>holiday2 setzt den Endmonat des Urlaubs</li>
  14162. </ul>
  14163. F&uuml;r holiday_short (Party Modus)
  14164. <ul>
  14165. <li> holiday1 setzt die absolute Stunde zu der von diesem Modus
  14166. zur&uuml;ck geschalten wird (in 10-Minuten Schritten, max.
  14167. 144)</li>
  14168. <li> holiday2 setzt den Tag des Monats an dem von diesem Modus
  14169. zur&uuml;ck geschalten wird (kann nur heute oder morgen sein, da
  14170. holiday1 nur 24h akzeptiert.)</li>
  14171. Beispiel:
  14172. <ul>
  14173. <li>Aktuelles Datum ist der 29. Januar, Uhrzeit ist 18:05</li>
  14174. <li>Es soll bis morgen 1:00Uhr in den Party Modus geschalten
  14175. sein</li>
  14176. <li>set holiday1 to 6 (6 x 10min = Std) and holiday2 to
  14177. 30</li>
  14178. </ul>
  14179. </ul>
  14180. Die Temperatur f&uuml;r den Urlaubszeitraum wird durch den
  14181. desired-temperature Parameter setzt. <br> Bitte beachten, dass der
  14182. Holiday Mode nicht fr&uuml;her als auf &Uuml;bermorgen eingestellt
  14183. werden kann. Alternativ muss hier holiday_short genutzt werden.<br>
  14184. Weiterhin bitte beachten das diese Kommandos nur in einem
  14185. "Sammelkommando" erfolgen k&ouml;nnen. Beispiel:
  14186. <br>
  14187. set FHT1 mode holiday holiday1 24 holiday2 12 desired-temp 14
  14188. </li><br>
  14189. <li>Die *-from1/*-from2/*-to1/*-to2 Wertetypen brauchen eine
  14190. Zeitspezifikation als Argument im Format HH:MM. Diese definieren den
  14191. Zeitraum in dem die day-temp g&uuml;ltig ist. Minuten (MM) werden
  14192. auf 10er gerundet, 24:00 bedeutet OFF. </li><br>
  14193. <li>Um die FHZ Zeit zu synchronisieren und um "stumme" Ger&auml;te
  14194. zu wecken, wird folgendes Kommando empfohlen:<br> define fht_sync at
  14195. +*3:30 set TYPE=FHT time </li><br>
  14196. <li>report1 mit dem Parameter 255 fordert das Senden aller Einstellungen
  14197. von Montag bis Sonntag an. Das Argument ist ein Bitfeld um einzelne
  14198. Werte wie folgt anzufordern:
  14199. <ul>
  14200. <li> 1: monday</li>
  14201. <li> 2: tuesday</li>
  14202. <li> 4: thursday</li>
  14203. <li> 8: wednesday</li>
  14204. <li>16: friday</li>
  14205. <li>32: saturday</li>
  14206. <li>64: sunday</li>
  14207. </ul>
  14208. measured-temp und actuator werden mitgesendet wenn vom FHT als
  14209. notwendig erachtet.
  14210. <br><br>
  14211. <b>Hinweis:</b> Dieser Befehl erzeugt sehr viel Funkverkehr was zu
  14212. weiteren Problemen f&uuml;hren kann, besonders wenn Empfang nicht gut
  14213. ist. </li><br>
  14214. <li>report2 mit dem Parameter 255 fordert die Ausgabe der nachfolgenden
  14215. Einstellungen an:<br> day-temp night-temp windowopen-temp
  14216. lowtemp-offset desired-temp measured-temp mode warnings.<br> Das
  14217. Argument ist ein Bitfeld, um einzelne Werte abzufragen folgendes
  14218. anh&auml;ngen:
  14219. <ul>
  14220. <li> 1: warnings</li>
  14221. <li> 2: mode</li>
  14222. <li> 4: day-temp, night-temp, windowopen-temp</li>
  14223. <li> 8: desired-temp</li>
  14224. <li>64: lowtemp-offset</li>
  14225. </ul>
  14226. measured-temp und actuator werden mitgesendet wenn vom FHT als
  14227. notwendig erachtet. <br></li>
  14228. <li>lowtemp-offset braucht eine Temperatur als Argument. G&uuml;ltige
  14229. Werte m&uuml;ssen zwischen 1.0 und 5.0&deg;C liegen.<br> Wird eine
  14230. Warnung erzeugen wenn die desired-temp - measured-temp &gt;
  14231. lowtemp-offset, jedoch fr&uuml;hestens 1,5Stunden nach der letzten
  14232. &Auml;nderung der desired-temp. </li><br>
  14233. <li>FHEM hat optional einen internen Softwarepuffer f&uuml;r FHT
  14234. Devices. Dieser Puffer soll vor &Uuml;bertragungsfehlern
  14235. sch&uuml;tzen. Wenn nach einem bestimmten Zeitraum keine
  14236. Best&auml;tigung erhalten wurde wird FHEM den Befehl erneut senden.
  14237. Die Befehle in der Warteschlagen k&ouml;nnen mit <a
  14238. href="#list">list</a> &lt;fht-device&gt; angezeigt werden. Siehe die
  14239. Attribute <a href="#fhtsoftbuffer">fhtsoftbuffer</a>, <a
  14240. href="#retrycount">retrycount</a> und <a
  14241. href="#minfhtbuffer">minfhtbuffer</a> f&uuml;r weitere Details.
  14242. </li><br>
  14243. <li>Befehle im Softwarepuffer werden in folgender Reihenfolge
  14244. gesendet:<br>
  14245. desired-temp,mode,report1,report2,holiday1,holiday2,day-temp,night-temp,
  14246. [all other commands] </li><br>
  14247. </ul>
  14248. </ul>
  14249. <br>
  14250. <b>Get</b> <ul>N/A</ul><br>
  14251. <a name="FHTattr"></a>
  14252. <b>Attribute</b>
  14253. <ul>
  14254. <li><a href="#attrdummy">dummy</a><br>
  14255. <b>Hinweis:</b> Es macht Sinn ein FHT Device auch f&uuml;r ein FHT8b zu
  14256. definieren da sonst der Fehler "unknown FHT device, please define one"
  14257. f&uuml;r jedes FHT8b generiert wird, denn das CUL meldet die 8b
  14258. Nachrichten. Das dummy Attribut sollte bei diesen Devices gesetzt werden
  14259. da sonst der interne FHT Buffer des CUL mit 8b-Daten gef&uuml;llt wird
  14260. die niemals gebraucht werden. Wenn der Puffer dann voll ist werden "EOB"
  14261. Nachrichten vom CUL erzeugt, und Senden zu den 8b ist nicht mehr
  14262. m&ouml;glich.</li><br>
  14263. <a name="retrycount"></a>
  14264. <li>retrycount<br>
  14265. Wenn das <a href="#fhtsoftbuffer">fhtsoftbuffer</a> Attribut gesetzt ist,
  14266. dann werden die Befehle entsprechend dem retrycount n-mal erneut
  14267. versendet wenn nach 240 Sekunden keine Best&auml;tigungsmeldung vom
  14268. entsprechenden FHZ Device empfangen wurde.<br> Der Default-Wert ist
  14269. 1.</li><br>
  14270. <a name="minfhtbuffer"></a>
  14271. <li>minfhtbuffer<br>
  14272. FHEM sendet keine Befehle mehr zum FHZ wenn der fhtbuffer-Wert diesen
  14273. Wert unterschritten hat. Default-Wert ist 0. Wenn dieser Wert zu niedrig
  14274. ist hat die Reihenfolge von fht-Befehlen weniger Einfluss da nur Befehle
  14275. im Softbuffer priorisiert werden k&ouml;nnen. (Siehe Hinweise in der FHT
  14276. Sektion <a href="#set">set</a>) Der Maximalwert sollte 7 unter dem
  14277. Hardware Maximum sein, siehe fhtbuf. </li><br>
  14278. <a name="lazy"></a>
  14279. <li>lazy<br>
  14280. Wenn das Attribut lazy (faul) gesetzt wurde sendet FHEM keine Befehle
  14281. wenn die aktuell gelesenen Werte und der zu setzende Wert identisch sind.
  14282. Das spart Funkzeit und hilft Konflikte mit der Regelung die besagt, dass
  14283. maximal 1% der Zeit als Funkzeit verwendet werden darf, zu vermeiden.
  14284. Nicht standardm&auml;&szlig;ig aktiviert. </li><br>
  14285. <a name="tmpcorr"></a>
  14286. <li>tmpcorr<br>
  14287. Korrigiert die Werte die vom FHZ gemeldet werden um den angegebenen Wert.
  14288. Hinweis: nur die measured-temp Werte die von FHEM gemeldet (f&uuml;r
  14289. Logging genutzt) werden angepasst. </li><br>
  14290. <li><a href="#ignore">ignore</a></li>
  14291. <li><a href="#do_not_notify">do_not_notify</a></li>
  14292. <li><a href="#model">model</a> (fht80b)</li>
  14293. <li><a href="#showtime">showtime</a></li>
  14294. <li><a href="#IODev">IODev</a></li>
  14295. <li><a href="#eventMap">eventMap</a></li>
  14296. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  14297. </ul>
  14298. <br>
  14299. <a name="FHTevents"></a>
  14300. <b>Erzeugte Events:</b>
  14301. <ul>
  14302. <li>actuator</li>
  14303. <li>actuator1 actuator2 actuator3 actuator4<br>
  14304. actuator5 actuator6 actuator7 actuator8<br>
  14305. (wird gesendet wenn ein Offset zum entsprechenden Ventil konfiguriert wurde)</li>
  14306. <li>mon-from1 mon-to1 mon-from2 mon-to2</li>
  14307. <li>tue-from1 tue-to1 tue-from2 tue-to2</li>
  14308. <li>wed-from1 wed-to1 wed-from2 wed-to2</li>
  14309. <li>thu-from1 thu-to1 thu-from2 thu-to2</li>
  14310. <li>fri-from1 fri-to1 fri-from2 fri-to2</li>
  14311. <li>sat-from1 sat-to1 sat-from2 sat-to2</li>
  14312. <li>sun-from1 sun-to1 sun-from2 sun-to2</li>
  14313. <li>mode</li>
  14314. <li>holiday1 holiday2</li>
  14315. <li>desired-temp</li>
  14316. <li>measured-temp measured-low measured-high</li>
  14317. <li>warnings</li>
  14318. <li>manu-temp</li>
  14319. <li>year month day hour minute</li>
  14320. <li>day-temp night-temp lowtemp-offset windowopen-temp</li>
  14321. <li>ack can-xmit can-rcv ack2 start-xmit end-xmit (Nur wenn das CUL
  14322. f&uuml;r die &Uuml;bertragung von FHT Protokoll Daten konfiguriert
  14323. ist)</li>
  14324. </ul>
  14325. <br>
  14326. </ul>
  14327. <p><a name="FHT8V"></a>
  14328. <h3>FHT8V</h3>
  14329. <div class='langLinks'>[<a href='commandref.html#FHT8V'>EN</a> DE]</div>
  14330. <ul>
  14331. Fhem kann die Ventile vom Typ FHT8V durch einen <a href="#CUL">CUL</a>
  14332. direkt, ohne zwischengeschalteten FHT, ansteuern. Dieser Abschnitt
  14333. beschreibt einen der Bausteine, der andere ist das <a href="#PID">PID</a> Device.
  14334. <br>
  14335. <br>
  14336. <a name="FHT8Vdefine"></a>
  14337. <b>Define</b>
  14338. <ul>
  14339. <code>define &lt;name&gt; FHT8V &lt;Hauscode&gt; [IODev|FHTID]</code>
  14340. <br><br>
  14341. <code>&lt;Hauscode&gt;</code> ist eine vierstellige hexadezimale Zahl, die
  14342. folgende Beziehung zum zust&auml;ndigen CUL-Device aufweisen muss:
  14343. <ul>Bei gegebenem Hauscode des CUL als AABB muss dieser Hauscode die Form CCBB
  14344. haben, wobei CC gr&ouml;&szlig;er oder gleich AA, aber kleiner AA+8 sein muss.
  14345. </ul>
  14346. Diese Form wurde gew&auml;hlt, damit der CUL alle FHT8V-Ventilstellungen
  14347. innerhalb von zwei Minuten aktualisieren kann. <br><br>
  14348. <code>&lt;IODev&gt;</code> mu&szlig; angegeben werden, wenn der als letzter
  14349. definierte CUL nicht der zust&auml;ndige ist. Normalerweise wird dies mit
  14350. dem <a href="#IODev">IODev</a>-Attribut gesetzt, da die
  14351. &Uuml;berpr&uuml;fung der Adresse aber w&auml;hrend der Definition erfolgt,
  14352. brauchen wir hier eine Ausnahme. <br>
  14353. Als Alternative kann man die FHTID des zust&auml;ndigen IODev-Ger&auml;tes
  14354. (anstelle des IODev selbst) setzen. Diese Methode ist n&ouml;tig, wenn man
  14355. FHT8V &uuml;ber FHEM2FHEM betreibt. <br>
  14356. Beispiel:
  14357. <ul>
  14358. <code>define wz FHT8V 3232</code><br>
  14359. </ul>
  14360. </ul>
  14361. <br>
  14362. <a name="FHT8Vset"></a>
  14363. <b>Set </b>
  14364. <ul>
  14365. <li>set &lt;name&gt; valve &lt;Wert&gt;<br>
  14366. &Ouml;ffnet das Ventil auf den angegebenen Wert (in Prozent, von 0 bis 100).
  14367. </li>
  14368. <li>set &lt;name&gt; pair<br>
  14369. Verbindet das Ventil mit dem CUL.
  14370. </li>
  14371. <li>set &lt;name&gt; decalc<br>
  14372. Startet einen Entkalkungslauf des angegebenen Ventils.
  14373. </li>
  14374. </ul>
  14375. <br>
  14376. <a name="FHT8Vget"></a>
  14377. <b>Get </b>
  14378. <ul>
  14379. <li>get &lt;name&gt; valve<br>
  14380. Liest die Ventil&ouml;ffnung aus dem FHT-Puffer des CUL und wandelt sie
  14381. in Prozent (von 0 bis 100) um.
  14382. </li>
  14383. </ul>
  14384. <br>
  14385. <a name="FHT8Vattr"></a>
  14386. <b>Attributes</b>
  14387. <ul>
  14388. <li><a href="#IODev">IODev</a></li>
  14389. <li><a href="#dummy">dummy</a></li>
  14390. <li><a href="#ignore">ignore</a></li>
  14391. <li><a href="#eventMap">eventMap</a></li><br>
  14392. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  14393. </ul>
  14394. <br>
  14395. </ul>
  14396. <p><a name="FHZ"></a>
  14397. <h3>FHZ</h3>
  14398. <ul>
  14399. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14400. hier: <a href='commandref.html#FHZ'>FHZ</a><br/>
  14401. </ul>
  14402. <a name="FLOORPLAN"></a>
  14403. <h3>FLOORPLAN</h3>
  14404. <div class='langLinks'>[<a href='commandref.html#FLOORPLAN'>EN</a> DE]</div>
  14405. <ul>
  14406. Fßgt dem fhem-Menß einen zusätzlichen Menßpunkt "Floorplans" hinzu, der zu einer Anzeige ohne fhem-Menß, Räume oder device-Listen fßhrt.
  14407. Geräte kÜnnen an einer festlegbaren Koordinate auf dem Bildschirm angezeigt werden, ßblicherweise mit einem anklickbaren icon, das das Ein- oder Aus-Schalten
  14408. des Geräts durch klicken erlaubt. Ein Hintergrundbild kann verwendet werden - z.B. ein Grundriss oder jegliches andere Bild.
  14409. Mit floorplanstyle.css kann die Formatierung angepasst werden.<br>
  14410. Eine Schritt-fĂźr-Schritt-Anleitung zur Einrichtung ist verfĂźgbar in
  14411. <a href="http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/docs/fhem-floorplan-installation-guide.pdf?format=raw">Englisch</a> und
  14412. <a href="http://www.fhemwiki.de/wiki/Floorplan_Installations-Leitfaden" target="_blank">Deutsch</a>. <br>
  14413. <br>
  14414. <a name="FLOORPLANdefine"></a>
  14415. <b>Define</b>
  14416. <ul>
  14417. <code>define &lt;name&gt; FLOORPLAN </code>
  14418. <br><br>
  14419. <b>Hinweis:</b> Speichern Sie Ihr Hintergrundbild mit dem Dateinamen fp_&lt;name&gt;.png in Ihrem icon_ordner (www/images/default , www/pgm2 or FHEM) .<br><br>
  14420. Beispiel:
  14421. <ul>
  14422. <code>
  14423. define Grundriss FLOORPLAN<br>
  14424. fp_Grundriss.png
  14425. </code><br>
  14426. </ul>
  14427. </ul>
  14428. <br>
  14429. <a name="FLOORPLANset"></a>
  14430. <b>Set</b>
  14431. <ul>
  14432. <li>N/A</li>
  14433. </ul>
  14434. <br>
  14435. <a name="FLOORPLANget"></a>
  14436. <b>Get</b>
  14437. <ul>
  14438. <code>get &lt;name&gt; config</code>
  14439. <br>
  14440. Zeigt die Konfiguration des FLOORPLAN <name> incl. allen Attributen an. Kann fuer ein include-file verwendet werden.<br>
  14441. </ul>
  14442. <br>
  14443. <a name="FLOORPLANattr"></a>
  14444. <b>Attribute</b>
  14445. <ul>
  14446. <li><a name="fp_fpname">userattr fp_&lt;name&gt; &lt;top&gt;,&lt;left&gt;[,&lt;style&gt;[,&lt;description&gt;]]</a><br><br>
  14447. A <a href="#userattr">userattr</a> fp_&lt;name&gt; wird automatisch angelegt, sofern es noch nicht existiert.<br>
  14448. <ul>
  14449. <li>top = Bildschirmposition, pixel vom oberen Bildschirmrand</li>
  14450. <li>left = Bildschirmposition, pixel vom linken Bildschirmrand</li>
  14451. <li>style =
  14452. <ul>
  14453. <li>0 nur icon/Status</li>
  14454. <li>1 Gerätename und icon/Status</li>
  14455. <li>2 Gerätename, icon/Status und Kommandos</li>
  14456. <li>3 Geräte-reading und optionale Beschreibung</li>
  14457. <li>4 S300TH-spezifisch, zeigt Temperatur und Luftfeuchtigkeit an</li>
  14458. <li>5 icon/Status und Kommandos (ohne Gerätename)</li>
  14459. <li>6 Geräte-reading, Zeitstempel und optionale Beschreibung</li>
  14460. <li>7 nur Kommandos</li>
  14461. <li>8 popup fĂźr kommandos</li>
  14462. </ul>
  14463. </li>
  14464. <li>Eine ggf. angegebene Bschreibung wird anstelle des original-Gerätenamens angezeigt.</li>
  14465. </ul></li><br>
  14466. Beispiele:<br>
  14467. <ul>
  14468. <table>
  14469. <tr><td><code>attr lamp1 fp_Erdgeschoss 100,100</code></td><td><code>#display lamp1 with icon only at screenposition 100,100</code></td></tr>
  14470. <tr><td><code>attr lamp2 fp_Erdgeschoss 100,140,1,Art-Deco</code></td><td><code>#display lamp2 with description 'Art-Deco-Light' at 100,140</code></td></tr>
  14471. <tr><td><code>attr lamp2 fp_ErsteEtage 130,100,1</code></td><td><code>#display the same device at different positions on other floorplans</code></td></tr>
  14472. <tr><td><code>attr myFHT fp_Erdgeschoss 300,20,10,Temperature</code></td><td><code>#display given Text + FHT-temperature</code></td></tr>
  14473. </table>
  14474. </ul>
  14475. <b>Hinweis:</b> Die Parameter mĂźssen ohne Leerstellen aneinandergereiht werden.<br><br>
  14476. <li><a name="fp_arrange">fp_arrange</a><br>
  14477. Aktiviert den "arrange-Modus" der ein zusätzliches Menß anzeigt,
  14478. mit dem Geräte auf dem Bildschirm angeordnet werden kÜnnen. Bei aktiviertem arrange-mode kÜnnen alle devices per drag&amp;drop platziert werden.<br>
  14479. Beispiel:
  14480. <ul>
  14481. <code>attr Erdgeschoss fp_arrange 1</code><br>
  14482. <code>attr Erdgeschoss fp_arrange WEB #Aktiviert den arrange-Modus nur fĂźr die Webinstanz WEB</code><br><br>
  14483. </ul>
  14484. </li>
  14485. <li><a name="stylesheet">stylesheet</a><br>
  14486. ErmĂśglicht die Verwendung eines eigenen css-stylesheet fĂźr Ihren floorplan. Dieses Attribut hat Vorrang vor dem Standard-stylesheet.
  14487. Das Standard-stylesheet fĂźr floorplans ist <code>floorplanstyle.css</code>. Falls <a href="#stylesheetPrefix">stylesheetPrefix</a> in der korrespondierenden FHEMWEB-Instanz gesetzt ist, wird dieser
  14488. <code>stylesheetPrefix</code> auch dem stylesheet fĂźr floorplans vorangestellt (prepend).<br>
  14489. Alle stylesheets werden im stylesheet-Ordner des fhem-Dateisystems abgelegt. Legen Sie dort
  14490. Ihr eigenes stylesheet neben <code>floorplanstyle.css</code> in demselben Ordner ab.<br>
  14491. Beispiel:
  14492. <ul>
  14493. <code>attr Erdgeschoss stylesheet myfloorplanstyle.css</code><br><br>
  14494. </ul>
  14495. </li>
  14496. <li><a name="fp_default">fp_default</a><br>
  14497. Der floorplan-Startbildschirm wird Ăźbersprungen wenn dieses Attribut einem der von Ihnen definierten floorplans zugeordnet ist.
  14498. </li>
  14499. Beispiel:
  14500. <ul>
  14501. <code>attr Erdgeschoss fp_default 1</code><br><br>
  14502. </ul>
  14503. <li><a name="fp_noMenu">fp_noMenu</a><br>
  14504. Blendet das floorplans-MenĂź aus, das normalerweise am linken Bildschirmrand angezeigt wird.
  14505. </li>
  14506. Beispiel:
  14507. <ul>
  14508. <code>attr Erdgeschoss fp_noMenu 1</code><br><br>
  14509. </ul>
  14510. <li><a name="commandfield">commandfield</a><br>
  14511. FĂźgt Ihrem floorplan ein fhem-Kommandofeld hinzu.
  14512. </li>
  14513. Beispiel:
  14514. <ul>
  14515. <code>attr Erdgeschoss commandfield 1</code><br><br>
  14516. </ul>
  14517. <li><a name="fp_backgroundimg">fp_backgroundimg</a><br>
  14518. Gestattet die Bennung eine Hintergundbilds unabhängig vom floorplan-Namen.<br>
  14519. <b>Hinweis:</b> Das Attribut kann mittels notify geändert werden, um z.B. unterschiedliche Hintergundbidlder am Tag oder in der Nacht anzuzeigen.<br>
  14520. Beispiel:
  14521. <ul>
  14522. <code>attr Erdgeschoss fp_backgroundimg foobar.png</code><br><br>
  14523. </ul>
  14524. </li>
  14525. <li><a name="fp_viewport">fp_viewport</a><br>
  14526. Gestattet die Verwendung eines abweichenden viewport-Wertes fĂźr die touchpad-Ausgabe.<br>
  14527. Die Default-viewport-Angbe ist "width=768".
  14528. </li>
  14529. <a name="fp_roomIcons"></a>
  14530. <li>fp_roomIcons<br>
  14531. Mit Leerstellen getrennte Liste von floorplan:icon -Paaren, um
  14532. einem Eintrag des floorplan-Menues icons zuzuordnen, genau wie
  14533. die entsprechende Funktionalitaet in FHEMWEB. Beispiel:<br>
  14534. attr Grundriss fp_roomIcons Grundriss:control_building_empty Media:audio_eq
  14535. </li>
  14536. <li><a name="fp_inherited">Vererbt von FHEMWEB</a><br>
  14537. Die folgenden Attribute werden von der zugrundliegenden <a href="#FHEMWEB">FHEMWEB</a>-Instanz vererbt:<br>
  14538. <ul>
  14539. <a href="#smallscreen">smallscreen</a><br>
  14540. <a href="#touchpad">touchpad</a><br>
  14541. <a href="#refresh">refresh</a><br>
  14542. <a href="#plotmode">plotmode</a><br>
  14543. <a href="#plotsize">plotsize</a><br>
  14544. <a href="#webname">webname</a><br>
  14545. <a href="#redirectCmds">redirectCmds</a><br>
  14546. <a href="#longpoll">longpoll</a><br>
  14547. <a href="#allowedCommands">allowedCommands</a><br>
  14548. </ul>
  14549. </li><br>
  14550. </ul>
  14551. <br>
  14552. </ul>
  14553. <p><a name="FRAMEBUFFER"></a>
  14554. <h3>FRAMEBUFFER</h3>
  14555. <ul>
  14556. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14557. hier: <a href='commandref.html#FRAMEBUFFER'>FRAMEBUFFER</a><br/>
  14558. </ul>
  14559. <a name="FRITZBOX"></a>
  14560. <h3>FRITZBOX</h3>
  14561. <div class='langLinks'>[<a href='commandref.html#FRITZBOX'>EN</a> DE]</div>
  14562. <div>
  14563. <ul>
  14564. Steuert gewisse Funktionen eines Fritz!Box Routers. Verbundene Fritz!Fon's (MT-F, MT-D, C3, C4) kÜnnen als Signalgeräte genutzt werden. MP3-Dateien und Text (Text2Speech) kÜnnen als Klingelton oder einem angerufenen Telefon abgespielt werden.
  14565. <br>
  14566. Fßr detailierte Anleitungen bitte die <a href="http://www.fhemwiki.de/wiki/FRITZBOX"><b>FHEM-Wiki</b></a> konsultieren und ergänzen.
  14567. <br/><br/>
  14568. Das Modul schaltet in den lokalen Modus, wenn FHEM auf einer Fritz!Box läuft (als root-Benutzer!). Ansonsten versucht es eine Web oder Telnet Verbindung zu "fritz.box" zu Üffnen. D.h. Telnet (#96*7*) muss auf der Fritz!Box erlaubt sein. Fßr diesen Fernzugriff muss <u>einmalig</u> das Passwort gesetzt werden.
  14569. <br/><br/>
  14570. Die Steuerung erfolgt teilweise ßber die offizielle TR-064-Schnittstelle und teilweise ßber undokumentierte Schnittstellen zwischen Webinterface und Firmware Kern. Das Modul funktioniert am besten mit dem Fritz!OS 6.24. Bei den nachfolgenden Fritz!OS Versionen hat AVM einige interne Schnittstellen (telnet, webcm) ersatzlos gestrichen. <b>Einige Modul-Funktionen sind dadurch nicht oder nur eingeschränkt verfßgbar (siehe Anmerkungen zu benÜtigten API).</b>
  14571. <br>
  14572. Bitte auch die anderen Fritz!Box-Module beachten: <a href="#SYSMON">SYSMON</a> und <a href="#FB_CALLMONITOR">FB_CALLMONITOR</a>.
  14573. <br>
  14574. <i>Das Modul nutzt das Perlmodule 'Net::Telnet', 'JSON::XS', 'LWP', 'SOAP::Lite' fĂźr den Fernzugriff.</i>
  14575. <br/><br/>
  14576. <a name="FRITZBOXdefine"></a>
  14577. <b>Define</b>
  14578. <ul>
  14579. <br>
  14580. <code>define &lt;name&gt; FRITZBOX [host]</code>
  14581. <br/>
  14582. Das Attribut <i>host</i> ist die Web-Adresse (Name oder IP) der Fritz!Box. Fehlt es, so schaltet das Modul in den lokalen Modus oder nutzt die Standardadresse "fritz.box".
  14583. <br/><br/>
  14584. Beispiel: <code>define Fritzbox FRITZBOX</code>
  14585. <br/><br/>
  14586. Das FritzOS hat eine versteckte Funktion (Osterei).
  14587. <br>
  14588. <code>define MyEasterEgg weblink htmlCode { FRITZBOX_fritztris("Fritzbox") }</code>
  14589. <br/><br/>
  14590. </ul>
  14591. <a name="FRITZBOXset"></a>
  14592. <b>Set</b>
  14593. <ul>
  14594. <br>
  14595. <li><code>set &lt;name&gt; alarm &lt;Nummer&gt; [on|off] [time] [once|daily|Mo|Tu|We|Th|Fr|Sa|So]</code>
  14596. <br>
  14597. Schaltet den Weckruf Nummer 1, 2 oder 3 an oder aus (Standard ist on). Setzt die Zeit und den Wochentag.
  14598. <br>
  14599. BenĂśtigt die API: Telnet oder webcm.
  14600. </li><br>
  14601. <li><code>set &lt;name&gt; call &lt;number&gt; [Dauer] [say:Text|play:MP3URL]</code>
  14602. <br>
  14603. Ruf fĂźr 'Dauer' Sekunden (Standard 60 s) die angegebene Telefonnummer von einem internen Telefonanschluss an (Standard ist 1 oder das Attribut 'ringWithIntern'). Wenn der Angerufene abnimmt, hĂśrt er die Wartemusik oder den angegebenen Text oder Klang.
  14604. Der interne Telefonanschluss klingelt ebenfalls.
  14605. <br>
  14606. "say:" und "play:" benĂśtigen die API: Telnet oder webcm.
  14607. </li><br>
  14608. <li><code>set &lt;name&gt; checkAPIs</code>
  14609. <br>
  14610. Startet eine erneute Abfrage der exitierenden Programmierschnittstellen der FRITZ!BOX.
  14611. </li><br>
  14612. <li><code>set &lt;name&gt; customerRingTone &lt;internalNumber&gt; &lt;MP3DateiInklusivePfad&gt;</code>
  14613. <br>
  14614. Lädt die MP3-Datei als Klingelton auf das angegebene Telefon. Die Datei muss im Dateisystem der Fritzbox liegen.
  14615. <br>
  14616. Das Hochladen dauert etwa eine Minute bis der Klingelton verfĂźgbar ist. (API: Telnet)
  14617. </li><br>
  14618. <li><code>set &lt;name&gt; dect &lt;on|off&gt;</code>
  14619. <br>
  14620. Schaltet die DECT-Basis der Box an oder aus.
  14621. <br>
  14622. BenĂśtigt die API: Telnet oder webcm.
  14623. </li><br>
  14624. <li><code>set &lt;name&gt; diversity &lt;number&gt; &lt;on|off&gt;</code>
  14625. <br>
  14626. Schaltet die Rufumleitung (Nummer 1, 2 ...) fĂźr einzelne Rufnummern an oder aus.
  14627. <br>
  14628. Die Rufumleitung muss zuvor auf der Fritz!Box eingerichtet werden. BenĂśtigt die API: Telnet oder webcm.
  14629. <br>
  14630. Achtung! Es lassen sich nur Rufumleitungen fßr einzelne angerufene Telefonnummern (also nicht "alle") und <u>ohne</u> Abhängigkeit von der anrufenden Nummer schalten.
  14631. Es muss also ein <i>diversity</i>-Geräwert geben.
  14632. <br>
  14633. BenĂśtigt die API: Telnet, webcm oder TR064 (>=6.50).
  14634. </li><br>
  14635. <li><code>set &lt;name&gt; guestWLAN &lt;on|off&gt;</code>
  14636. <br>
  14637. Schaltet das Gäste-WLAN an oder aus. Das Gäste-Passwort muss gesetzt sein. Wenn notwendig wird auch das normale WLAN angeschaltet.
  14638. </li><br>
  14639. <li><code>set &lt;name&gt; moh &lt;default|sound|customer&gt; [&lt;MP3DateiInklusivePfad|say:Text&gt;]</code>
  14640. <br>
  14641. Beispiel: <code>set fritzbox moh customer say:Die Wanne ist voll</code>
  14642. <br>
  14643. <code>set fritzbox moh customer /var/InternerSpeicher/warnung.mp3</code>
  14644. <br>
  14645. ändert die Wartemusik ('music on hold') der Box. Mit dem Parameter 'customer' kann eine eigene MP3-Datei aufgespielt werden.
  14646. Alternativ kann mit "say:" auch ein Text gesprochen werden. Die Wartemusik hat <u>immer</u> eine Länge von 8,13 s. Sie wird kontinuierlich während des Makelns von Gesprächen aber auch bei Nutzung der internen Wählhilfe bis zum Abheben des rufenden Telefons abgespielt. Dadurch kÜnnen ßber FHEM dem Angerufenen 8s-Nachrichten vorgespielt werden.
  14647. <br>
  14648. </li><br>
  14649. <li><code>set &lt;name&gt; password &lt;Passwort&gt;</code>
  14650. <br>
  14651. Speichert das Passwort fĂźr den Fernzugriff Ăźber Telnet.
  14652. </li><br>
  14653. <li><code>set &lt;name&gt; ring &lt;intNummern&gt; [Dauer [Klingelton]] [show:Text] [say:Text | play:Link]</code>
  14654. <dt>Beispiel:</dt>
  14655. <dd>
  14656. <code>set fritzbox ring 611,612 5 Budapest show:Es regnet</code>
  14657. <br>
  14658. <code>set fritzbox ring 610 8 say:Es regnet</code>
  14659. <br>
  14660. <code>set fritzbox ring 610 10 play:http://raspberrypi/sound.mp3</code>
  14661. </dd>
  14662. Lässt die internen Nummern fßr "Dauer" Sekunden und (auf Fritz!Fons) mit dem angegebenen "Klingelton" klingeln.
  14663. <br>
  14664. Mehrere interne Nummern mĂźssen durch ein Komma (ohne Leerzeichen) getrennt werden.
  14665. <br>
  14666. Standard-Dauer ist 5 Sekunden. Es kann aber zu VerzÜgerungen in der Fritz!Box kommen. Standard-Klingelton ist der interne Klingelton des Gerätes.
  14667. Der Klingelton wird fĂźr Rundrufe (9 oder 50) ignoriert.
  14668. <br>
  14669. Wenn der Anruf angenommen wird, hĂśrt der Angerufene die Wartemusik (music on hold), welche ebenfalls zur NachrichtenĂźbermittlung genutzt werden kann.
  14670. <br>
  14671. Die Parameter <i>Klingelton, show:, say:</i> und <i>play:</i> benĂśtigen die API Telnet oder webcm.
  14672. <br/><br/>
  14673. Wenn das <a href=#FRITZBOXattr>Attribut</a> 'ringWithIntern' existiert, wird der Text hinter 'show:' als Name des Anrufers angezeigt.
  14674. Er darf maximal 30 Zeichen lang sein.
  14675. <br/><br/>
  14676. Auf Fritz!Fons wird der Text (max. 100 Zeichen) hinter dem Parameter 'say:' direkt angesagt und ersetzt den Klingelton.
  14677. <br>
  14678. Alternativ kann mit 'play:' auch ein MP3-Link (vom einem Webserver) abgespielt werden. Dabei wird die Internetradiostation 39 'FHEM' erzeugt und translate.google.com fĂźr Text2Speech genutzt. Es wird <u>immer</u> der komplette Text/Klang abgespielt. Bis zum Ende der 'Klingeldauer' klingelt das Telefon dann mit seinem Standard-Klingelton.
  14679. Das Abspielen ist eventuell nicht auf mehreren Fritz!Fons gleichzeitig mĂśglich.
  14680. <br>
  14681. Je nach Fritz!OS kann das beschriebene Verhalten abweichen.
  14682. <br>
  14683. </li><br>
  14684. <li><code>set &lt;name&gt; sendMail [to:&lt;Address&gt;] [subject:&lt;Subject&gt;] [body:&lt;Text&gt;]</code>
  14685. <br>
  14686. Sendet eine Email Ăźber den Emailbenachrichtigungsservice der als Push Service auf der Fritz!Box konfiguriert wurde.
  14687. Mit "\n" kann einen Zeilenumbruch im TextkĂśrper erzeut werden.
  14688. Alle Parameter kĂśnnen ausgelassen werden. Bitte kontrolliert, dass die Email nicht im Junk-Verzeichnis landet.
  14689. <br>
  14690. BenĂśtigt einen Telnet Zugang zur Box.
  14691. <br>
  14692. </li><br>
  14693. <li><code>set &lt;name&gt; startRadio &lt;internalNumber&gt; [Name oder Nummer]</code>
  14694. <br>
  14695. Startet das Internetradio auf dem angegebenen Fritz!Fon. Eine verfßgbare Radiostation kann ßber den Namen oder die (Gerätewert)Nummer ausgewählt werden. Ansonsten wird die in der Box als Internetradio-Klingelton eingestellte Station abgespielt. (Also <b>nicht</b> die am Telefon ausgewählte.)
  14696. <br>
  14697. </li><br>
  14698. <li><code>set &lt;name&gt; tam &lt;number&gt; &lt;on|off&gt;</code>
  14699. <br>
  14700. Schaltet den Anrufbeantworter (Nummer 1, 2 ...) an oder aus.
  14701. Der Anrufbeantworter muss zuvor auf der Fritz!Box eingerichtet werden.
  14702. </li><br>
  14703. <li><code>set &lt;name&gt; update</code>
  14704. <br>
  14705. Startet eine Aktualisierung der Gerätewerte.
  14706. </li><br>
  14707. <li><code>set &lt;name&gt; wlan &lt;on|off&gt;</code>
  14708. <br>
  14709. Schaltet WLAN an oder aus.
  14710. </li><br>
  14711. </ul>
  14712. <a name="FRITZBOXget"></a>
  14713. <b>Get</b>
  14714. <ul>
  14715. <br>
  14716. <li><code>get &lt;name&gt; ringTones</code>
  14717. <br>
  14718. Zeigt die Liste der KlingeltĂśne, die benutzt werden kĂśnnen.
  14719. </li><br>
  14720. <li><code>get &lt;name&gt; shellCommand &lt;Befehl&gt;</code>
  14721. <br>
  14722. FĂźhrt den angegebenen Befehl auf der Fritz!Box-Shell aus und gibt das Ergebnis zurĂźck.
  14723. Kann benutzt werden, um Shell-Befehle auszufĂźhren, die nicht im Modul implementiert sind.
  14724. <br>
  14725. Muss zuvor Ăźber das Attribute "allowShellCommand" freigeschaltet werden.
  14726. </li><br>
  14727. <li><code>get &lt;name&gt; tr064Command &lt;service&gt; &lt;control&gt; &lt;action&gt; [[argName1 argValue1] ...] </code>
  14728. <br>
  14729. FĂźhrt Ăźber TR-064 Aktionen aus (siehe <a href="http://avm.de/service/schnittstellen/">Schnittstellenbeschreibung</a> von AVM).
  14730. <br>
  14731. argValues mit Leerzeichen mĂźssen in AnfĂźhrungszeichen eingeschlossen werden.
  14732. <br>
  14733. Beispiel: <code>get Fritzbox tr064Command X_AVM-DE_OnTel:1 x_contact GetDECTHandsetInfo NewDectID 1</code>
  14734. <br>
  14735. Muss zuvor Ăźber das Attribute "allowTR064Command" freigeschaltet werden.
  14736. </li><br>
  14737. <li><code>get &lt;name&gt; tr064ServiceListe</code>
  14738. <br>
  14739. Zeigt die Liste der TR-064-Dienste und Aktionen, die auf dem Gerät erlaubt sind.
  14740. </li><br>
  14741. </ul>
  14742. <a name="FRITZBOXattr"></a>
  14743. <b>Attributes</b>
  14744. <ul>
  14745. <br>
  14746. <li><code>allowShellCommand &lt;0 | 1&gt;</code>
  14747. <br>
  14748. Freischalten des get-Befehls "shellCommand"
  14749. </li><br>
  14750. <li><code>allowTR064Command &lt;0 | 1&gt;</code>
  14751. <br>
  14752. Freischalten des get-Befehls "tr064Command" und "luaQuery"
  14753. </li><br>
  14754. <li><code>boxUser &lt;user name&gt;</code>
  14755. <br>
  14756. Benutzername fĂźr den TR064- oder einen anderen webbasierten Zugang. Normalerweise wird keine Benutzername fĂźr das Login benĂśtigt.
  14757. Wenn die Fritz!Box anders konfiguriert ist, kann der Nutzer Ăźber dieses Attribut definiert werden.
  14758. </li><br>
  14759. <li><code>defaultCallerName &lt;Text&gt;</code>
  14760. <br>
  14761. Standard-Text, der auf dem angerufenen internen Telefon als "Anrufer" gezeigt wird.
  14762. <br>
  14763. Dies erfolgt, indem während des Klingelns temporär der Name der internen anrufenden Nummer geändert wird.
  14764. <br>
  14765. Es sind maximal 30 Zeichen erlaubt. Das Attribute "ringWithIntern" muss ebenfalls spezifiziert sein.
  14766. <br>
  14767. BenĂśtigt die API: Telnet oder webcmd
  14768. </li><br>
  14769. <li><code>defaultUploadDir &lt;fritzBoxPath&gt;</code>
  14770. <br>
  14771. Dies ist der Standard-Pfad der fßr Dateinamen benutzt wird, die nicht mit einem / (Schrägstrich) beginnen.
  14772. <br>
  14773. Es muss ein Pfad auf der Fritz!Box sein. D.h., er sollte mit /var/InternerSpeicher starten, wenn es in Windows unter \\ip-address\fritz.nas erreichbar ist.
  14774. </li><br>
  14775. <li><code>forceTelnetConnection &lt;0 | 1&gt;</code>
  14776. <br>
  14777. Erzwingt den Fernzugriff Ăźber Telnet (anstatt Ăźber die WebGUI oder TR-064).
  14778. <br>
  14779. Dieses Attribut muss bei älteren Geräten/Firmware aktiviert werden.
  14780. </li><br>
  14781. <li><code>fritzBoxIP &lt;IP-Adresse&gt;</code>
  14782. <br>
  14783. Veraltet.
  14784. </li><br>
  14785. <li><code>INTERVAL &lt;Sekunden&gt;</code>
  14786. <br>
  14787. Abfrage-Interval. Standard ist 300 (Sekunden). Der kleinste mĂśgliche Wert ist 60.
  14788. </li><br>
  14789. <li><code>ringWithIntern &lt;1 | 2 | 3&gt;</code>
  14790. <br>
  14791. Um ein Telefon klingeln zu lassen, muss in der Fritzbox eine Anrufer (Wählhilfe, Wert 'box_stdDialPort') spezifiziert werden.
  14792. <br>
  14793. Um während des Klingelns eine Nachricht (Standard: "FHEM") anzuzeigen, kann hier die interne Nummer 1-3 angegeben werden.
  14794. Der entsprechende analoge Telefonanschluss muss vorhanden sein.
  14795. </li><br>
  14796. <li><code>telnetTimeOut &lt;Sekunden&gt;</code>
  14797. <br>
  14798. Maximale Zeit, bis zu der während einer Telnet-Sitzung auf Antwort gewartet wird. Standard ist 10 s.
  14799. </li><br>
  14800. <li><code>telnetUser &lt;user name&gt;</code>
  14801. <br>
  14802. Benutzername fĂźr den Telnetzugang. Normalerweise wird keine Benutzername fĂźr das Login benĂśtigt.
  14803. Wenn die Fritz!Box anders konfiguriert ist, kann der Nutzer Ăźber dieses Attribut definiert werden.
  14804. </li><br>
  14805. <li><code>useGuiHack &lt;0 | 1&gt;</code>
  14806. <br>
  14807. Falls die APIs der Box nicht mehr die änderung des Klingeltones unterstßtzen (Fritz!OS >6.24), kann dieses Attribute entsprechend der <a href="http://www.fhemwiki.de/wiki/FRITZBOX#Klingelton-Einstellung_und_Abspielen_von_Sprachnachrichten_bei_Fritz.21OS-Versionen_.3E6.24">WIKI-Anleitung</a> genutzt werden.
  14808. </li><br>
  14809. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  14810. </ul>
  14811. <br>
  14812. <a name="FRITZBOXreading"></a>
  14813. <b>Readings</b>
  14814. <ul><br>
  14815. <li><b>alarm</b><i>1</i> - Name des Weckrufs <i>1</i></li>
  14816. <li><b>alarm</b><i>1</i><b>_state</b> - Aktueller Status des Weckrufs <i>1</i></li>
  14817. <li><b>alarm</b><i>1</i><b>_target</b> - Interne Nummer des Weckrufs <i>1</i></li>
  14818. <li><b>alarm</b><i>1</i><b>_time</b> - Weckzeit des Weckrufs <i>1</i></li>
  14819. <li><b>alarm</b><i>1</i><b>_wdays</b> - Wochentage des Weckrufs <i>1</i></li>
  14820. <br>
  14821. <li><b>box_dect</b> - Aktueller Status des DECT-Basis</li>
  14822. <li><b>box_fwVersion</b> - Firmware-Version der Box, wenn veraltet dann wird '(old)' angehangen</li>
  14823. <li><b>box_guestWlan</b> - Aktueller Status des Gäste-WLAN</li>
  14824. <li><b>box_guestWlanCount</b> - Anzahl der Geräte die ßber das Gäste-WLAN verbunden sind</li>
  14825. <li><b>box_guestWlanRemain</b> - Verbleibende Zeit bis zum Ausschalten des Gäste-WLAN</li>
  14826. <li><b>box_ipExtern</b> - Internet IP der Fritz!Box</li>
  14827. <li><b>box_model</b> - Fritz!Box-Modell</li>
  14828. <li><b>box_moh</b> - Wartemusik-Einstellung</li>
  14829. <li><b>box_powerRate</b> - aktueller Stromverbrauch in Prozent der maximalen Leistung</li>
  14830. <li><b>box_rateDown</b> - Download-Geschwindigkeit des letzten Intervals in kByte/s</li>
  14831. <li><b>box_rateUp</b> - Upload-Geschwindigkeit des letzten Intervals in kByte/s</li>
  14832. <li><b>box_stdDialPort</b> - Anschluss der geräteseitig von der Wählhilfe genutzt wird</li>
  14833. <li><b>box_tr064</b> - Anwendungsschnittstelle TR-064 (wird auch von diesem Modul benĂśtigt)</li>
  14834. <li><b>box_tr069</b> - Provider-Fernwartung TR-069 (sicherheitsrelevant!)</li>
  14835. <li><b>box_wlanCount</b> - Anzahl der Geräte die ßber WLAN verbunden sind</li>
  14836. <li><b>box_wlan_2.4GHz</b> - Aktueller Status des 2.4-GHz-WLAN</li>
  14837. <li><b>box_wlan_5GHz</b> - Aktueller Status des 5-GHz-WLAN</li>
  14838. <br>
  14839. <li><b>dect</b><i>1</i> - Name des DECT Telefons <i>1</i></li>
  14840. <li><b>dect</b><i>1</i><b>_alarmRingTone</b> - Klingelton beim Wecken Ăźber das DECT Telefon <i>1</i></li>
  14841. <li><b>dect</b><i>1</i><b>_custRingTone</b> - Benutzerspezifischer Klingelton des DECT Telefons <i>1</i></li>
  14842. <li><b>dect</b><i>1</i><b>_fwVersion</b> - Firmware-Version des DECT Telefons <i>1</i></li>
  14843. <li><b>dect</b><i>1</i><b>_intern</b> - Interne Nummer des DECT Telefons <i>1</i></li>
  14844. <li><b>dect</b><i>1</i><b>_intRingTone</b> - Interner Klingelton des DECT Telefons <i>1</i></li>
  14845. <li><b>dect</b><i>1</i><b>_manufacturer</b> - Hersteller des DECT Telefons <i>1</i></li>
  14846. <li><b>dect</b><i>1</i><b>_model</b> - Modell des DECT Telefons <i>1</i></li>
  14847. <li><b>dect</b><i>1</i><b>_radio</b> - aktueller Internet-Radio-Klingelton des DECT Telefons <i>1</i></li>
  14848. <br>
  14849. <li><b>diversity</b><i>1</i> - Eigene Rufnummer der Rufumleitung <i>1</i></li>
  14850. <li><b>diversity</b><i>1</i><b>_dest</b> - Zielnummer der Rufumleitung <i>1</i></li>
  14851. <li><b>diversity</b><i>1</i><b>_state</b> - Aktueller Status der Rufumleitung <i>1</i></li>
  14852. <br>
  14853. <li><b>fon</b><i>1</i> - Name des analogen Telefonanschlusses <i>1</i> an der Fritz!Box</li>
  14854. <li><b>fon</b><i>1</i><b>_intern</b> - Interne Nummer des analogen Telefonanschlusses <i>1</i></li>
  14855. <li><b>fon</b><i>1</i><b>_out</b> - ausgehende Nummer des Anschlusses <i>1</i></li>
  14856. <br>
  14857. <li><b>gsm_internet</b> - Internetverbindung errichtet Ăźber Mobilfunk-Stick </li>
  14858. <li><b>gsm_rssi</b> - Indikator der empfangenen GSM-Signalstärke (0-100)</li>
  14859. <li><b>gsm_state</b> - Status der Mobilfunk-Verbindung</li>
  14860. <li><b>gsm_technology</b> - GSM-Technologie, die fĂźr die DatenĂźbertragung genutzt wird (GPRS, EDGE, UMTS, HSPA)</li>
  14861. <br>
  14862. <li><b>mac_</b><i>01_26_FD_12_01_DA</i> - MAC Adresse und Name eines aktiven Netzwerk-Gerätes.
  14863. <br>
  14864. Bei einer WLAN-Verbindung wird "WLAN" und (von der Box gesehen) die Sende- und Empfangsgeschwindigkeit und die Empfangsstärke angehangen. Bei einer LAN-Verbindung wird der LAN-Port und die LAN-Geschwindigkeit angehangen. Gast-Verbindungen werden mit "gWLAN" oder "gLAN" gekennzeichnet.
  14865. <br>
  14866. Inaktive oder entfernte Geräte erhalten zuerst den Werte "inactive" und werden beim nächsten Update gelÜscht.</li>
  14867. <br>
  14868. <li><b>radio</b><i>01</i> - Name der Internetradiostation <i>01</i></li>
  14869. <br>
  14870. <li><b>tam</b><i>1</i> - Name des Anrufbeantworters <i>1</i></li>
  14871. <li><b>tam</b><i>1</i><b>_newMsg</b> - Anzahl neuer Nachrichten auf dem Anrufbeantworter <i>1</i></li>
  14872. <li><b>tam</b><i>1</i><b>_oldMsg</b> - Anzahl alter Nachrichten auf dem Anrufbeantworter <i>1</i></li>
  14873. <li><b>tam</b><i>1</i><b>_state</b> - Aktueller Status des Anrufbeantworters <i>1</i></li>
  14874. <br>
  14875. <li><b>user</b><i>01</i> - Name von Nutzer/IP <i>1</i> fßr den eine Zugangsbeschränkung (Kindersicherung) eingerichtet ist</li>
  14876. <li><b>user</b><i>01</i>_thisMonthTime - Internetnutzung des Nutzers/IP <i>1</i> im aktuellen Monat (Kindersicherung)</li>
  14877. <li><b>user</b><i>01</i>_todaySeconds - heutige Internetnutzung des Nutzers/IP <i>1</i> in Sekunden (Kindersicherung)</li>
  14878. <li><b>user</b><i>01</i>_todayTime - heutige Internetnutzung des Nutzers/IP <i>1</i> (Kindersicherung)</li>
  14879. </ul>
  14880. <br>
  14881. </ul>
  14882. </div>
  14883. <p><a name="FRM"></a>
  14884. <h3>FRM</h3>
  14885. <ul>
  14886. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14887. hier: <a href='commandref.html#FRM'>FRM</a><br/>
  14888. </ul>
  14889. <a name="FRM_AD"></a>
  14890. <h3>FRM_AD</h3>
  14891. <ul>
  14892. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14893. hier: <a href='commandref.html#FRM_AD'>FRM_AD</a><br/>
  14894. </ul>
  14895. <a name="FRM_I2C"></a>
  14896. <h3>FRM_I2C</h3>
  14897. <ul>
  14898. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14899. hier: <a href='commandref.html#FRM_I2C'>FRM_I2C</a><br/>
  14900. </ul>
  14901. <a name="FRM_IN"></a>
  14902. <h3>FRM_IN</h3>
  14903. <ul>
  14904. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14905. hier: <a href='commandref.html#FRM_IN'>FRM_IN</a><br/>
  14906. </ul>
  14907. <a name="FRM_LCD"></a>
  14908. <h3>FRM_LCD</h3>
  14909. <ul>
  14910. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14911. hier: <a href='commandref.html#FRM_LCD'>FRM_LCD</a><br/>
  14912. </ul>
  14913. <a name="FRM_OUT"></a>
  14914. <h3>FRM_OUT</h3>
  14915. <ul>
  14916. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14917. hier: <a href='commandref.html#FRM_OUT'>FRM_OUT</a><br/>
  14918. </ul>
  14919. <a name="FRM_PWM"></a>
  14920. <h3>FRM_PWM</h3>
  14921. <ul>
  14922. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14923. hier: <a href='commandref.html#FRM_PWM'>FRM_PWM</a><br/>
  14924. </ul>
  14925. <a name="FRM_RGB"></a>
  14926. <h3>FRM_RGB</h3>
  14927. <ul>
  14928. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14929. hier: <a href='commandref.html#FRM_RGB'>FRM_RGB</a><br/>
  14930. </ul>
  14931. <a name="FRM_ROTENC"></a>
  14932. <h3>FRM_ROTENC</h3>
  14933. <ul>
  14934. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14935. hier: <a href='commandref.html#FRM_ROTENC'>FRM_ROTENC</a><br/>
  14936. </ul>
  14937. <a name="FRM_SERVO"></a>
  14938. <h3>FRM_SERVO</h3>
  14939. <ul>
  14940. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14941. hier: <a href='commandref.html#FRM_SERVO'>FRM_SERVO</a><br/>
  14942. </ul>
  14943. <a name="FRM_STEPPER"></a>
  14944. <h3>FRM_STEPPER</h3>
  14945. <ul>
  14946. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14947. hier: <a href='commandref.html#FRM_STEPPER'>FRM_STEPPER</a><br/>
  14948. </ul>
  14949. <a name="FReplacer"></a>
  14950. <h3>FReplacer</h3>
  14951. <ul>
  14952. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  14953. hier: <a href='commandref.html#FReplacer'>FReplacer</a><br/>
  14954. </ul>
  14955. <a name="FS20"></a>
  14956. <h3>FS20</h3>
  14957. <div class='langLinks'>[<a href='commandref.html#FS20'>EN</a> DE]</div>
  14958. <ul>
  14959. Das FS20 Protokoll wird von einem gro&szlig;en Spektrum an Ger&auml;ten
  14960. verwendet. Diese stammen entweder aus der Kategorie Sensor/Sender oder
  14961. Aktor/Empf&auml;nger. Die Funknachrichten (868.35 MHz) k&ouml;nnen mit einem
  14962. <a href="#FHZ">FHZ</a> oder einem <a href="#CUL">CUL</a> empfangen werden.
  14963. Dieses muss daher zuerst definiert werden.
  14964. <br><br>
  14965. <a name="FS20define"></a>
  14966. <b>Define</b>
  14967. <ul>
  14968. <code>define &lt;name&gt; FS20 &lt;housecode&gt; &lt;button&gt;
  14969. [fg &lt;fgaddr&gt;] [lm &lt;lmaddr&gt;] [gm FF] </code>
  14970. <br><br>
  14971. Die Werte housecode, button, fg, lm, und gm k&ouml;nnen entweder hexadezimal
  14972. oder in der ELV-typischen quatern&auml;ren Notation (Zahlen von 1-4)
  14973. eingegeben werden.
  14974. Hier und auch in sp&auml;teren Beispielen wird als Referenz die ELV4
  14975. Notation verwendet. Die Notationen k&ouml;nnen auch gemischt werden da FHEM
  14976. die verwendete Notation durch z&auml;hlen der Zeichen erkennt.<br>
  14977. <ul>
  14978. <li><code>&lt;housecode&gt;</code> ist eine 4 stellige Hex oder 8 stellige
  14979. ELV4 Zahl, entsprechend der Hauscode Adresse.</li>
  14980. <li><code>&lt;button&gt;</code> ist eine 2 stellige Hex oder 4 stellige ELV4
  14981. Zahl, entsprechend dem Button des Transmitters.</li>
  14982. <li>Optional definiert <code>&lt;fgaddr&gt;</code> die Funktionsgruppe mit
  14983. einer 2 stelligen Hex oder 4 stelligen ELV4 Adresse. Bei Hex muss die
  14984. erste Stelle F, bei ELV4 die ersten zwei Stellen 44 sein.</li>
  14985. <li>Optional definiert <code>&lt;lmaddr&gt;</code> definiert einen local
  14986. master mit einer 2 stelligen Hex oder 4 stelligen ELV4 Adresse. Bei Hex
  14987. muss die letzte Stelle F, bei ELV4 die letzten zwei Stellen 44 sein.</li>
  14988. <li>Optional definiert gm den global master. Die Adresse muss FF bei HEX
  14989. und 4444 bei ELV4 Notation sein.</li>
  14990. </ul>
  14991. <br>
  14992. Beispiele:
  14993. <ul>
  14994. <code>define lamp FS20 7777 00 fg F1 gm F</code><br>
  14995. <code>define roll1 FS20 7777 01</code><br>
  14996. <code>define otherlamp FS20 24242424 1111 fg 4412 gm 4444</code><br>
  14997. <code>define otherroll1 FS20 24242424 1114</code>
  14998. </ul>
  14999. </ul>
  15000. <br>
  15001. <a name="FS20set"></a>
  15002. <b>Set </b>
  15003. <ul>
  15004. <code>set &lt;name&gt; &lt;value&gt; [&lt;time&gt]</code>
  15005. <br><br>
  15006. Wobei <code>value</code> einer der folgenden Werte sein kann:<br>
  15007. <ul><code>
  15008. dim06% dim12% dim18% dim25% dim31% dim37% dim43% dim50%<br>
  15009. dim56% dim62% dim68% dim75% dim81% dim87% dim93% dim100%<br>
  15010. dimdown<br>
  15011. dimup<br>
  15012. dimupdown<br>
  15013. off<br>
  15014. off-for-timer<br>
  15015. on # dimmer: Setze auf diesen Wert vor dem Ausschalten<br>
  15016. on-for-timer # Siehe Hinweise<br>
  15017. on-old-for-timer # Setze zum vorherigen (vor dem Einschalten)<br>
  15018. ramp-on-time # Zeit bis zum erreichen des gew&uuml;nschten Dim-Wertes<br>
  15019. ramp-off-time # Zeit bis zum Ausschalten bei Dimmern<br>
  15020. reset<br>
  15021. sendstate<br>
  15022. timer<br>
  15023. toggle # zwischen aus und dem letztern Dim-Wert<br>
  15024. </code></ul><br>
  15025. Die<a href="#setExtensions"> set extensions</a> sind ebenfalls
  15026. unterst&uuml;tzt.<br>
  15027. <br>
  15028. Beispiele:
  15029. <ul>
  15030. <code>set lamp on</code><br>
  15031. <code>set lamp1,lamp2,lamp3 on</code><br>
  15032. <code>set lamp1-lamp3 on</code><br>
  15033. <code>set lamp on-for-timer 12</code><br>
  15034. </ul>
  15035. <br>
  15036. Hinweise:
  15037. <ul>
  15038. <li>reset nur mit Vorsicht verwenden: Auch der Hauscode wird
  15039. gel&ouml;scht. </li>
  15040. <li>Da das FS20 Protokoll 0.22Sek f&uuml;r eine Funksequenz ben&ouml;tigt
  15041. wird nach jeder Ausf&uuml;hrung eine Pause von 0.22Sek eingef&uuml;gt.
  15042. </li>
  15043. <li>Das FS20ST schaltet f&uuml;r dim*% und dimup ein. Es reagiert nicht
  15044. auf sendstate.</li>
  15045. <li>Wenn ein Timer gesetzt ist (und dieser nicht 0 ist) werden on, dim*,
  15046. und *-for-timer ber&uuml;cksichtigt (zumindest beim FS20ST). </li>
  15047. <li>Das <code>time</code> Argument geht von 0.25Sek bis 4Std und 16Min.
  15048. Da <code>time</code> nur mit einem Byte dargestellt wird ergeben sich
  15049. hieraus nur 112 eindeutige Zeit-Werte die mit ansteigender
  15050. gr&ouml;&szlig;e immer gr&ouml;ber aufgel&ouml;st werden. Das Programm
  15051. zeigt die exakte Restzeit an wenn die gew&auml;hlte Aufl&ouml;sung
  15052. nicht eindeutig war. Die Aufl&ouml;sung ist is 0.25Sek von 0 bis 4
  15053. Sekunden, 0.5Sek von 4 bis 8Sek, 1Sek von 8 bis 16 Sek und so weiter.
  15054. Wenn eine h&ouml;here Genauigkeit bei gro&szlig;en Werten gebraucht
  15055. wird, dann hilft <a href="#at">at</a> mit einer Aufl&ouml;sung von
  15056. 1Sek.</li>
  15057. </ul>
  15058. </ul>
  15059. <br>
  15060. <b>Get</b> <ul>N/A</ul><br>
  15061. <a name="FS20attr"></a>
  15062. <b>Attribute</b>
  15063. <ul>
  15064. <a name="IODev"></a>
  15065. <li>IODev<br>
  15066. Setzt das IO oder das physische Device welches zum Senden der Signale an
  15067. dieses logische Device verwendet werden soll (Beispielsweise FHZ oder
  15068. CUL). Hinweis: Beim Start weist FHEM jedem logischen Device das letzte
  15069. physische Device zu, das Daten von diesem Typ empfangen kann. Das
  15070. Attribut IODev muss nur gesetzt werden wenn mehr als ein physisches
  15071. Device f&auml;hig ist Signale von diesem logischen Device zu empfangen.
  15072. </li><br>
  15073. <a name="eventMap"></a>
  15074. <li>eventMap<br>
  15075. Ersetze Event Namen und setze Argumente. Der Wert dieses Attributes
  15076. besteht aus einer Liste von durch Leerzeichen getrennte Werten. Jeder
  15077. Wert ist ein durch Doppelpunkt getrenntes Paar. Der erste Teil stellt den
  15078. "alten" Wert, der zweite Teil den "neuen" Wert dar. Wenn der erste Wert
  15079. ein Slash (/) oder ein Komma (,) ist, dann wird nicht durch Leerzeichen
  15080. sondern durch das vorgestellte Zeichen getrennt.
  15081. Beispiele:
  15082. <ul><code>
  15083. attr store eventMap on:open off:closed<br>
  15084. attr store eventMap /on-for-timer 10:open/off:closed/<br>
  15085. set store open
  15086. </code></ul>
  15087. </li><br>
  15088. <a name="attrdummy"></a>
  15089. <li>dummy<br>
  15090. Setzt das Attribut dummy um Devices zu definieren, die keine Funksignale
  15091. absetzen. Zugeh&ouml;rige notifys werden ausgef&uuml;hrt wenn das Signal
  15092. empfangen wird. Wird beispielsweise genutzt um auf Code eines Sender zu
  15093. reagieren, dennoch wird es auch dann kein Signal senden wenn es im Web
  15094. Frontend getriggert wird.
  15095. </li><br>
  15096. <a name="follow-on-for-timer"></a>
  15097. <li>follow-on-for-timer<br>
  15098. Plant ein "setstate off;trigger off" f&uuml;r die angegebene Zeit als
  15099. Argument zum on-for-timer Command. Oder das gleiche mit "on" wenn der
  15100. Befehl "follow-off-for-timer" war.
  15101. </li><br>
  15102. <a name="follow-on-timer"></a>
  15103. <li>follow-on-timer<br>
  15104. Wie follow-on-for-timer plant es ein "setstate off;trigger off", aber
  15105. diesmal als Argument in Sekunden zum Attribut. Wird verwendet um dem
  15106. vorprogrammierten Timer zu folgen welcher vorher durch den timer-Befehl,
  15107. oder manuell durch Dr&uuml;cken des Buttons gesetzt wurde. Im Handbuch
  15108. finden sich noch mehr Informationen. Beachtet bei on und dim Befehlen.
  15109. </li><br>
  15110. <a name="model"></a>
  15111. <li>model<br>
  15112. Das "model" Attribut bezeichnet den Modelltyp des Ger&auml;tes. Dieses
  15113. Attribut wird (derzeit) nicht direkt durch fhem.pl genutzt. Es kann
  15114. beispielsweise von externen Programmen oder Webinterfaces genutzt werden
  15115. um Ger&auml;teklassen zu unterscheiden und dazu passende Befehle zu senden
  15116. (z.B. "on" oder "off" an ein fs20st, "dim..%" an ein fs20du etc.). Die
  15117. Schreibweise des Modellnamens ist wie die in Anf&uuml;hrungszeichen in
  15118. der Anleitung gedruckte Bezeichnung die jedem Ger&auml;t beiliegt.
  15119. Dieser Name wird ohne Leerzeichen ausschlie&szlig;lich in Kleinbuchstaben
  15120. verwendet. G&uuml;ltige Zeichen sind <code>a-z 0-9</code> und
  15121. <code>-</code>, andere Zeichen sind zu vermeiden. Hier ist eine Liste der
  15122. "offiziellen" Devices:<br><br>
  15123. <b>Sender/Sensor</b>: fs20fms fs20hgs fs20irl fs20kse fs20ls
  15124. fs20pira fs20piri fs20piru fs20s16 fs20s20 fs20s4 fs20s4a fs20s4m
  15125. fs20s4u fs20s4ub fs20s8 fs20s8m fs20sd fs20sn fs20sr fs20ss
  15126. fs20str fs20tc1 fs20tc6 fs20tfk fs20tk fs20uts fs20ze fs20bf fs20si3<br><br>
  15127. <b>Dimmer</b>: fs20di fs20di10 fs20du<br><br>
  15128. <b>Empf&auml;nger/Aktor</b>: fs20as1 fs20as4 fs20ms2 fs20rgbsa fs20rst
  15129. fs20rsu fs20sa fs20sig fs20sm4 fs20sm8 fs20st fs20su fs20sv fs20ue1
  15130. fs20usr fs20ws1
  15131. </li><br>
  15132. <a name="ignore"></a>
  15133. <li>ignore<br>
  15134. Ignoriere dieses Ger&auml;t, beispielsweise wenn es dem Nachbar
  15135. geh&ouml;rt. Das Ger&auml;t wird keine FileLogs/notifys triggern,
  15136. empfangene Befehle werden stillschweigend ignoriert (es wird kein
  15137. Funksignal gesendet, wie auch beim <a href="#attrdummy">dummy</a>
  15138. Attribut). Das Ger&auml;t wird weder in der Device-List angezeigt (es sei
  15139. denn, es wird explizit abgefragt), noch wird es in Befehlen mit
  15140. "Wildcard"-Namenspezifikation (siehe <a href="#devspec">devspec</a>)
  15141. erscheinen. Es kann mit dem "ignored=1" devspec dennoch erreicht werden.
  15142. </li><br>
  15143. <li><a href="#do_not_notify">do_not_notify</a></li>
  15144. <li><a href="#showtime">showtime</a></li>
  15145. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  15146. <li>useSetExtensions<br>
  15147. Falls es auf 0 gesetzt wird, werden die SetExtensions Befehle nicht
  15148. angeboten. Die Voreinstellung ist 1.
  15149. </li><br>
  15150. </ul>
  15151. <br>
  15152. <a name="FS20events"></a>
  15153. <b>Erzeugte Events:</b>
  15154. <ul>
  15155. Von einem FS20 Ger&auml;t k&ouml;nnen folgende Events empfangen werden:
  15156. <li>on</li>
  15157. <li>off</li>
  15158. <li>toggle</li>
  15159. <li>dimdown</li>
  15160. <li>dimup</li>
  15161. <li>dimupdown</li>
  15162. <li>on-for-timer</li>
  15163. Welches Event gesendet wird ist Ger&auml;teabh&auml;ngig und kann manchmal
  15164. auf dem Device konfiguriert werden.
  15165. </ul>
  15166. </ul>
  15167. <p><a name="FTUISRV"></a>
  15168. <h3>FTUISRV</h3>
  15169. <ul>
  15170. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  15171. hier: <a href='commandref.html#FTUISRV'>FTUISRV</a><br/>
  15172. </ul>
  15173. <a name="FULLY"></a>
  15174. <h3>FULLY</h3>
  15175. <ul>
  15176. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  15177. hier: <a href='commandref.html#FULLY'>FULLY</a><br/>
  15178. </ul>
  15179. <a name="FileLog"></a>
  15180. <h3>FileLog</h3>
  15181. <div class='langLinks'>[<a href='commandref.html#FileLog'>EN</a> DE]</div>
  15182. <ul>
  15183. <br>
  15184. <a name="FileLogdefine"></a>
  15185. <b>Define</b>
  15186. <ul>
  15187. <code>define &lt;name&gt; FileLog &lt;filename&gt; &lt;regexp&gt; [readonly]</code>
  15188. <br><br>
  15189. Speichert Ereignisse in einer Log-Datei mit Namen <code>&lt;filename&gt;</code>. Das Log-Format ist
  15190. <ul><code><br>
  15191. YYYY-MM-DD_HH:MM:SS &lt;device&gt; &lt;event&gt;<br>
  15192. <br></code></ul>
  15193. Der Ausdruck unter regexp wird anhand des Ger&auml;tenames &uuml;berpr&uuml;ft und zwar
  15194. devicename:event oder der timestamp:devicename:event-Kombination.
  15195. Der regexp muss mit dem kompletten String &uuml;bereinstimmen und nicht nur teilweise.
  15196. <br>
  15197. <code>&lt;filename&gt;</code> k&ouml;nnen %-wildcards der POSIX
  15198. strftime-Funktion des darunterliegenden OS enthalten (siehe auch strftime
  15199. Beschreibung).
  15200. Allgemein gebr&auml;uchliche Wildcards sind:
  15201. <ul>
  15202. <li><code>%d</code> Tag des Monats (01..31)</li>
  15203. <li><code>%m</code> Monat (01..12)</li>
  15204. <li><code>%Y</code> Jahr (1970...)</li>
  15205. <li><code>%w</code> Wochentag (0..6); beginnend mit Sonntag (0)</li>
  15206. <li><code>%j</code> Tag des Jahres (001..366)</li>
  15207. <li><code>%U</code> Wochennummer des Jahres, wobei Wochenbeginn = Sonntag (00..53)</li>
  15208. <li><code>%W</code> Wochennummer des Jahres, wobei Wochenbeginn = Montag (00..53)</li>
  15209. </ul>
  15210. FHEM ersetzt <code>%L</code> mit dem Wert des global logdir Attributes.<br>
  15211. Bevor <code>%V</code> f&uuml;r ISO 8601 Wochennummern verwendet werden,
  15212. muss &uuml;berpr&uuml;ft werden, ob diese Funktion durch das Brriebssystem
  15213. unterst&uuml;tzt wird (Es kann sein, dass %V nicht umgesetzt wird, durch
  15214. einen Leerstring ersetzt wird oder durch eine falsche ISO-Wochennummer
  15215. dargestellt wird - besonders am Jahresanfang)
  15216. Bei der Verwendung von <code>%V</code> muss gleichzeitig f&uuml;r das Jahr
  15217. ein <code>%G</code> anstelle von <code>%Y</code> benutzt werden.<br>
  15218. Falls man readonly spezifiziert, dann wird die Datei nur zum visualisieren
  15219. verwendet, und nicht zum Schreiben ge&ouml;ffnet.
  15220. <br>
  15221. Beispiele:
  15222. <ul>
  15223. <code>define lamplog FileLog %L/lamp.log lamp</code><br>
  15224. <code>define wzlog FileLog ./log/wz-%Y-%U.log
  15225. wz:(measured-temp|actuator).*</code><br>
  15226. Mit ISO 8601 Wochennummern falls unterst&uuml;tzt:<br>
  15227. <code>define wzlog FileLog ./log/wz-%G-%V.log
  15228. wz:(measured-temp|actuator).*</code><br>
  15229. </ul>
  15230. <br>
  15231. </ul>
  15232. <a name="FileLogset"></a>
  15233. <b>Set </b>
  15234. <ul>
  15235. <li>reopen
  15236. <ul>
  15237. Erneutes &Ouml;ffnen eines FileLogs nach h&auml;ndischen
  15238. &Auml;nderungen in dieser Datei.
  15239. </ul></li>
  15240. <li>clear
  15241. <ul>
  15242. L&ouml;schen und erneutes &Ouml;ffnen eines FileLogs.
  15243. </ul></li>
  15244. <li>addRegexpPart &lt;device&gt; &lt;regexp&gt;
  15245. <ul>
  15246. F&uuml;gt ein regexp Teil hinzu, der als device:regexp aufgebaut ist.
  15247. Die Teile werden nach Regexp-Regeln mit | getrennt. Achtung: durch
  15248. hinzuf&uuml;gen k&ouml;nnen manuell erzeugte Regexps ung&uuml;ltig
  15249. werden.
  15250. </ul></li>
  15251. <li>removeRegexpPart &lt;re&gt;
  15252. <ul>
  15253. Entfernt ein regexp Teil. Die Inkonsistenz von addRegexpPart /
  15254. removeRegexPart-Argumenten hat seinen Ursprung in der Wiederverwendung
  15255. von Javascript-Funktionen.
  15256. </ul></li>
  15257. <li>absorb secondFileLog
  15258. <ul>
  15259. F&uuml;hrt den gegenw&auml;rtigen Log und den secondFileLog zu einer
  15260. gemeinsamen Datei zusammen, f&uuml;gt danach die regexp des
  15261. secondFileLog dem gegenw&auml;rtigen Filelog hinzu und l&ouml;scht dann
  15262. anschlie&szlig;end das secondFileLog.<br>
  15263. Dieses Komanndo wird zur Erzeugung von kombinierten Plots (weblinks)
  15264. ben&ouml;tigt.<br>
  15265. <b>Hinweise:</b>
  15266. <ul>
  15267. <li>secondFileLog wird gel&ouml;scht (d.h. die FHEM-Definition und
  15268. die Datei selbst).</li>
  15269. <li>nur das aktuelle File wird zusammengef&uuml;hrt, keine
  15270. archivierten Versionen.</li>
  15271. <li>Weblinks, die das secondFilelog benutzen werden unbrauchbar, sie
  15272. m&uuml;ssen deshalb auf das neue Logfile angepasst oder
  15273. gel&ouml;scht werden.</li>
  15274. </ul>
  15275. </ul></li>
  15276. <br>
  15277. </ul>
  15278. <br>
  15279. <a name="FileLogget"></a>
  15280. <b>Get</b>
  15281. <ul>
  15282. <code>get &lt;name&gt; &lt;infile&gt; &lt;outfile&gt; &lt;from&gt;
  15283. &lt;to&gt; &lt;column_spec&gt; </code>
  15284. <br><br>
  15285. Liest Daten aus einem Logfile und wird von einem Frontend ben&ouml;tigt, um
  15286. Daten ohne direkten Zugriff aus der Datei zu lesen.<br>
  15287. <ul>
  15288. <li>&lt;infile&gt;<br>
  15289. Name des Logfiles, auf das zugegriffen werden soll. Sonderf&auml;lle:
  15290. "-" steht f&uuml;r das aktuelle Logfile, und "CURRENT" &ouml;ffnet die
  15291. zum "from" passende Datei.</li>
  15292. <li>&lt;outfile&gt;<br>
  15293. Bei einem "-", bekommt man die Daten auf der aktuellen Verbindung
  15294. zur&uuml;ck, anderenfall ist es das Name (eigentlich Prefix, s.u.) des
  15295. Output-Files. Wenn mehr als ein File angesprochen wird, werden die
  15296. einzelnen Dateinamen durch ein "-" getrennt, anderenfalls werden die
  15297. Daten in einzelne Dateien geschrieben, die - beginnend mit 0 -
  15298. durchnummeriert werden.
  15299. </li>
  15300. <li>&lt;from&gt; &lt;to&gt;<br>
  15301. Bezeichnet den gew&uuml;nschten Datenbereich. Die beiden Elemente
  15302. m&uuml;ssen ganz oder mit dem Anfang des Zeitformates
  15303. &uuml;bereinstimmen.</li>
  15304. <li>&lt;column_spec&gt;<br>
  15305. Jede column_spec sendet die gew&uuml;nschten Daten entweder in eine
  15306. gesonderte Datei oder &uuml;ber die gegenw&auml;rtige Verbindung durch
  15307. "-" getrennt.<br>
  15308. Syntax: &lt;col&gt;:&lt;regexp&gt;:&lt;default&gt;:&lt;fn&gt;<br>
  15309. <ul>
  15310. <li>&lt;col&gt;
  15311. gibt die Spaltennummer zur&uuml;ck, beginnend mit 1 beim Datum.
  15312. Wenn die Spaltenmummer in doppelten Anf&uuml;hrungszeichen steht,
  15313. handelt es sich um einen festen Text und nicht um eine
  15314. Spaltennummer.</li>
  15315. <li>&lt;regexp&gt;
  15316. gibt, falls vorhanden, Zeilen mit Inhalten von regexp zur&uuml;ck.
  15317. Gro&szlig;- und Kleinschreibung beachten. </li>
  15318. <li>&lt;default&gt;<br>
  15319. Wenn keine Werte gefunden werden, und der Default-Wert
  15320. (Voreinstellung) wurde gesetzt, wird eine Zeile zur&uuml;ckgegeben,
  15321. die den von-Wert (from) und diesen Default-Wert enth&auml;lt.
  15322. Dieses Leistungsmerkmal ist notwendig, da gnuplot abbricht, wenn
  15323. ein Datensatz keine Daten enth&auml;lt.
  15324. </li>
  15325. <li>&lt;fn&gt;
  15326. Kann folgende Inhalte haben:
  15327. <ul>
  15328. <li>int<br>
  15329. L&ouml;st den Integer-Wert zu Beginn eines Strings heraus. Wird
  15330. z.B. bei 10% gebraucht.</li>
  15331. <li>delta-h oder delta-d<br>
  15332. Gibt nur den Unterschied der Werte-Spalte pro
  15333. Stunde oder pro Tag aus. Wird ben&ouml;tigt, wenn die Spalte
  15334. einen Z&auml;hler enth&auml;lt, wie im Falles des KS300 in der
  15335. Spalte f&uuml;r die Regenmenge.</li>
  15336. <li>alles andere<br>
  15337. Dieser String wird als Perl-Ausdruck ausgewertet. @fld enthaelt
  15338. die aktuelle Zeile getrennt durch Leerzeichen. Achtung:
  15339. Dieser String/Perl-Ausdruck darf keine Leerzeichen enthalten.
  15340. </li>
  15341. </ul></li>
  15342. </ul></li>
  15343. </ul>
  15344. <br><br>
  15345. Beispiel:
  15346. <ul><code><br>
  15347. get outlog out-2008.log - 2008-01-01 2008-01-08 4:IR:int: 9:IR::
  15348. </code></ul>
  15349. <br>
  15350. </ul>
  15351. <a name="FileLogattr"></a>
  15352. <b>Attribute</b>
  15353. <ul>
  15354. <li><a href="#addStateEvent">addStateEvent</a></li><br><br>
  15355. <a name="archivedir"></a>
  15356. <a name="archivecmd"></a>
  15357. <a name="nrarchive"></a>
  15358. <li>archivecmd / archivedir / nrarchive<br>
  15359. Wenn eine neue FileLog-Datei ge&ouml;ffnet wird, wird der FileLog
  15360. archiver aufgerufen. Das geschieht aber nur , wenn der Name der Datei
  15361. sich ge&auml;ndert hat(abh&auml;ngig von den zeitspezifischen
  15362. Wildcards, die weiter oben unter <a href="#FileLogdefine">FileLog
  15363. (define)</a> beschrieben werden) und gleichzeitig ein neuer Datensatz
  15364. in diese Datei geschrieben werden muss. <br>
  15365. Wenn das Attribut archivecmd benutzt wird, startet es als
  15366. shell-Kommando ( eine Einbettung in " ist nicht notwendig), und jedes %
  15367. in diesem Befehl wird durch den Namen des alten Logfiles ersetzt.<br>
  15368. Wenn dieses Attribut nicht gesetzt wird, aber daf&uuml;r nrarchive,
  15369. werden nrarchive viele Logfiles im aktuellen Verzeichnis gelassen, und
  15370. &auml;ltere Dateien in das Archivverzeichnis (archivedir) verschoben
  15371. (oder gel&ouml;scht, falls kein archivedir gesetzt wurde).<br>
  15372. Achtung: "&auml;ltere Dateien" sind die, die in der alphabetisch
  15373. sortierten Liste oben sind.<br>
  15374. Hinweis: Werden diese Attribute als global instance gesetzt, hat das
  15375. auschlie&szlig;lich auf das <a href="#logfile">FHEM logfile</a>
  15376. Auswirkungen. </li><br>
  15377. <a name="archiveCompress"></a>
  15378. <li>archiveCompress<br>
  15379. Falls nrarchive, archivedir und archiveCompress gesetzt ist, dann
  15380. werden die Dateien im archivedir komprimiert abgelegt.
  15381. </li><br>
  15382. <a name="createGluedFile"></a>
  15383. <li>createGluedFile<br>
  15384. Falls gesetzt (1), und im SVG-Plot ein Zeitbereich abgefragt wird, was
  15385. in zwei Logdateien gespeichert ist, dann wird f&uuml;r die Anfrage eine
  15386. tempor&auml;re Datei mit dem Inhalt der beiden Dateien erzeugt.
  15387. </li><br>
  15388. <li><a href="#disable">disable</a></li>
  15389. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  15390. <br>
  15391. <a name="eventOnThreshold"></a>
  15392. <li>eventOnThreshold<br>
  15393. Falls es auf eine (nicht Null-) Zahl gesetzt ist, dann wird das
  15394. linesInTheFile Event generiert, falls die Anzahl der Zeilen in der
  15395. Datei ein Mehrfaches der gesetzen Zahl ist. Achtung: der Z&auml;hler ist
  15396. nur f&uuml;r solche Dateien korrekt, die nach dem Impementieren dieses
  15397. Features angelegt wurden. Ein Absturz/Abschu&szlig; von FHEM
  15398. verf&auml;lscht die Z&auml;hlung.
  15399. </li><br>
  15400. <li><a href="#ignoreRegexp">ignoreRegexp</a></li>
  15401. <a name="logtype"></a>
  15402. <li>logtype<br>
  15403. Wird vom SVG Modul ben&ouml;tigt, um daten grafisch aufzubereiten.
  15404. Der String wird aus komma-separierten Tokens
  15405. (,) erzeugt, wobei jeder Token ein eigenes gnuplot-Programm bezeichnet.
  15406. Die Token k&ouml;nnen Doppelpunkte (:) enthalten. Der Teil vor dem
  15407. Doppelpunkt bezeichnet den Namen des Programms; der Teil nach dem
  15408. Doppelpunkt ist der String, der im Web.Frontend dargestellt werden
  15409. soll. Gegenw&auml;rtig sind folgende Typen von gnuplot-Programmen
  15410. implementiert:<br>
  15411. <ul>
  15412. <li>fs20<br>
  15413. Zeichnet on als 1 and off als 0. Die geeignete
  15414. filelog-Definition f&uuml;r das Ger&auml;t fs20dev lautet:<br>
  15415. define fslog FileLog log/fs20dev-%Y-%U.log fs20dev
  15416. </li>
  15417. <li>fht<br>
  15418. Zeichnet die Ist-Temperatur/Soll-temperatur/Aktor Kurven. Die
  15419. passende FileLog-Definition (f&uuml;r das FHT-Ger&auml;t mit
  15420. Namen fht1)sieht wie folgt aus: <br>
  15421. <code>define fhtlog1 FileLog log/fht1-%Y-%U.log
  15422. fht1:.*(temp|actuator).*</code>
  15423. </li>
  15424. <li>temp4rain10<br>
  15425. Zeichnet eine Kurve aus der Temperatur und dem Niederschlag (pro
  15426. Stunde und pro Tag) eines KS300. Die dazu passende
  15427. FileLog-Definition (f&uuml;r das KS300
  15428. Ger&auml;t mit Namen ks300) sieht wie folgt aus:<br>
  15429. define ks300log FileLog log/fht1-%Y-%U.log ks300:.*H:.*
  15430. </li>
  15431. <li>hum6wind8<br>
  15432. Zeichnet eine Kurve aus der Feuchtigkeit und der
  15433. Windgeschwindigkeit eines ks300. Die geeignete
  15434. FileLog-Definition ist identisch mit der vorhergehenden
  15435. Definition. Beide programme erzeugen das gleiche Log.
  15436. </li>
  15437. <li>text<br>
  15438. Zeigt das LogFile in seiner urspr&uuml;nglichen Form (Nur
  15439. Text).Eine gnuplot-Definition ist nicht notwendig.
  15440. </li>
  15441. </ul>
  15442. Beispiel:<br> attr ks300log1 logtype
  15443. temp4rain10:Temp/Rain,hum6wind8:Hum/Wind,text:Raw-data
  15444. </li><br>
  15445. <li><a href="#mseclog">mseclog</a></li><br>
  15446. <a name="reformatFn"></a>
  15447. <li>reformatFn<br>
  15448. wird verwendet, um "fremde" Dateien f&uuml;r die SVG-Anzeige ins
  15449. FileLog-Format zu konvertieren. Es enth&auml;lt nur den Namen einer
  15450. Funktion, der mit der urspr&uuml;nglichen Zeile aufgerufen wird. Z.Bsp.
  15451. um die NTP loopstats Datei zu visualisieren kann man den Wert von
  15452. reformatFn auf ntpLoopstats setzen, und folgende Funktion in
  15453. 99_myUtils.pm definieren:
  15454. <pre><code>
  15455. sub
  15456. ntpLoopstats($)
  15457. {
  15458. my ($d) = @_;
  15459. return $d if($d !~ m/^(\d{5}) (\d+)\.(\d{3}) (.*)$/);
  15460. my ($r, $t) = ($4, FmtDateTime(($1-40587)*86400+$2));
  15461. $t =~ s/ /_/;
  15462. return "$t ntpLoopStats $r";
  15463. }</code></pre>
  15464. </li>
  15465. </ul>
  15466. <br>
  15467. </ul>
  15468. <p><a name="GAEBUS"></a>
  15469. <h3>GAEBUS</h3>
  15470. <ul>
  15471. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  15472. hier: <a href='commandref.html#GAEBUS'>GAEBUS</a><br/>
  15473. </ul>
  15474. <p>
  15475. <a name="GEOFANCY" id="GEOFANCY"></a>
  15476. </p>
  15477. <h3>
  15478. GEOFANCY
  15479. </h3>
  15480. <div class='langLinks'>[<a href='commandref.html#GEOFANCY'>EN</a> DE]</div>
  15481. <ul>
  15482. Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
  15483. </ul>
  15484. <ul>
  15485. <a href='http://fhem.de/commandref.html#GEOFANCY'>GEOFANCY</a>
  15486. </ul>
  15487. <p><a name="GHoma"></a>
  15488. <h3>GHoma</h3>
  15489. <div class='langLinks'>[<a href='commandref.html#GHoma'>EN</a> DE]</div>
  15490. (<a href="commandref.html#GHoma">en</a> | de)
  15491. <ul>
  15492. <ul>
  15493. Verbindet fhem mit einem G-Homa Zwischenstecker<br><br>
  15494. <b>Vorbereitung:</b><br>
  15495. <li>WLAN konfigurieren (bis Firmware 1.06):<br>
  15496. Ger&auml;t in den AP modus bringen (Knopf f&uuml;r mehr als 3s dr&uuml;cken, diesen Schritt wiederholen bis die LED permanent leuchtet)<br>
  15497. Nun einen Computer mit der SSID G-Home verbinden.<br>
  15498. Im Browser zu 10.10.100.254 (username:passwort = admin:admin)<br>
  15499. In STA Setting WLAN Einstellungen eintragen<br>
  15500. </li>
  15501. <li>WLAN konfigurieren:<br>
  15502. Ger&auml;t in den AP modus bringen (Knopf f&uuml;r mehr als 3s dr&uuml;cken, diesen Schritt wiederholen bis die LED permanent leuchtet)<br>
  15503. Mit der G-Homa App das WLAN des Zwischensteckers einstellen<br>
  15504. </li>
  15505. <li>Network Parameters settings (bis Firmware 1.06):<br>
  15506. Other Setting -> Protocol auf TCP-Server<br>
  15507. Other Setting -> Port ID (wird sp&auml;ter f&uuml;r FHEM ben&ouml;tigt)<br>
  15508. Other Setting -> Server Address (IP Adresse des FHEM Servers)<br>
  15509. </li>
  15510. <li>Network Parameters settings:<br>
  15511. &Uuml;ber <code>set ... ConfigAll</code> des Server Ger&auml;tes die Parameter automatisch setzen.<br>
  15512. </li>
  15513. <li>Optional:<br>
  15514. Im Router alle ausgehenden Verbindungen f&uuml;r G-Homa blockieren.<br>
  15515. </li>
  15516. </ul>
  15517. <br><br>
  15518. <a name="GHomadefine"></a>
  15519. <b>Define</b><br>
  15520. <ul>
  15521. <code>define &lt;name&gt; GHoma &lt;port&gt;</code> <br>
  15522. Legt ein GHoma Server device an.<br>
  15523. Neue Zwischenstecker werden beim ersten verbinden automatisch angelegt.<br>
  15524. Diese k&ouml;nnen aber auch manuell angelegt werden:<br>
  15525. <code>define &lt;name&gt; GHoma &lt;Id&gt;</code> <br>
  15526. Die <code>Id</code> besteht aus den letzten 6 Stellen der MAC Adresse des Zwischensteckers.<br>
  15527. Beispiel: MAC= AC:CF:23:A5:E2:3B -> Id= A5E23B<br>
  15528. <br>
  15529. </ul>
  15530. <a name="GHomaset"></a>
  15531. <b>Set</b>
  15532. <ul>
  15533. <code>set &lt;name&gt; &lt;value&gt;</code>
  15534. <br><br>
  15535. G&uuml;ltige Werte f&uuml;r <code>value</code>:<br>
  15536. <ul><code>
  15537. off<br>
  15538. on<br>
  15539. </code>
  15540. </ul>
  15541. Die <a href="#setExtensions"> set extensions</a> werden auch unterst&uuml;tzt.<br>
  15542. <br>
  15543. F&uuml;r Server Device:<br>
  15544. <code>set &lt;name&gt; ConfigAll [IP|hostname|FQDN von FHEM]</code><br>
  15545. Einstellen aller GHoma Zwischenstecker &uuml;ber UDP broadcast auf TCP client mit FHEM Server Adresse und Port des GHoma Server Devices.<br>
  15546. <code>set &lt;name&gt; ConfigSingle &lt;IP des Zwischensteckers&gt; [IP|hostname|FQDN von FHEM]</code><br>
  15547. Einstellen eines einzelnen GHoma Zwischensteckers &uuml;ber UDP auf TCP client mit FHEM Server Adresse und Port des GHoma Server Devices.<br>
  15548. </ul>
  15549. <a name="GHomaattr"></a>
  15550. <b>Attributes</b><br>
  15551. <ul>
  15552. F&uuml;r Zwischenstecker devices:
  15553. <ul><li>restoreOnStartup<br>
  15554. Wiederherstellen der Portzust&auml;nde nach Neustart<br>
  15555. Standard: last, g&uuml;ltige Werte: last, on, off<br><br>
  15556. </li>
  15557. <li>restoreOnReinit<br>
  15558. Wiederherstellen der Portzust&auml;nde nach Neustart<br>
  15559. Standard: last, g&uuml;ltige Werte: last, on, off<br><br>
  15560. </li>
  15561. <li>blocklocal<br>
  15562. Wert im Reading State sofort nach &Auml;nderung &uuml;ber lokale Taste wiederherstellen<br>
  15563. Standard: no, g&uuml;ltige Werte: no, yes<br><br>
  15564. </li></ul>
  15565. F&uuml;r Server devices:
  15566. <ul><li>allowfrom<br>
  15567. Regexp der erlaubten IP-Adressen oder Hostnamen. Wenn dieses Attribut
  15568. gesetzt wurde, werden ausschlie&szlig;lich Verbindungen von diesen
  15569. Adressen akzeptiert.<br><br>
  15570. </li></ul>
  15571. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  15572. </ul>
  15573. <br>
  15574. </ul>
  15575. <p><a name="GOOGLECAST"></a>
  15576. <h3>GOOGLECAST</h3>
  15577. <div class='langLinks'>[<a href='commandref.html#GOOGLECAST'>EN</a> DE]</div>
  15578. <ul>
  15579. GOOGLECAST wird zur Steueung deines Google Cast Devices verwendet<br><br>
  15580. <b>Note</b><br>Es ist sicherzustellen, dass python3 installiert ist. Zus&auml;tzlich werden folgende Pakete ben&ouml;tigt:
  15581. <ul>
  15582. <li>sudo apt-get install libwww-perl python-enum34 python-dev libextutils-makemaker-cpanfile-perl python3-pip cpanminus</li>
  15583. <li>sudo pip3 install pychromecast --upgrade</li>
  15584. <li>sudo pip3 install youtube-dl --upgrade</li>
  15585. <li>sudo INLINE_PYTHON_EXECUTABLE=/usr/bin/python3 cpanm Inline::Python</li>
  15586. </ul>
  15587. <br>
  15588. <br>
  15589. <a name="GOOGLECASTdefine" id="GOOGLECASTdefine"></a>
  15590. <b>Define</b>
  15591. <ul>
  15592. <code>define &lt;name&gt; GOOGLECAST &lt;name&gt;</code><br>
  15593. <br>
  15594. Beispiel:
  15595. <ul>
  15596. <code>define livingroom.chromecast GOOGLECAST livingroom</code><br><br>
  15597. Warte ein paar Sekunden bis das Ger&auml;t als ONLINE angezeigt wird...<br><br>
  15598. <code>set livingroom.chromecast play https://www.youtube.com/watch?v=YE7VzlLtp-4</code><br>
  15599. </ul>
  15600. <br>
  15601. Die folgenden Medienformate werden unterst&uuml;tzt:<br>
  15602. <a href="https://developers.google.com/cast/docs/media">Unterst&uuml;tzte Medienformate</a><br>
  15603. Das Abspielen mittels youtube-dl funktioniert f&uuml;r die folgenden URLs:<br>
  15604. <a href="https://rg3.github.io/youtube-dl/supportedsites.html">Unterst&uuml;tzte youtube-dl - Seiten</a><br>
  15605. <br>
  15606. </ul>
  15607. <br>
  15608. <a name="GOOGLECASTset" id="GOOGLECASTset"></a>
  15609. <b>Set</b>
  15610. <ul>
  15611. <code>set &lt;name&gt; &lt;command&gt; [&lt;parameter&gt;]</code><br>
  15612. Die folgenden Befehle sind definiert:<br><br>
  15613. <ul>
  15614. <li><code><b>play</b> URL</code> &nbsp;&nbsp;-&nbsp;&nbsp; Abspielen einer URL</li>
  15615. <li><code><b>play</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; Abspielen im Sinne von Wiederaufnahme eines zuvor pausierten Abspielvorgangs</li>
  15616. <li><code><b>playFavorite</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; spielt die URL aus den Favoriten favoriteURL_[1-5] ab</li>
  15617. <li><code><b>stop</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; unterbricht den augenblicklichen Abspielvorgang</li>
  15618. <li><code><b>pause</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; pause</li>
  15619. <li><code><b>quitApp</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; schlie&szlig;t die gegenw&auml;rtige Applikation wie beispielsweise YouTube</li>
  15620. <li><code><b>skip</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; unterbricht das gegenw&auml;rtige Kapitel bzw. Lied und springt zum N&auml;chsten</li>
  15621. <li><code><b>rewind</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; springt zum Anfang des gegenw&auml;rtigen Kapitels bzw. Liedes</li>
  15622. <li><code><b>displayWebsite</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; anzeigen einer Webseite auf Chromecast Video</li>
  15623. </ul>
  15624. <br>
  15625. </ul>
  15626. <a name="GOOGLECASTattr" id="GOOGLECASTattr"></a>
  15627. <b>Attribute</b>
  15628. <ul>
  15629. <li><code><b>favoriteURL_[1-5]</b></code> &nbsp;&nbsp;-&nbsp;&nbsp; Abspeichern von URL - Favoriten um mittels playFavorite [1-5] - Befehl abgespielt zu werden.</li>
  15630. </ul>
  15631. <br>
  15632. <a name="GOOGLECASTget" id="GOOGLECASTget"></a>
  15633. <b>Get</b>
  15634. <ul>
  15635. <code>n/a</code>
  15636. </ul>
  15637. <br>
  15638. </ul>
  15639. <p> <a name="GUEST" id="GUEST"></a>
  15640. <h3>GUEST</h3>
  15641. <div class='langLinks'>[<a href='commandref.html#GUEST'>EN</a> DE]</div>
  15642. <ul>
  15643. <a name="GUESTdefine" id="GUESTdefine"></a> <b>Define</b>
  15644. <ul>
  15645. <code>define &lt;rg_FirstName&gt; GUEST [&lt;Device Name(n) der Bewohnergruppe(n)&gt;]</code><br>
  15646. <br>
  15647. Stellt ein spezielles virtuelles Device bereit, welches einen Gast zu Hause repr&auml;sentiert.<br>
  15648. Basierend auf dem aktuellen Status und anderen Readings k&ouml;nnen andere Aktionen innerhalb von FHEM angesto�en werden.<br>
  15649. <br>
  15650. Wird vom &uuml;bergeordneten Modul <a href="#RESIDENTS">RESIDENTS</a> verwendet, kann aber auch einzeln benutzt werden.<br>
  15651. <br />
  15652. Bei Mitgliedschaft mehrerer Bewohnergruppen werden diese durch Komma getrennt angegeben (siehe Beispiel unten).<br />
  15653. <br>
  15654. Beispiele:<br>
  15655. <ul>
  15656. <code># Einzeln<br>
  15657. define rg_Guest GUEST<br>
  15658. <br>
  15659. # Typisches Gruppenmitglied<br>
  15660. define rg_Guest GUEST rgr_Residents # um Mitglied der Gruppe rgr_Residents zu sein<br>
  15661. <br>
  15662. # Mitglied in mehreren Gruppen<br>
  15663. define rg_Guest GUEST rgr_Residents,rgr_Guests # um Mitglied der Gruppen rgr_Residents und rgr_Guests zu sein</code>
  15664. </ul>
  15665. </ul><br>
  15666. <br>
  15667. <a name="GUESTset" id="GUESTset"></a> <b>Set</b>
  15668. <ul>
  15669. <code>set &lt;rg_FirstName&gt; &lt;command&gt; [&lt;parameter&gt;]</code><br>
  15670. <br>
  15671. Momentan sind die folgenden Kommandos definiert.<br>
  15672. <ul>
  15673. <li>
  15674. <b>location</b> &nbsp;&nbsp;-&nbsp;&nbsp; setzt das Reading 'location'; siehe auch Attribut rg_locations, um die in FHEMWEB angezeigte Liste anzupassen
  15675. </li>
  15676. <li>
  15677. <b>mood</b> &nbsp;&nbsp;-&nbsp;&nbsp; setzt das Reading 'mood'; siehe auch Attribut rg_moods, um die in FHEMWEB angezeigte Liste anzupassen
  15678. </li>
  15679. <li>
  15680. <b>state</b> &nbsp;&nbsp;home,gotosleep,asleep,awoken,absent,gone&nbsp;&nbsp; wechselt den Status; siehe auch Attribut rg_states, um die in FHEMWEB angezeigte Liste anzupassen
  15681. </li>
  15682. <li>
  15683. <b>create</b>
  15684. <li><i>locationMap</i>&nbsp;&nbsp; f&uuml;gt ein vorkonfiguriertes weblink Device hinzu, welches eine Google Map anzeigt, sofern die Readings locationLat+locationLong vorhanden sind.</li>
  15685. <li><i>wakeuptimer</i>&nbsp;&nbsp; f&uuml;gt diverse Vorkonfigurationen auf Basis von RESIDENTS Toolkit hinzu. Siehe separate Sektion in der <a href="#RESIDENTS">RESIDENTS Modul Kommandoreferenz</a>.</li>
  15686. </li>
  15687. </ul>
  15688. <ul>
  15689. <u>Hinweis:</u> Sofern der Zugriff auf administrative set-Kommandos (-> create) eingeschr&auml;nkt werden soll, kann in einer FHEMWEB Instanz das Attribut allowedCommands &auml;hnlich wie 'set,set-user' erweitert werden.
  15690. Die Zeichenfolge 'set-user' stellt dabei sicher, dass beim Zugriff auf FHEM &uuml;ber diese FHEMWEB Instanz nur nicht-administrative set-Kommandos ausgef&uuml;hrt werden k&ouml;nnen.
  15691. </ul>
  15692. </ul><br>
  15693. <br>
  15694. <ul>
  15695. <u>M&ouml;gliche Status und ihre Bedeutung</u><br>
  15696. <br>
  15697. <ul>
  15698. Dieses Modul unterscheidet 6 verschiedene Status:<br>
  15699. <br>
  15700. <ul>
  15701. <li>
  15702. <b>home</b> - Mitbewohner ist zu Hause und wach
  15703. </li>
  15704. <li>
  15705. <b>gotosleep</b> - Mitbewohner ist auf dem Weg ins Bett
  15706. </li>
  15707. <li>
  15708. <b>asleep</b> - Mitbewohner schl&auml;ft
  15709. </li>
  15710. <li>
  15711. <b>awoken</b> - Mitbewohner ist gerade aufgewacht
  15712. </li>
  15713. <li>
  15714. <b>absent</b> - Mitbewohner ist momentan nicht zu Hause, wird aber bald zur&uuml;ck sein
  15715. </li>
  15716. <li>
  15717. <b>none</b> - Gast Device ist deaktiviert
  15718. </li>
  15719. </ul>
  15720. </ul>
  15721. </ul><br>
  15722. <br>
  15723. <ul>
  15724. <u>Zusammenhang zwischen Anwesenheit/Presence und Aufenthaltsort/Location</u><br>
  15725. <br>
  15726. <ul>
  15727. Unter bestimmten Umst&auml;nden f&uuml;hrt der Wechsel des Status auch zu einer �nderung des Readings 'location'.<br>
  15728. <br>
  15729. Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'absent' auf 'present' wechselt, wird 'location' auf 'home' gesetzt. Sofern das Attribut rg_locationHome gesetzt ist, wird die erste Lokation daraus anstelle von 'home' verwendet.<br>
  15730. <br>
  15731. Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'present' auf 'absent' wechselt, wird 'location' auf 'underway' gesetzt. Sofern das Attribut rg_locationUnderway gesetzt ist, wird die erste Lokation daraus anstelle von 'underway' verwendet.
  15732. </ul>
  15733. </ul><br>
  15734. <br>
  15735. <ul>
  15736. <u>Auto-Status 'gone'</u><br>
  15737. <br>
  15738. <ul>
  15739. Immer wenn ein Mitbewohner auf 'absent' gesetzt wird, wird ein Z&auml;hler gestartet, der nach einer bestimmten Zeit den Status automatisch auf 'gone' setzt.<br>
  15740. Der Standard ist nach 16 Stunden.<br>
  15741. <br>
  15742. Dieses Verhalten kann &uuml;ber das Attribut rg_autoGoneAfter angepasst werden.
  15743. </ul>
  15744. </ul><br>
  15745. <br>
  15746. <ul>
  15747. <u>Anwesenheit mit anderen GUEST oder ROOMMATE Devices synchronisieren</u><br>
  15748. <br>
  15749. <ul>
  15750. Wenn Sie immer zusammen mit anderen Mitbewohnern oder G&auml;sten das Haus verlassen oder erreichen, k&ouml;nnen Sie ihren Status ganz einfach auf andere Mitbewohner &uuml;bertragen.<br>
  15751. Durch das Setzen des Attributs rg_PassPresenceTo folgen die dort aufgef&uuml;hrten Mitbewohner ihren eigenen Status&auml;nderungen nach 'home', 'absent' oder 'gone'.<br>
  15752. <br>
  15753. Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'none' oder 'gone' (im Falle von ROOMMATE Devices) nicht beachtet werden.
  15754. </ul>
  15755. </ul><br>
  15756. <br>
  15757. <ul>
  15758. <u>Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence</u><br>
  15759. <br>
  15760. <ul>
  15761. Unter bestimmten Umst&auml;nden hat der Wechsel des Readings 'location' auch einen Einfluss auf den tats&auml;chlichen Status.<br>
  15762. <br>
  15763. Immer wenn eine Lokation mit dem Namen 'home' gesetzt wird, wird auch der Status auf 'home' gesetzt, sofern die Anwesenheit bis dahin noch auf 'absent' stand. Sofern das Attribut rg_locationHome gesetzt wurde, so l&ouml;sen alle dort angegebenen Lokationen einen Statuswechsel nach 'home' aus.<br>
  15764. <br>
  15765. Immer wenn eine Lokation mit dem Namen 'underway' gesetzt wird, wird auch der Status auf 'absent' gesetzt, sofern die Anwesenheit bis dahin noch auf 'present' stand. Sofern das Attribut rg_locationUnderway gesetzt wurde, so l&ouml;sen alle dort angegebenen Lokationen einen Statuswechsel nach 'underway' aus. Diese Lokationen werden auch nicht in das Reading 'lastLocation' &uuml;bertragen.<br>
  15766. <br>
  15767. Immer wenn eine Lokation mit dem Namen 'wayhome' gesetzt wird, wird das Reading 'wayhome' auf '1' gesetzt, sofern die Anwesenheit zu diesem Zeitpunkt 'absent' ist. Sofern das Attribut rg_locationWayhome gesetzt wurde, so f&uuml;hrt das VERLASSEN einer dort aufgef&uuml;hrten Lokation ebenfalls dazu, dass das Reading 'wayhome' auf '1' gesetzt wird. Es gibt also 2 M&ouml;glichkeiten den Nach-Hause-Weg-Indikator zu beeinflussen (implizit und explizit).<br>
  15768. Die Ankunft zu Hause setzt den Wert von 'wayhome' zur&uuml;ck auf '0'.<br>
  15769. <br>
  15770. Wenn Sie auch das <a href="#GEOFANCY">GEOFANCY</a> Modul verwenden, k&ouml;nnen Sie das Reading 'location' ganz einfach &uuml;ber GEOFANCY Ereignisse aktualisieren lassen. Definieren Sie dazu einen NOTIFY-Trigger wie diesen:<br>
  15771. <br>
  15772. <code>define n_rg_Manfred.location notify geofancy:currLoc_Manfred.* set rg_Manfred:FILTER=location!=$EVTPART1 location $EVTPART1</code><br>
  15773. <br>
  15774. Durch das Anlegen von Geofencing-Zonen mit den Namen 'home' und 'wayhome' in der iOS App werden zuk&uuml;nftig automatisch alle Status&auml;nderungen wie oben beschrieben durchgef&uuml;hrt.
  15775. </ul>
  15776. </ul><br>
  15777. <br>
  15778. <a name="GUESTattr" id="GUESTattr"></a> <b>Attribute</b><br>
  15779. <ul>
  15780. <ul>
  15781. <li>
  15782. <b>rg_autoGoneAfter</b> - Anzahl der Stunden, nach denen sich der Status automatisch auf 'gone' &auml;ndert, wenn der aktuellen Status 'absent' ist; Standard ist 36 Stunden
  15783. </li>
  15784. <li>
  15785. <b>rg_geofenceUUIDs</b> - Mit Komma getrennte Liste von Ger&auml;te UUIDs, die ihren Standort &uuml;ber <a href="#GEOFANCY">GEOFANCY</a> aktualisieren. Vermeidet zus&auml;tzliche notify/DOIF/watchdog Ger&auml;te und kann als Ersatz f&uuml;r das GEOFANCY attribute <i>devAlias</i> dienen. (hier ehr als eine UUID/Device zu hinterlegen ist eher keine gute Idee da die Lokation dann wom&ouml;glich anf&auml;ngt zu springen)
  15786. </li>
  15787. <li>
  15788. <b>rg_lang</b> - &uuml;berschreibt globale Spracheinstellung; hilft beim setzen von Device Attributen, um FHEMWEB Anzeigetext zu &uuml;bersetzen
  15789. </li>
  15790. <li>
  15791. <b>rg_locationHome</b> - hiermit &uuml;bereinstimmende Lokationen werden als zu Hause gewertet; der erste Eintrag wird f&uuml;r das Zusammenspiel bei Status&auml;nderungen benutzt; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist 'home'
  15792. </li>
  15793. <li>
  15794. <b>rg_locationUnderway</b> - hiermit &uuml;bereinstimmende Lokationen werden als unterwegs gewertet; der erste Eintrag wird f&uuml;r das Zusammenspiel bei Status&auml;nderungen benutzt; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist 'underway'
  15795. </li>
  15796. <li>
  15797. <b>rg_locationWayhome</b> - das Verlassen einer Lokation, die hier aufgef&uuml;hrt ist, l&auml;sst das Reading 'wayhome' auf '1' setzen; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist "wayhome"
  15798. </li>
  15799. <li>
  15800. <b>rg_locations</b> - Liste der in FHEMWEB anzuzeigenden Lokationsauswahlliste in FHEMWEB; mehrere Eintr&auml;ge nur durch Komma trennen und KEINE Leerzeichen verwenden
  15801. </li>
  15802. <li>
  15803. <b>rg_moodDefault</b> - die Stimmung, die nach Ankunft zu Hause oder nach dem Statuswechsel von 'awoken' auf 'home' gesetzt werden soll
  15804. </li>
  15805. <li>
  15806. <b>rg_moodSleepy</b> - die Stimmung, die nach Statuswechsel zu 'gotosleep' oder 'awoken' gesetzt werden soll
  15807. </li>
  15808. <li>
  15809. <b>rg_moods</b> - Liste von Stimmungen, wie sie in FHEMWEB angezeigt werden sollen; mehrere Eintr&auml;ge nur durch Komma trennen und KEINE Leerzeichen verwenden
  15810. </li>
  15811. <li>
  15812. <b>rg_noDuration</b> - deaktiviert die kontinuierliche, nicht Event-basierte Berechnung der Zeitspannen (siehe Readings durTimer*)
  15813. </li>
  15814. <li>
  15815. <b>rg_passPresenceTo</b> - synchronisiere die Anwesenheit mit anderen GUEST oder ROOMMATE Devices; mehrere Devices durch Leerzeichen trennen
  15816. </li>
  15817. <li>
  15818. <b>rg_presenceDevices</b> - &uuml;bernehmen des presence Status von einem anderen FHEM Device. Bei mehreren Devices diese mit Komma trennen, um ein Update des GUEST Devices auszul&ouml;sen, sobald ALLE Devices entweder absent oder present sind. Optional kann auch durch : abgetrennt ein Reading Name angegeben werden, ansonsten werden die Readings presence und state ber&uuml;cksichtigt.
  15819. </li>
  15820. <li>
  15821. <b>rg_realname</b> - wo immer GUEST den richtigen Namen verwenden m&ouml;chte nutzt es den Wert des Attributs alias oder group; Standard ist group
  15822. </li>
  15823. <li>
  15824. <b>rg_showAllStates</b> - die Status 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess &uuml;ber das devStateIcon Attribut zu erm&ouml;glichen; Standard ist 0
  15825. </li>
  15826. <li>
  15827. <b>rg_states</b> - Liste aller in FHEMWEB angezeigter Status; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterst&uuml;tzte Status f&uuml;hren zu Fehlern
  15828. </li>
  15829. <li>
  15830. <b>rg_wakeupDevice</b> - Referenz zu versklavten DUMMY Ger&auml;ten, welche als Wecker benutzt werden (Teil von RESIDENTS Toolkit's wakeuptimer)
  15831. </li>
  15832. </ul>
  15833. </ul><br>
  15834. <br>
  15835. <br>
  15836. <b>Generierte Readings/Events:</b><br>
  15837. <ul>
  15838. <ul>
  15839. <li>
  15840. <b>durTimerAbsence</b> - Timer, der die Dauer der Abwesenheit in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
  15841. </li>
  15842. <li>
  15843. <b>durTimerAbsence_cr</b> - Timer, der die Dauer der Abwesenheit in Computer lesbarem Format anzeigt (Minuten)
  15844. </li>
  15845. <li>
  15846. <b>durTimerPresence</b> - Timer, der die Dauer der Anwesenheit in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
  15847. </li>
  15848. <li>
  15849. <b>durTimerPresence_cr</b> - Timer, der die Dauer der Anwesenheit in Computer lesbarem Format anzeigt (Minuten)
  15850. </li>
  15851. <li>
  15852. <b>durTimerSleep</b> - Timer, der die Schlafdauer in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
  15853. </li>
  15854. <li>
  15855. <b>durTimerSleep_cr</b> - Timer, der die Schlafdauer in Computer lesbarem Format anzeigt (Minuten)
  15856. </li>
  15857. <li>
  15858. <b>lastArrival</b> - Zeitstempel der letzten Ankunft zu Hause
  15859. </li>
  15860. <li>
  15861. <b>lastAwake</b> - Zeitstempel des Endes des letzten Schlafzyklus
  15862. </li>
  15863. <li>
  15864. <b>lastDeparture</b> - Zeitstempel des letzten Verlassens des Zuhauses
  15865. </li>
  15866. <li>
  15867. <b>lastDurAbsence</b> - Dauer der letzten Abwesenheit in normal lesbarem Format (Stunden:Minuten:Sekunden)
  15868. </li>
  15869. <li>
  15870. <b>lastDurAbsence_cr</b> - Dauer der letzten Abwesenheit in Computer lesbarem Format (Minuten)
  15871. </li>
  15872. <li>
  15873. <b>lastDurPresence</b> - Dauer der letzten Anwesenheit in normal lesbarem Format (Stunden:Minuten:Sekunden)
  15874. </li>
  15875. <li>
  15876. <b>lastDurPresence_cr</b> - Dauer der letzten Anwesenheit in Computer lesbarem Format (Minuten)
  15877. </li>
  15878. <li>
  15879. <b>lastDurSleep</b> - Dauer des letzten Schlafzyklus in normal lesbarem Format (Stunden:Minuten:Sekunden)
  15880. </li>
  15881. <li>
  15882. <b>lastDurSleep_cr</b> - Dauer des letzten Schlafzyklus in Computer lesbarem Format (Minuten)
  15883. </li>
  15884. <li>
  15885. <b>lastLocation</b> - der vorherige Aufenthaltsort
  15886. </li>
  15887. <li>
  15888. <b>lastMood</b> - die vorherige Stimmung
  15889. </li>
  15890. <li>
  15891. <b>lastSleep</b> - Zeitstempel des Beginns des letzten Schlafzyklus
  15892. </li>
  15893. <li>
  15894. <b>lastState</b> - der vorherige Status
  15895. </li>
  15896. <li>
  15897. <b>lastWakeup</b> - Zeit der letzten Wake-up Timer Ausf&uuml;hring
  15898. </li>
  15899. <li>
  15900. <b>lastWakeupDev</b> - Device Name des zuletzt verwendeten Wake-up Timers
  15901. </li>
  15902. <li>
  15903. <b>location</b> - der aktuelle Aufenthaltsort
  15904. </li>
  15905. <li>
  15906. <b>mood</b> - die aktuelle Stimmung
  15907. </li>
  15908. <li>
  15909. <b>nextWakeup</b> - Zeit der n&auml;chsten Wake-up Timer Ausf&uuml;hrung
  15910. </li>
  15911. <li>
  15912. <b>nextWakeupDev</b> - Device Name des als n&auml;chstes ausgef&auml;hrten Wake-up Timer
  15913. </li>
  15914. <li>
  15915. <b>presence</b> - gibt den zu Hause Status in Abh&auml;ngigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
  15916. </li>
  15917. <li>
  15918. <b>state</b> - gibt den aktuellen Status wieder
  15919. </li>
  15920. <li>
  15921. <b>wakeup</b> - hat den Wert '1' w&auml;hrend ein Weckprogramm dieses Bewohners ausgef&uuml;hrt wird
  15922. </li>
  15923. <li>
  15924. <b>wayhome</b> - abh&auml;ngig vom aktullen Aufenthaltsort, kann der Wert '1' werden, wenn die Person auf dem weg zur&uuml;ck nach Hause ist
  15925. </li>
  15926. <li>
  15927. <br>
  15928. Die folgenden Readings werden auf '-' gesetzt, sobald der Status auf 'none' steht:<br>
  15929. lastArrival, lastDurAbsence, lastLocation, lastMood, location, mood
  15930. </li>
  15931. </ul>
  15932. </ul>
  15933. </ul>
  15934. <p><a name="GardenaSmartBridge"></a>
  15935. <h3>GardenaSmartBridge</h3>
  15936. <div class='langLinks'>[<a href='commandref.html#GardenaSmartBridge'>EN</a> DE]</div>
  15937. <ul>
  15938. <u><b>Voraussetzungen</b></u>
  15939. <br><br>
  15940. <li>Zusammen mit dem Device GardenaSmartDevice stellt dieses FHEM Modul die Kommunikation zwischen der GardenaCloud und Fhem her. Es k&ouml;nnen damit Rasenm&auml;her, Bew&auml;sserungscomputer und Bodensensoren Ăźberwacht und gesteuert werden</li>
  15941. <li>Das Perl-Modul "SSL Packet" wird ben&ouml;tigt.</li>
  15942. <li>Unter Debian (basierten) System, kann dies mittels "apt-get install libio-socket-ssl-perl" installiert werden.</li>
  15943. <li>Das Gardena-Gateway und alle damit verbundenen Ger&auml;te und Sensoren m&uuml;ssen vorab in der GardenaApp eingerichtet sein.</li>
  15944. </ul>
  15945. <br>
  15946. <a name="GardenaSmartBridgedefine"></a>
  15947. <b>Define</b>
  15948. <ul><br>
  15949. <code>define &lt;name&gt; GardenaSmartBridge</code>
  15950. <br><br>
  15951. Beispiel:
  15952. <ul><br>
  15953. <code>define Gardena_Bridge GardenaSmartBridge</code><br>
  15954. </ul>
  15955. <br>
  15956. Das Bridge Device wird im Raum GardenaSmart angelegt und danach erfolgt das Einlesen und automatische Anlegen der Ger&auml;te. Von nun an k&ouml;nnen die eingebundenen Ger&auml;te gesteuert werden. &Auml;nderungen in der APP werden mit den Readings und dem Status syncronisiert.
  15957. <br><br>
  15958. <a name="GardenaSmartBridgereadings"></a>
  15959. <br><br>
  15960. <b>Readings</b>
  15961. <ul>
  15962. <li>address - Adresse, welche in der App eingetragen wurde (Langversion)</li>
  15963. <li>authorized_user_ids - </li>
  15964. <li>city - PLZ, Stadt</li>
  15965. <li>devices - Anzahl der Ger&auml;te, welche in der GardenaCloud angemeldet sind (Gateway z&auml;hlt mit)</li>
  15966. <li>lastRequestState - Letzter abgefragter Status der Bridge</li>
  15967. <li>latitude - Breitengrad des Grundst&uuml;cks</li>
  15968. <li>longitude - Längengrad des Grundst&uuml;cks</li>
  15969. <li>name - Name fßr das Grundst&uuml;ck � Default �My Garden�</li>
  15970. <li>state - Status der Bridge</li>
  15971. <li>token - SessionID</li>
  15972. <li>zones - </li>
  15973. </ul>
  15974. <br><br>
  15975. <a name="GardenaSmartBridgeset"></a>
  15976. <b>set</b>
  15977. <ul>
  15978. <li>getDeviceState - Startet eine Abfrage der Daten.</li>
  15979. <li>getToken - Holt eine neue Session-ID</li>
  15980. <li>gardenaAccountPassword - Passwort, welches in der GardenaApp verwendet wurde</li>
  15981. <li>deleteAccountPassword - l&oml;scht das Passwort aus dem Passwortstore</li>
  15982. </ul>
  15983. <br><br>
  15984. <a name="GardenaSmartBridgeattributes"></a>
  15985. <b>Attribute</b>
  15986. <ul>
  15987. <li>debugJSON - JSON Fehlermeldungen</li>
  15988. <li>disable - Schaltet die Daten&uuml;bertragung der Bridge ab</li>
  15989. <li>interval - Abfrageinterval in Sekunden (default: 300)</li>
  15990. <li>gardenaAccountEmail - Email Adresse, die auch in der GardenaApp verwendet wurde</li>
  15991. </ul>
  15992. </ul>
  15993. <p><a name="GardenaSmartDevice"></a>
  15994. <h3>GardenaSmartDevice</h3>
  15995. <div class='langLinks'>[<a href='commandref.html#GardenaSmartDevice'>EN</a> DE]</div>
  15996. <ul>
  15997. Zusammen mit dem Device GardenaSmartDevice stellt dieses FHEM Modul die Kommunikation zwischen der GardenaCloud und Fhem her.
  15998. <br><br>
  15999. Wenn das GardenaSmartBridge Device erzeugt wurde, werden verbundene Ger&auml;te automatisch erkannt und in Fhem angelegt.<br>
  16000. Von nun an k&ouml;nnen die eingebundenen Ger&auml;te gesteuert werden. &Auml;nderungen in der APP werden mit den Readings und dem Status syncronisiert.
  16001. <a name="GardenaSmartDevicereadings"></a>
  16002. </ul>
  16003. <br>
  16004. <ul>
  16005. <b>Readings</b>
  16006. <ul>
  16007. <li>battery-charging - Ladeindikator (0/1) oder mit neuerer Firmware (false/true)</li>
  16008. <li>battery-level - Ladezustand der Batterie in Prozent</li>
  16009. <li>battery-rechargeable_battery_status - Zustand der Batterie (Ausser Betrieb/Kritischer Batteriestand, wechseln Sie jetzt/Niedrig/oK)</li>
  16010. <li>device_info-category - Eigenschaft des Ger&auml;tes (M&auml;her/Bew&auml;sserungscomputer/Bodensensor)</li>
  16011. <li>device_info-last_time_online - Zeitpunkt der letzten Funk&uuml;bertragung</li>
  16012. <li>device_info-manufacturer - Hersteller</li>
  16013. <li>device_info-product - Produkttyp</li>
  16014. <li>device_info-serial_number - Seriennummer</li>
  16015. <li>device_info-sgtin - </li>
  16016. <li>device_info-version - Firmware Version</li>
  16017. <li>firmware-firmware_command - Firmware Kommando (Nichts zu tun/Firmwareupload unterbrochen/Firmwareupload/nicht unterst&uuml;tzt)</li>
  16018. <li>firmware-firmware_status - Firmware Status </li>
  16019. <li>firmware-firmware_update_start - Firmwareupdate (0/1) oder mit neuerer Firmware (false/true)</li>
  16020. <li>firmware-firmware_upload_progress - Firmwareupdatestatus in Prozent</li>
  16021. <li>firmware-inclusion_status - Einbindungsstatus</li>
  16022. <li>internal_temperature-temperature - Interne Ger&auml;te Temperatur</li>
  16023. <li>mower-error - Aktuelle Fehler Meldung
  16024. <ul>
  16025. <li>Kein Fehler</li>
  16026. <li>Au&szlig;erhalb des Arbeitsbereichs</li>
  16027. <li>Kein Schleifensignal</li>
  16028. <li>Falsches Schleifensignal</li>
  16029. <li>Problem Schleifensensor, vorne</li>
  16030. <li>Problem Schleifensensor, hinten</li>
  16031. <li>Eingeschlossen</li>
  16032. <li>Steht auf dem Kopf</li>
  16033. <li>Niedriger Batteriestand</li>
  16034. <li>Batterie ist leer</li>
  16035. <li>Kein Antrieb</li>
  16036. <li>Angehoben</li>
  16037. <li>Eingeklemmt in Ladestation</li>
  16038. <li>Ladestation blockiert</li>
  16039. <li>Problem Sto&szlig;sensor hinten</li>
  16040. <li>Problem Sto&szlig;sensor vorne</li>
  16041. <li>Radmotor rechts blockiert</li>
  16042. <li>Radmotor links blockiert</li>
  16043. <li>Problem Antrieb, rechts</li>
  16044. <li>Problem Antrieb, links</li>
  16045. <li>Schneidsystem blockiert</li>
  16046. <li>Fehlerhafte Verbindung</li>
  16047. <li>Standardeinstellungen</li>
  16048. <li>Elektronisches Problem</li>
  16049. <li>Problem Ladesystem</li>
  16050. <li>Kippsensorproblem</li>
  16051. <li>Rechter Radmotor &uuml;berlastet</li>
  16052. <li>Linker Radmotor &uuml;berlastet</li>
  16053. <li>Ladestrom zu hoch</li>
  16054. <li>Vor&uuml;bergehendes Problem</li>
  16055. <li>SK 1 nicht gefunden</li>
  16056. <li>SK 2 nicht gefunden</li>
  16057. <li>SK 3 nicht gefunden</li>
  16058. <li>Problem die Ladestation zu finden</li>
  16059. <li>Kalibration des Suchkabels beendet</li>
  16060. <li>Kalibration des Suchkabels fehlgeschlagen</li>
  16061. <li>Kurzzeitiges Batterieproblem</li>
  16062. <li>Batterieproblem</li>
  16063. <li>Alarm! M&auml;her ausgeschalten</li>
  16064. <li>Alarm! M&auml;her gestoppt</li>
  16065. <li>Alarm! M&auml;her angehoben</li>
  16066. <li>Alarm! M&auml;her gekippt</li>
  16067. <li>Verbindung geändert</li>
  16068. <li>Verbindung nicht ge&auml;ndert</li>
  16069. <li>COM board nicht verf&uuml;gbar</li>
  16070. <li>Rutscht</li>
  16071. </ul>
  16072. </li>
  16073. <li>mower-manual_operation - Manueller Betrieb (0/1) oder mit neuerer Firmware (false/true)</li>
  16074. <li>mower-override_end_time - Zeitpunkt wann der manuelle Betrieb beendet ist</li>
  16075. <li>mower-source_for_next_start - Grund f&uuml;r den n&auml;chsten Start
  16076. <ul>
  16077. <li>Kein Grund</li>
  16078. <li>M&auml;her wurde geladen</li>
  16079. <li>SensorControl erreicht</li>
  16080. <li>Wochentimer erreicht</li>
  16081. <li>Stoppuhr Timer</li>
  16082. <li>Undefiniert</li>
  16083. </ul>
  16084. </li>
  16085. <li>mower-status - M&auml;her Status (siehe state)</li>
  16086. <li>mower-timestamp_next_start - Zeitpunkt des n&auml;chsten geplanten Starts</li>
  16087. <li>radio-connection_status - Status der Funkverbindung</li>
  16088. <li>radio-quality - Indikator f&uuml;r die Funkverbindung in Prozent</li>
  16089. <li>radio-state - radio state (schlecht/schwach/gut/Undefiniert)</li>
  16090. <li>state - Staus des M&auml;hers
  16091. <ul>
  16092. <li>Pausiert</li>
  16093. <li>M&auml;hen</li>
  16094. <li>Suche Ladestation</li>
  16095. <li>L&auml;dt</li>
  16096. <li>M&auml;hen</li>
  16097. <li>Wird aktualisiert ...</li>
  16098. <li>Wird eingeschaltet ...</li>
  16099. <li>Geparkt nach Zeitplan</li>
  16100. <li>Geparkt</li>
  16101. <li>Der M&auml;her ist ausgeschaltet</li>
  16102. <li>Deaktiviert. Abdeckung ist offen oder PIN-Code erforderlich</li>
  16103. <li>Unbekannter Status</li>
  16104. <li>Fehler</li>
  16105. <li>Neustart ...</li>
  16106. <li>Deaktiviert. Manueller Start erforderlich</li>
  16107. <li>Manuelles M&auml;hen</li>
  16108. <li>Geparkt durch SensorControl</li>
  16109. <li>Abgeschlossen</li>
  16110. </ul>
  16111. </li>
  16112. </ul>
  16113. <br><br>
  16114. <a name="GardenaSmartDeviceattributes"></a>
  16115. <b>Attribute</b>
  16116. <ul>
  16117. <li>readingValueLanguage - &Auml;nderung der Sprache der Readings (de,en/wenn nichts gesetzt ist, dann Englisch es sei denn deutsch ist als globale Sprache gesetzt) </li>
  16118. <li>model - </li>
  16119. </ul>
  16120. <a name="GardenaSmartDeviceset"></a>
  16121. <b>set</b>
  16122. <ul>
  16123. <li>parkUntilFurtherNotice - Parken des M&auml;hers unter Umgehung des Zeitplans</li>
  16124. <li>parkUntilNextTimer - Parken bis zum n&auml;chsten Zeitplan</li>
  16125. <li>startOverrideTimer - Manuelles m&auml;hen (in Minuten, 60 = 1h, 1440 = 24h, 4320 = 72h)</li>
  16126. <li>startResumeSchedule - Weiterf&uuml;hrung des Zeitplans</li>
  16127. <li>startpoint enable|disable 1|2|3 - Aktiviert oder deaktiviert einen vordefinierten Startbereich</li>
  16128. <ul>
  16129. <li>set NAME startpoint enable 1</li>
  16130. <li>set NAME startpoint disable 3 enable 1</li>
  16131. </ul>
  16132. </ul>
  16133. </ul>
  16134. <p><a name="GasCalculator"></a>
  16135. <h3>GasCalculator</h3>
  16136. <div class='langLinks'>[<a href='commandref.html#GasCalculator'>EN</a> DE]</div>
  16137. <ul>
  16138. <table>
  16139. <tr>
  16140. <td>
  16141. Das GasCalculator Modul berechnet den Gas - Verbrauch und den verbundenen Kosten von einem oder mehreren Gas-Z&auml;hlern.<BR>
  16142. Es ist kein eigenes Z&auml;hlermodul sondern ben&ouml;tigt eine Regular Expression (regex or regexp) um das Reading mit den Z&auml;hl-Impulse von einem oder mehreren Gasz&auml;hlern zu finden.<BR>
  16143. <BR>
  16144. Sobald das Modul in der fhem.cfg definiert wurde, reagiert das Modul auf jedes durch das regex definierte event wie beispielsweise ein myOWDEVICE:counter.* etc.<BR>
  16145. <BR>
  16146. Das GasCalculator Modul berechnet augenblickliche, historische statistische und vorhersehbare Werte von einem oder mehreren Gas-Z&auml;hlern und erstellt die entsprechenden Readings.<BR>
  16147. <BR>
  16148. Um zu verhindern, dass man bis zu 12 Monate warten muss, bis alle Werte der Realit&auml;t entsprechen, m&uuml;ssen die Readings <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Vol1stDay</code>, <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Vol1stMonth</code>, <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Vol1stYear</code> und <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Vol1stMeter</code> entsprechend mit dem <code>setreading</code> - Befehl korrigiert werden.
  16149. Diese Werte findet man unter Umst&auml;nden auf der letzten Gas-Rechnung. Andernfalls dauert es bis zu 24h f&uuml;r die t&auml;glichen, 30 Tage f&uuml;r die monatlichen und bis zu 12 Monate f&uuml;r die j&auml;hrlichen Werte bis diese der Realit&auml;t entsprechen.<BR>
  16150. <BR>
  16151. </td>
  16152. </tr>
  16153. </table>
  16154. <table>
  16155. <tr><td><a name="GasCalculatorDefine"></a><b>Define</b></td></tr>
  16156. </table>
  16157. <table><tr><td><ul><code>define &lt;name&gt; GasCalculator &lt;regex&gt;</code></ul></td></tr></table>
  16158. <ul><ul>
  16159. <table>
  16160. <tr><td><code>&lt;name&gt;</code> : </td><td>Der Name dieses Berechnungs-Device. Empfehlung: "myGasCalculator".</td></tr>
  16161. <tr><td><code>&lt;regex&gt;</code> : </td><td>Eine g&uuml;ltige Regular Expression (regex or regexp) von dem Event wo der Z&auml;hlerstand gefunden werden kann</td></tr>
  16162. </table>
  16163. </ul></ul>
  16164. <table><tr><td><ul>Beispiel: <code>define myGasCalculator GasCalculator myGasCounter:countersA.*</code></ul></td></tr></table>
  16165. <BR>
  16166. <table>
  16167. <tr><td><a name="GasCalculatorSet"></a><b>Set</b></td></tr>
  16168. <tr><td>
  16169. <ul>
  16170. Die set - Funktion erlaubt individuelle Readings zu ver&auml;ndern um beispielsweise nach einem Stromausfall Werte zu korrigieren.<BR>
  16171. Die set - Funktion funktioniert nur f&uumlr Readings welche im CalculatorDevice gespeichert wurden.<BR>
  16172. Die Readings welche im Counter - Device gespeichert wurden, m&uumlssen individuell mit <code>set</code> - Befehl gesetzt werden.<BR>
  16173. </ul>
  16174. </td></tr>
  16175. </table>
  16176. <BR>
  16177. <table>
  16178. <tr><td><a name="GasCalculatorGet"></a><b>Get</b></td></tr>
  16179. <tr><td>
  16180. <ul>
  16181. Die get - Funktion liefert nur den Wert des jeweiligen Readings zur&uuml;ck.<BR>
  16182. Die get - Funktion funktioniert nur f&uumlr Readings welche im CalculatorDevice gespeichert wurden.<BR>
  16183. Die Readings welche im Counter - Device gespeichert wurden, m&uumlssen individuell mit <code>get</code> - Befehl ausgelesen werden.<BR>
  16184. </ul>
  16185. </td></tr>
  16186. </table>
  16187. <BR>
  16188. <table>
  16189. <tr><td><a name="GasCalculatorAttr"></a><b>Attributes</b></td></tr>
  16190. <tr><td>
  16191. <ul>
  16192. Sollten die unten ausfeg&auuml;hrten Attribute bei der Definition eines entsprechenden Ger&auml;tes nicht gesetzt sein, so werden sie vom Modul mit Standard Werten automatisch gesetzt<BR>
  16193. Zus&auml;tzlich k&ouml;nnen die globalen Attribute wie <a href="#room">room</a> verwendet werden.<BR>
  16194. </ul>
  16195. </td></tr>
  16196. </table>
  16197. <ul><ul>
  16198. <table>
  16199. <tr>
  16200. <td>
  16201. <tr><td><li><code>BasicPricePerAnnum</code> : </li></td><td> Eine g&uuml;ltige float Zahl f&uuml;r die j&auml;hrliche Grundgeb&uuml;hr in der gew&auml;hlten W&auml;hrung f&uuml;r die Gas-Versorgung zum End-Verbraucher.<BR>
  16202. Dieser Wert stammt vom Gas-Zulieferer und steht auf der Gas-Rechnung.<BR>
  16203. Der Standard Wert ist 0.00<BR>
  16204. </td></tr>
  16205. </td>
  16206. </tr>
  16207. </table>
  16208. </ul></ul>
  16209. <ul><ul>
  16210. <table>
  16211. <tr>
  16212. <td>
  16213. <tr><td><li><code>Currency</code> : </li></td><td> Eines der vordefinerten W&auml;hrungssymbole: [&#8364;,&#163;,&#36;].<BR>
  16214. Der Standard Wert ist &#8364;<BR>
  16215. </td></tr>
  16216. </td>
  16217. </tr>
  16218. </table>
  16219. </ul></ul>
  16220. <ul><ul>
  16221. <table>
  16222. <tr>
  16223. <td>
  16224. <tr><td><li><code>disable</code> : </li></td><td> Deaktiviert das devive. Das Modul wird nicht mehr auf die Events reagieren die durch die Regular Expression definiert wurde.<BR>
  16225. Der Standard Wert ist 0 = ativiert.<BR>
  16226. </td></tr>
  16227. </td>
  16228. </tr>
  16229. </table>
  16230. </ul></ul>
  16231. <ul><ul>
  16232. <table>
  16233. <tr>
  16234. <td>
  16235. <tr><td><li><code>GasCounterOffset</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r den Volumen Unterschied = Offset (Nicht der Unterschied zwischen Z&auml;hlimpulsen) zwischen dem am mechanischen Gasz&auml;hler und dem angezeigten Wert im Reading dieses Device.<BR>
  16236. Der Offset-Wert wird wie folgt ermittelt: V<sub>Offset</sub> = V<sub>Mechanisch</sub> - V<sub>Module</sub><BR>
  16237. Der Standard-Wert ist 0.00<BR>
  16238. </td></tr>
  16239. </td>
  16240. </tr>
  16241. </table>
  16242. </ul></ul>
  16243. <ul><ul>
  16244. <table>
  16245. <tr>
  16246. <td>
  16247. <tr><td><li><code>GasCubicPerCounts</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r die Menge an Z&auml;hlimpulsen pro gew&auml;hlter Volumen-Grundeinheit.<BR>
  16248. Der Wert ist durch das mechanische Z&auml;hlwerk des Gasz&auml;hlers vorgegeben. GasCubicPerCounts = 0.01 bedeutet, dass jeder Z&auml;hlimpuls ein hunderstel der gew&auml;hlten Volumengrundeinheit.<BR>
  16249. Der Standard-Wert ist 0.01<BR>
  16250. </td></tr>
  16251. </td>
  16252. </tr>
  16253. </table>
  16254. </ul></ul>
  16255. <ul><ul>
  16256. <table>
  16257. <tr>
  16258. <td>
  16259. <tr><td><li><code>GasNominalHeatingValue</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r den Heizwert des gelieferten Gases in [kWh/ gew&auml;hlter Volumeneinheit].<BR>
  16260. Dieser Wert stammt vom Gas-Zulieferer und steht auf der Gas-Rechnung.<BR>
  16261. Der Standard-Wert ist 10.00<BR>
  16262. </td></tr>
  16263. </td>
  16264. </tr>
  16265. </table>
  16266. </ul></ul>
  16267. <ul><ul>
  16268. <table>
  16269. <tr>
  16270. <td>
  16271. <tr><td><li><code>GaszValue</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r die Zustandszahl des Gases basierend auf der Relation based on the local installation of the mechganical gas meter in relation of the gas providers main supply station.<BR>
  16272. Dieser Wert stammt vom Gas-Zulieferer und steht auf der Gas-Rechnung.<BR>
  16273. Der Standard-Wert ist 1.00<BR>
  16274. </td></tr>
  16275. </td>
  16276. </tr>
  16277. </table>
  16278. </ul></ul>
  16279. <ul><ul>
  16280. <table>
  16281. <tr>
  16282. <td>
  16283. <tr><td><li><code>GasPricePerKWh</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r den Gas Preis in der gew&auml;hlten W&auml;hrung pro kWh.<BR>
  16284. Dieser Wert stammt vom Gas-Zulieferer und steht auf der Gas-Rechnung.<BR>
  16285. Der Standard-Wert ist 0.0654<BR>
  16286. </td></tr>
  16287. </td>
  16288. </tr>
  16289. </table>
  16290. </ul></ul>
  16291. <ul><ul>
  16292. <table>
  16293. <tr>
  16294. <td>
  16295. <tr><td><li><code>MonthlyPayment</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r die monatlichen Abschlagszahlungen in der gew&auml;hlten W&auml;hrung an den Gas-Lieferanten.<BR>
  16296. Der Standard-Wert ist 0.00<BR>
  16297. </td></tr>
  16298. </td>
  16299. </tr>
  16300. </table>
  16301. </ul></ul>
  16302. <ul><ul>
  16303. <table>
  16304. <tr>
  16305. <td>
  16306. <tr><td><li><code>MonthOfAnnualReading</code> : </li></td><td> Eine g&uuml;ltige Ganz-Zahl f&uuml;r den Monat wenn der mechanische Gas-Z&auml;hler jedes Jahr durch den Gas-Lieferanten abgelesen wird.<BR>
  16307. Der Standard-Wert ist 5 (Mai)<BR>
  16308. </td></tr>
  16309. </td>
  16310. </tr>
  16311. </table>
  16312. </ul></ul>
  16313. <ul><ul>
  16314. <table>
  16315. <tr>
  16316. <td>
  16317. <tr><td><li><code>ReadingDestination</code> : </li></td><td> Eines der vordefinerten Device als Ziel der errechneten Readings: [CalculatorDevice,CounterDevice].<BR>
  16318. Das CalculatorDevice ist das mit diesem Modul erstellte Device.<BR>
  16319. Das CounterDevice ist das Device von welchem der mechanische Z&auml;hler ausgelesen wird.<BR>
  16320. Der Standard-Wert ist CalculatorDevice.<BR>
  16321. </td></tr>
  16322. </td>
  16323. </tr>
  16324. </table>
  16325. </ul></ul>
  16326. <ul><ul>
  16327. <table>
  16328. <tr>
  16329. <td>
  16330. <tr><td><li><code>Volume</code> : </li></td><td> Eine der vordefinierten Volumensymbole f&uuml;r die Volumeneinheit [m&#179;,ft&#179;].<BR>
  16331. Der Standard-Wert ist m&#179;<BR>
  16332. </td></tr>
  16333. </td>
  16334. </tr>
  16335. </table>
  16336. </ul></ul>
  16337. <BR>
  16338. <table>
  16339. <tr><td><a name="GasCalculatorReadings"></a><b>Readings</b></td></tr>
  16340. <tr><td>
  16341. <ul>
  16342. Sobald das Device in der Lage war mindestens 2 Werte des Z&auml;hlers einzulesen, werden automatisch die entsprechenden Readings erzeugt:<BR>
  16343. Der Platzhalter <code>&lt;DestinationDevice&gt;</code> steht f&uuml;r das Device, welches man in dem Attribut <code>ReadingDestination</code> oben festgelegt hat. Dieser Platzhalter bleibt leer, sobald man dort CalculatorDevice ausgew&auml;hlt hat.<BR>
  16344. Der Platzhalter <code>&lt;SourceCounterReading&gt;</code> steht f&uuml;r das Reading welches mit der Regular Expression definiert wurde.<BR>
  16345. </ul>
  16346. </td></tr>
  16347. </table>
  16348. <ul><ul>
  16349. <table>
  16350. <tr>
  16351. <td>
  16352. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostLastDay</code> : </li></td><td>Energiekosten in der gew&auml;hlten W&auml;hrung des letzten Tages.<BR>
  16353. </td></tr>
  16354. </td>
  16355. </tr>
  16356. </table>
  16357. </ul></ul>
  16358. <ul><ul>
  16359. <table>
  16360. <tr>
  16361. <td>
  16362. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostMeter</code> : </li></td><td>Energiekosten in der gew&auml;hlten W&auml;hrung seit Anfang des Monats wo der Gas-Versorger den Z&auml;hler abliest.<BR>
  16363. </td></tr>
  16364. </td>
  16365. </tr>
  16366. </table>
  16367. </ul></ul>
  16368. <ul><ul>
  16369. <table>
  16370. <tr>
  16371. <td>
  16372. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostMeterLast</code> : </li></td><td>Energiekosten in der gew&auml;hlten W&auml;hrung der letzten Z&auml;hlperiode des Gas-Versorgers.<BR>
  16373. </td></tr>
  16374. </td>
  16375. </tr>
  16376. </table>
  16377. </ul></ul>
  16378. <ul><ul>
  16379. <table>
  16380. <tr>
  16381. <td>
  16382. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostMonth</code> : </li></td><td>Energiekosten in der gew&auml;hlten W&auml;hrung seit Anfang des Monats.<BR>
  16383. </td></tr>
  16384. </td>
  16385. </tr>
  16386. </table>
  16387. </ul></ul>
  16388. <ul><ul>
  16389. <table>
  16390. <tr>
  16391. <td>
  16392. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostMonthLast</code> : </li></td><td>Energiekosten in der gew&auml;hlten W&auml;hrung des letzten Monats.<BR>
  16393. </td></tr>
  16394. </td>
  16395. </tr>
  16396. </table>
  16397. </ul></ul>
  16398. <ul><ul>
  16399. <table>
  16400. <tr>
  16401. <td>
  16402. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostYear</code> : </li></td><td>Energiekosten in der gew&auml;hlten W&auml;hrung seit Anfang des Jahres.<BR>
  16403. </td></tr>
  16404. </td>
  16405. </tr>
  16406. </table>
  16407. </ul></ul>
  16408. <ul><ul>
  16409. <table>
  16410. <tr>
  16411. <td>
  16412. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyCostYearLast</code> : </li></td><td>Energiekosten in der gew&auml;hlten W&auml;hrung des letzten Jahres.<BR>
  16413. </td></tr>
  16414. </td>
  16415. </tr>
  16416. </table>
  16417. </ul></ul>
  16418. <ul><ul>
  16419. <table>
  16420. <tr>
  16421. <td>
  16422. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyDay</code> : </li></td><td>Energieverbrauch in kWh seit Mitternacht.<BR>
  16423. </td></tr>
  16424. </td>
  16425. </tr>
  16426. </table>
  16427. </ul></ul>
  16428. <ul><ul>
  16429. <table>
  16430. <tr>
  16431. <td>
  16432. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyDayLast</code> : </li></td><td>Gesamter Energieverbrauch des letzten Tages (Gestern).<BR>
  16433. </td></tr>
  16434. </td>
  16435. </tr>
  16436. </table>
  16437. </ul></ul>
  16438. <ul><ul>
  16439. <table>
  16440. <tr>
  16441. <td>
  16442. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyMeter</code> : </li></td><td>Energieverbrauch in kWh seit Anfang seit Anfang des Monats wo der Gas-Versorger den Z&auml;hler abliest.<BR>
  16443. </td></tr>
  16444. </td>
  16445. </tr>
  16446. </table>
  16447. </ul></ul>
  16448. <ul><ul>
  16449. <table>
  16450. <tr>
  16451. <td>
  16452. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyMeterLast</code> : </li></td><td>Gesamter Energieverbrauch der letzten Z&auml;hlerperiode des Gas-Versorgers.<BR>
  16453. </td></tr>
  16454. </td>
  16455. </tr>
  16456. </table>
  16457. </ul></ul>
  16458. <ul><ul>
  16459. <table>
  16460. <tr>
  16461. <td>
  16462. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyMonth</code> : </li></td><td>Energieverbrauch in kWh seit Anfang seit Anfang des Monats (Mitternacht des 01.).<BR>
  16463. </td></tr>
  16464. </td>
  16465. </tr>
  16466. </table>
  16467. </ul></ul>
  16468. <ul><ul>
  16469. <table>
  16470. <tr>
  16471. <td>
  16472. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyMonthLast</code> : </li></td><td>Gesamter Energieverbrauch im letzten Monat.<BR>
  16473. </td></tr>
  16474. </td>
  16475. </tr>
  16476. </table>
  16477. </ul></ul>
  16478. <ul><ul>
  16479. <table>
  16480. <tr>
  16481. <td>
  16482. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyYear</code> : </li></td><td>Energieverbrauch in kWh seit Anfang seit Anfang des Jahres (Mitternacht des 01. Januar).<BR>
  16483. </td></tr>
  16484. </td>
  16485. </tr>
  16486. </table>
  16487. </ul></ul>
  16488. <ul><ul>
  16489. <table>
  16490. <tr>
  16491. <td>
  16492. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_EnergyYearLast</code> : </li></td><td>Gesamter Energieverbrauch in kWh des letzten Kalender-Jahres.<BR>
  16493. </td></tr>
  16494. </td>
  16495. </tr>
  16496. </table>
  16497. </ul></ul>
  16498. <ul><ul>
  16499. <table>
  16500. <tr>
  16501. <td>
  16502. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_FinanceReserve</code> : </li></td><td>Finanzielle Reserve basierend auf den Abschlagszahlungen die jeden Monat an den Gas-Versorger gezahlt werden. Bei negativen Werten ist von einer Nachzahlung auszugehen.<BR>
  16503. </td></tr>
  16504. </td>
  16505. </tr>
  16506. </table>
  16507. </ul></ul>
  16508. <ul><ul>
  16509. <table>
  16510. <tr>
  16511. <td>
  16512. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_MonthMeterReading</code> : </li></td><td>Anzahl der Monate seit der letzten Zählerablesung. Der Monat der Zählerablesung ist der erste Monat = 1.<BR>
  16513. </td></tr>
  16514. </td>
  16515. </tr>
  16516. </table>
  16517. </ul></ul>
  16518. <ul><ul>
  16519. <table>
  16520. <tr>
  16521. <td>
  16522. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Meter</code> : </li></td><td>Z&auml;hlerstand am Gasz&auml;hler. Bei Differenzen muss das Offset-Attribut korrigiert werden.<BR>
  16523. </td></tr>
  16524. </td>
  16525. </tr>
  16526. </table>
  16527. </ul></ul>
  16528. <ul><ul>
  16529. <table>
  16530. <tr>
  16531. <td>
  16532. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_PowerCurrent</code> : </li></td><td>Aktuelle Heizleistung. (Mittelwert zwischen aktueller und letzter Messung)<BR>
  16533. </td></tr>
  16534. </td>
  16535. </tr>
  16536. </table>
  16537. </ul></ul>
  16538. <ul><ul>
  16539. <table>
  16540. <tr>
  16541. <td>
  16542. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_PowerDayAver</code> : </li></td><td>Mittlere Heitzleistung seit Mitternacht.<BR>
  16543. </td></tr>
  16544. </td>
  16545. </tr>
  16546. </table>
  16547. </ul></ul>
  16548. <ul><ul>
  16549. <table>
  16550. <tr>
  16551. <td>
  16552. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_PowerDayMax</code> : </li></td><td>Maximale Leistungsaufnahme seit Mitternacht.<BR>
  16553. </td></tr>
  16554. </td>
  16555. </tr>
  16556. </table>
  16557. </ul></ul>
  16558. <ul><ul>
  16559. <table>
  16560. <tr>
  16561. <td>
  16562. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_PowerDayMin</code> : </li></td><td>Minimale Leistungsaufnahme seit Mitternacht.<BR>
  16563. </td></tr>
  16564. </td>
  16565. </tr>
  16566. </table>
  16567. </ul></ul>
  16568. <ul><ul>
  16569. <table>
  16570. <tr>
  16571. <td>
  16572. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Vol1stDay</code> : </li></td><td>Erster Volumenmesswert des Tages (Mitternacht).<BR>
  16573. </td></tr>
  16574. </td>
  16575. </tr>
  16576. </table>
  16577. </ul></ul>
  16578. <ul><ul>
  16579. <table>
  16580. <tr>
  16581. <td>
  16582. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_VolLastDay</code> : </li></td><td>Verbrauchtes Volumen des vorherigen Tages.<BR>
  16583. </td></tr>
  16584. </td>
  16585. </tr>
  16586. </table>
  16587. </ul></ul>
  16588. <ul><ul>
  16589. <table>
  16590. <tr>
  16591. <td>
  16592. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Vol1stMonth</code> : </li></td><td>Erster Volumenmesswert des Monats (Mitternacht des 01.).<BR>
  16593. </td></tr>
  16594. </td>
  16595. </tr>
  16596. </table>
  16597. </ul></ul>
  16598. <ul><ul>
  16599. <table>
  16600. <tr>
  16601. <td>
  16602. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_VolLastMonth</code> : </li></td><td>Verbrauchtes Volumen des vorherigen Monats.<BR>
  16603. </td></tr>
  16604. </td>
  16605. </tr>
  16606. </table>
  16607. </ul></ul>
  16608. <ul><ul>
  16609. <table>
  16610. <tr>
  16611. <td>
  16612. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Vol1stYear</code> : </li></td><td>Erster Volumenmesswert des Jahres (Mitternacht des 01. Januar).<BR>
  16613. </td></tr>
  16614. </td>
  16615. </tr>
  16616. </table>
  16617. </ul></ul>
  16618. <ul><ul>
  16619. <table>
  16620. <tr>
  16621. <td>
  16622. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_VolLastYear</code> : </li></td><td>Verbrauchtes Volumen des vorherigen Jahres.<BR>
  16623. </td></tr>
  16624. </td>
  16625. </tr>
  16626. </table>
  16627. </ul></ul>
  16628. <ul><ul>
  16629. <table>
  16630. <tr>
  16631. <td>
  16632. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_Vol1stMeter</code> : </li></td><td>Erster Volumenmesswert des Zeitraums seit Anfang des Monats wo der Gas-Versorger den Z&auml;hler abliest.<BR>
  16633. </td></tr>
  16634. </td>
  16635. </tr>
  16636. </table>
  16637. </ul></ul>
  16638. <ul><ul>
  16639. <table>
  16640. <tr>
  16641. <td>
  16642. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_VolLastMeter</code> : </li></td><td>Verbrauchtes Volumen des vorherigen Abrechnungszeitraums.<BR>
  16643. </td></tr>
  16644. </td>
  16645. </tr>
  16646. </table>
  16647. </ul></ul>
  16648. </ul>
  16649. <p><a name="GoogleAuth"></a>
  16650. <h3>GoogleAuth</h3>
  16651. <div class='langLinks'>[<a href='commandref.html#GoogleAuth'>EN</a> DE]</div>
  16652. <ul>
  16653. Sorry, keine deutsche Dokumentation vorhanden.<br/><br/>
  16654. Die englische Doku gibt es hier: <a href='commandref.html#GoogleAuth'>GoogleAuth</a><br/>
  16655. </ul>
  16656. <p><a name="HCS"></a>
  16657. <h3>HCS</h3>
  16658. <ul>
  16659. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  16660. hier: <a href='commandref.html#HCS'>HCS</a><br/>
  16661. </ul>
  16662. <a name="HEATRONIC"></a>
  16663. <h3>HEATRONIC</h3>
  16664. <div class='langLinks'>[<a href='commandref.html#HEATRONIC'>EN</a> DE]</div>
  16665. <ul>
  16666. Das HEATRONIC Modul wertet die Nachrichten aus, die &uuml;ber den HT-Bus von einer Junkers-Heizung &uuml;bertragen werden.<br/>
  16667. M&ouml;gliche Adapter werden unter http://www.mikrocontroller.net/topic/317004 vorgestellt.<br/><br/>
  16668. <a name="HEATRONIC_Define"></a>
  16669. <B>Define:</B><br/>
  16670. <ul><code>define &lt;name&gt; HEATRONIC &lt;serial-device&gt; | &lt;proxy-server IP-Adresse:port&gt;</code><br/><br/>
  16671. <B>Beispiel f&uuml;r serielles Ger&auml;t:</B></br>
  16672. <ul>
  16673. <code> define Heizung HEATRONIC /dev/ttyUSB0@9600</code>
  16674. </ul><br/>
  16675. <B>Beispiel f&uuml;r Proxy-Server:</B></br>
  16676. <ul>
  16677. <code> define Heizung HEATRONIC 192.168.2.11:8088</code>
  16678. </ul></ul><br/>
  16679. <a name="HEATRONIC_set"><b>Set:</b></a>
  16680. <ul>
  16681. <code>set &lt;name&gt; &lt;param&gt; &lt;value&gt;</code>
  16682. <br><ul>(nur mit ht_pitiny- oder ht_piduino-Adapter m&ouml;glich)</ul>
  16683. <br>
  16684. wobei die Parameter folgende Werte haben:
  16685. <ul>
  16686. <li>hc1_Trequired &lt;temp&gt;<br>
  16687. Setzt das 'Heizen' Temperatur-Niveau f&uuml;r Heizkreis 1 (permanent)<br>
  16688. Aufl&ouml;sung 0.5 Celsius, Bereich: 10 bis 30 Celsius
  16689. </li>
  16690. <li>hc1_mode [ auto | comfort | eco | frost ]<br>
  16691. Setzt die Betriebsart des Heizkreises 1<br>
  16692. <ul>
  16693. <li>auto : Das Timerprogramm und die Sommerzeit-Umschaltung sind aktiv </li>
  16694. <li>comfort: Manueller 'comfort' Mode, Timerprogramm deaktiv</li>
  16695. <li>eco : Manueller 'eco' Mode, Timerprogramm deaktiv</li>
  16696. <li>frost : Manueller 'frost' Mode, Timerprogramm deaktiv</li>
  16697. </ul></li>
  16698. </ul>
  16699. <br>
  16700. Beispiele:
  16701. <ul>
  16702. <code>set Boiler hc1_Trequired 22.5</code><br>
  16703. <code>set Boiler hc1_mode eco</code>
  16704. </ul>
  16705. <br>
  16706. </ul>
  16707. <br>
  16708. <a name="HEATRONIC_attributes"><b>Attributes:</b></a>
  16709. <ul>
  16710. <li><B>interval_ch_time, interval_ch_Tflow_measured, interval_dhw_Tmeasured, interval_dhw_Tcylinder</B><br/>
  16711. Intervall (in Sekunden) zum Update der entsprechenden Werte
  16712. </li><br/>
  16713. <li><B>minDiff_ch_Tflow_measured</B><br/>
  16714. Minimaldifferenz (in Grad, z.B. 0.2) zum Update der entsprechenden Werte
  16715. </li><br/>
  16716. </ul>
  16717. <a name="HEATRONIC_readings"><b>Readings:</b></a>
  16718. <ul>
  16719. <li><B>ch_Tflow_desired</B><br/>
  16720. ben&ouml;tigte Vorlauf-Temperatur (im Warmwasser-Modus max. Kesseltemperatur)
  16721. </li><br/>
  16722. <li><B>ch_Tflow_measured</B><br/>
  16723. aktuell gemessene Vorlauf-Temperatur
  16724. </li><br/>
  16725. <li><B>ch_Treturn</B><br/>
  16726. aktuell gemessene R&uuml;cklauf-Temperatur
  16727. </li><br/>
  16728. <li><B>ch_Tmixer</B><br/>
  16729. aktuell gemessene Mischer-Temperatur
  16730. </li><br/>
  16731. <li><B>ch_mode</B><br/>
  16732. aktueller Betriebsmodus (0=aus, 1=Heizen, 2=Warmwasser)
  16733. </li><br/>
  16734. <li><B>ch_code</B><br/>
  16735. aktueller Betriebs-Code oder erweiterter StĂśrungs-Code (siehe Heizungs-Anleitung)
  16736. </li><br/>
  16737. <li><B>ch_code</B><br/>
  16738. StĂśrungs-Code (siehe Heizungs-Anleitung)
  16739. </li><br/>
  16740. <li><B>ch_burner_fan</B><br/>
  16741. Status Brenner-Gebl&auml;se (0=aus, 1=l&auml;uft)
  16742. </li><br/>
  16743. <li><B>ch_burner_operation</B><br/>
  16744. Brenner-Status (0=off, 1=an)
  16745. </li><br/>
  16746. <li><B>ch_pump_heating</B><br/>
  16747. Status der Heizungspumpe(0=aus, 1=l&auml;uft)
  16748. </li><br/>
  16749. <li><B>ch_pump_cylinder</B><br/>
  16750. Status der Speicherladepumpe (0=aus, 1=l&auml;uft)
  16751. </li><br/>
  16752. <li><B>ch_pump_circulation</B><br/>
  16753. Status der Zirkulationspumpe (0=aus, 1=l&auml;uft)
  16754. </li><br/>
  16755. <li><B>ch_burner_power</B><br/>
  16756. Brennerleistung in Prozent
  16757. </li><br/>
  16758. <li><B>ch_pump_heating_power</B><br/>
  16759. Leistung der Heizungspumpe in Prozent
  16760. </li><br/>
  16761. <li><B>ch_Toutside</B><br/>
  16762. Au&szlig;entemperatur
  16763. </li><br/>
  16764. <li><B>ch_runtime_total</B><br/>
  16765. Brennerlaufzeit in Minuten (Heizen und Warmwasser)
  16766. </li><br/>
  16767. <li><B>ch_runtime_ch</B><br/>
  16768. Brennerlaufzeit in Minuten (nur Heizen)
  16769. </li><br/>
  16770. <li><B>ch_runtime_dhw</B><br/>
  16771. Brennerlaufzeit in Minuten (nur Warmwasser)
  16772. </li><br/>
  16773. <li><B>ch_starts_tot</B><br/>
  16774. Anzahl der Brennerstarts (Heizen und Warmwasser)
  16775. </li><br/>
  16776. <li><B>ch_starts_ch</B><br/>
  16777. Anzahl der Brennerstarts (nur Heizen)
  16778. </li><br/>
  16779. <li><B>ch_starts_dhw</B><br/>
  16780. Anzahl der Brennerstarts (nur Warmwasser)
  16781. </li><br/>
  16782. <li><B>ch_time</B><br/>
  16783. Systemzeit der Heizung
  16784. </li><br/>
  16785. <li><B>hc1_Tdesired .. hc4_Tdesired</B><br/>
  16786. ben&ouml;tigte Raumtemperatur Heizkreis 1-4
  16787. </li><br/>
  16788. <li><B>hc1_Tmeasured .. hc4_Tmeasured</B><br/>
  16789. aktuell gemessene Raumtemperatur Heizkreis 1-4
  16790. </li><br/>
  16791. <li><B>hc1_Tmode .. hc4_Tmode</B><br/>
  16792. Betriebsmodus Heizkreis 1-4
  16793. </li><br/>
  16794. <li><B>dhw_Tdesired</B><br/>
  16795. ben&ouml;tigte Warmwasser-Temperatur
  16796. </li><br/>
  16797. <li><B>dhw_Tmeasured</B><br/>
  16798. aktuell gemessene Warmwasser-Temperatur
  16799. </li><br/>
  16800. <li><B>dhw_Tcylinder</B><br/>
  16801. aktuell gemessene Warmwasser-Temperatur Speicher oben
  16802. </li><br/>
  16803. <li><B>sol_Tcollector</B><br/>
  16804. Temperatur Kollektorgruppe 1
  16805. </li><br/>
  16806. <li><B>sol_Tcylinder_bottom</B><br/>
  16807. Temperatur Solarspeicher unten
  16808. </li><br/>
  16809. <li><B>sol_yield_last_hour</B><br/>
  16810. Kollektorertrag der letzten Stunde
  16811. </li><br/>
  16812. <li><B>sol_yield_2</B><br/>
  16813. Der Wert ist noch nicht bekannt. Der Name kann sich noch &auml;ndern.
  16814. </li><br/>
  16815. <li><B>sol_pump</B><br/>
  16816. Status der Solarpumpe (0=off, 1=l&auml;uft)
  16817. </li><br/>
  16818. <li><B>sol_runtime</B><br/>
  16819. Laufzeit der Solarpumpe in Minuten
  16820. </li><br/>
  16821. </ul>
  16822. </ul>
  16823. <p><a name="HEOSGroup"></a>
  16824. <h3>HEOSGroup</h3>
  16825. <div class='langLinks'>[<a href='commandref.html#HEOSGroup'>EN</a> DE]</div>
  16826. <ul>
  16827. <u><b>HEOSGroup</b></u>
  16828. <br><br>
  16829. In Kombination mit HEOSMaster and HEOSPlayer steuert dieses FHEM Modul das Denon Multiroom-Soundsystem mit Hilfe einer telnet Socket-Verbindung und dem HEOS Command Line Interface (CLI).
  16830. <br><br>
  16831. Nachdem der Master einmal angelegt ist werden die Player und Gruppierungen des Systems automatisch erkannt und in FHEM angelegt. Von da an k&oumlnnen die Player und Gruppierungen gesteuert werden und Ver&aumlnderungen in der HEOS App oder am Reveiver werden mit dem Status und den Media Readings der Player und Gruppierungen synchronisiert.
  16832. <br>
  16833. <br>
  16834. Gruppierungen k&oumlnnen aus einem Player heraus mit "groupWithMember" erzeugt werden.
  16835. <br><br>
  16836. Beispiel:
  16837. <ul><br>
  16838. <code>set Wohnzimmer groupWithMember K&uumlche</code><br>
  16839. </ul>
  16840. <br>
  16841. ... erzeugt eine Gruppierung namens "Wohnzimmer+K&uumlche" mit dem Player "Wohnzimmer" als Leader und dem Player "K&uumlche" als Mitglied.
  16842. <a name="HEOSGroupreadings"></a>
  16843. <br><br>
  16844. <b>Readings</b>
  16845. <ul>
  16846. <li>channel - Nr des gerade abgespielten Favoriten</li>
  16847. <li>currentAlbum - Name des gerade abgespielten Albums</li>
  16848. <li>currentArtist - Name des gerade abgespielten K&uumlnstlers</li>
  16849. <li>currentImageUrl - URL des Albumcovers, Senderlogos, etc.</li>
  16850. <li>currentMedia - Medientyp des gerade abgespielten Streams (song|station|genre|artist|album|container)</li>
  16851. <li>currentMid - media ID</li>
  16852. <li>currentQid - queue ID</li>
  16853. <li>currentSid - source ID</li>
  16854. <li>currentStation - Name des gerade abgespielten Senders</li>
  16855. <li>currentTitle - Name des gerade abgespielten Titels</li>
  16856. <li>error - letzte Fehlermeldung</li>
  16857. <li>gid - Gruppen-ID</li>
  16858. <li>leader - Leader der Gruppierung</li>
  16859. <li>member - Mitglied(er) der Gruppierung</li>
  16860. <li>mute - Player mute Status (on|off)</li>
  16861. <li>name - Name der Gruppierung</li>
  16862. <li>playStatus - Status des Players (play|pause|stop)</li>
  16863. <li>repeat - Player Repeat Status (on_all|on_one|off) </li>
  16864. <li>shuffle - Player Shuffle Status (on|off)</li>
  16865. <li>state - Status der Player-Verbindung (on|off)</li>
  16866. <li>volume - aktuelle Lautst&aumlrke (0-100)</li>
  16867. <li>volumeDown - Schrittweite Lautst&aumlrke (1-10, default 5)</li>
  16868. <li>volumeUp - Schrittweite Lautst&aumlrke (1-10, default 5)</li>
  16869. </ul>
  16870. <br><br>
  16871. <a name="HEOSGroupset"></a>
  16872. <b>set</b>
  16873. <ul>
  16874. <li>channel &ltnr&gt - spielt den vorher mit der App erstellten Favoriten &ltnr&gt ab</li>
  16875. <li>channelUp - schaltet auf den n&aumlchsten Favoriten in der Favoritenliste um</li>
  16876. <li>channelDown- schaltet auf vorherigen Favoriten in der Favoritenliste um</li>
  16877. <li>clearGroup - Aufl&oumlsen der Gruppierung (setzt state auf off)</li>
  16878. <li>getGroupInfo - holt die Media-Informationen der Gruppierung</li>
  16879. <li>mute on|off - setze den mute Status on|off</li>
  16880. <li>next - spielt n&aumlchsten Titel in Warteschlange</li>
  16881. <li>pause - setzt den Status des Players auf "pause"</li>
  16882. <li>play - setzt den Status des Players auf "play"</li>
  16883. <li>playPlaylist &ltmyList&gt - spielt die Playlist &ltmyList&gt ab</li>
  16884. <li>prev - spielt vorherigen Titel in Warteschlange</li>
  16885. <li>repeat - setzt den Player Repeat Status (on_all|on_one|off) </li>
  16886. <li>shuffle - setzt den Player Shuffle Status auf on|off</li>
  16887. <li>stop - setzt den Status des Players auf "stop"</li>
  16888. <li>volume - setzt die Lautst&aumlrke auf 0..100</li>
  16889. <li>volumeDown - verringert die Lautst&aumlrke um &ltvolumeDown&gt</li>
  16890. <li>volumeUp - erh&oumlht die Lautst&aumlrke um &ltvolumeUp&gt</li>
  16891. </ul>
  16892. <br><br>
  16893. <a name="HEOSGroupstate"></a>
  16894. <b>state</b>
  16895. <ul>
  16896. <li>Status der Gruppierung (on|off)</li>
  16897. </ul>
  16898. </ul>
  16899. <p><a name="HEOSMaster"></a>
  16900. <h3>HEOSMaster</h3>
  16901. <div class='langLinks'>[<a href='commandref.html#HEOSMaster'>EN</a> DE]</div>
  16902. <ul>
  16903. <u><b>HEOSMaster</b></u>
  16904. <br><br>
  16905. In Kombination mit HEOSPlayer und HEOSGroup steuert dieses FHEM Modul das Denon Multiroom-Soundsystem mit Hilfe einer telnet Socket-Verbindung und dem HEOS Command Line Interface (CLI).
  16906. <br><br>
  16907. <b>Voraussetzung</b>
  16908. <ul>
  16909. <li>Installation der folgenden Pakete: apt-get install libjson-perl libnet-telnet-perl libencode-perl
  16910. </li>
  16911. </ul>
  16912. <br>
  16913. <a name="HEOSMasterdefine"></a>
  16914. <b>Define</b>
  16915. <ul><br>
  16916. <code>define &lt;name&gt; HEOSMaster &lt;IP address&gt;</code>
  16917. <br><br>
  16918. Example:
  16919. <ul><br>
  16920. <code>define MyMasterBox HEOSMaster 192.168.178.67</code><br>
  16921. </ul>
  16922. <br>
  16923. &ltIP address&GT ist die IP-Adresse des HEOS Receivers oder der HEOS Box. Das Master Device wird im Raum HEOS angelegt und danach erfolgt das Einlesen und automatische Anlegen der Player.
  16924. Von nun an k&oumlnnen die Player gesteuert werden. Au&szligerdem wird der Status und die Media Readings der Player entsprechend ge&aumlndert, wenn man in der HEOS-App oder direkt am Receiver etwas &aumlndert.
  16925. <a name="HEOSMasterreadings"></a>
  16926. <br><br>
  16927. <b>Readings</b>
  16928. <ul>
  16929. <li>enableChangeEvents - Status der Event Wiedergabe auf dem CLI Master</li>
  16930. <li>heosAccount - signed_out | signed_in as &ltHEOSAccount&gt</li>
  16931. <li>lastCommand - zuletzt ausgef&uumlhrtes Kommando</li>
  16932. <li>lastPlayerId - Player-Id des Ger&aumlts, welches das Kommando ausgef&uumlhrt hat</li>
  16933. <li>lastPlayerName - Player-Name des Ger&aumlts, welches das Kommando ausgef&uumlhrt hat</li>
  16934. <li>lastResult - Ergebnis des zuletzt ausgef&uumlhrten Kommandos</li>
  16935. <li>state - Status des HEOSMaster</li>
  16936. </ul>
  16937. <br><br>
  16938. <a name="HEOSMasterset"></a>
  16939. <b>set</b>
  16940. <ul>
  16941. <li>checkAccount - pr&uumlft das HEOS Konto</li>
  16942. <li>enableChangeEvents - aktiviert die Event Wiedergabe auf dem CLI Master</li>
  16943. <li>getGroups - holt eine Liste aller Gruppen und legt die Devices an, sofern noch nicht geschehen</li>
  16944. <li>getPlayers - holt eine Liste aller Player und legt die Devices an, sofern noch nicht vorhanden</li>
  16945. <li>password - setzt das Passwort des HEOS Kontos</li>
  16946. <li>reboot - rebootet das CLI Interface am Master</li>
  16947. <li>reopen - versucht eine neue Socket-Verbindung zum CLI Master aufzubauen</li>
  16948. <li>signAccount In|Out - anmelden|abmelden am HEOS Konto (attr MyMasterBox heosUsername &ltusername&gt)</li>
  16949. </ul>
  16950. <br><br>
  16951. <a name="HEOSMasterget"></a>
  16952. <b>get</b>
  16953. <ul>
  16954. <li>ShowAccount - zeigt das HEOS Konto an</li>
  16955. </ul>
  16956. <br><br>
  16957. <a name="HEOSMasterstate"></a>
  16958. <b>state</b>
  16959. <ul>
  16960. <li>connected - der HEOSmaster ist mit dem CLI Master verbunden</li>
  16961. <li>not connected - der HEOSmaster ist nicht mit dem CLI Master verbunden</li>
  16962. </ul>
  16963. <br><br>
  16964. <a name="HEOSMasterattributes"></a>
  16965. <b>Attributes</b>
  16966. <ul>
  16967. <li>heosUsername - Benutzername des HEOS Kontos</li>
  16968. </ul>
  16969. <br><br>
  16970. </ul>
  16971. </ul>
  16972. <p><a name="HEOSPlayer"></a>
  16973. <h3>HEOSPlayer</h3>
  16974. <div class='langLinks'>[<a href='commandref.html#HEOSPlayer'>EN</a> DE]</div>
  16975. <ul>
  16976. <u><b>HEOSPlayer</b></u>
  16977. <br><br>
  16978. In Kombination mit HEOSMaster and HEOSGroup steuert dieses FHEM Modul das Denon Multiroom-Soundsystem mit Hilfe einer telnet Socket-Verbindung und dem HEOS Command Line Interface (CLI).
  16979. <br><br>
  16980. Nachdem der Master einmal angelegt ist werden die Player und Gruppierungen des Systems automatisch erkannt und in FHEM angelegt. Von da an k&oumlnnen die Player und Gruppierungen gesteuert werden und Ver&aumlnderungen in der HEOS App oder am Reveiver werden mit dem Status und den Media Readings der Player und Gruppierungen synchronisiert.
  16981. <a name="HEOSPlayerreadings"></a>
  16982. <br><br>
  16983. <b>Readings</b>
  16984. <ul>
  16985. <li>channel - Nr des gerade abgespielten Favoriten</li>
  16986. <li>currentAlbum - Name des gerade abgespielten Albums</li>
  16987. <li>currentArtist - Name des gerade abgespielten K&uumlnstlers</li>
  16988. <li>currentImageUrl - URL des Albumcovers, Senderlogos, etc.</li>
  16989. <li>currentMedia - Medientyp des gerade abgespielten Streams (song|station|genre|artist|album|container)</li>
  16990. <li>currentMid - media ID</li>
  16991. <li>currentQid - queue ID</li>
  16992. <li>currentSid - source ID</li>
  16993. <li>currentStation - Name des gerade abgespielten Senders</li>
  16994. <li>currentTitle - Name des gerade abgespielten Titels</li>
  16995. <li>error - letzte Fehlermeldung</li>
  16996. <li>gid - ID der Gruppe, in der der Player Mitglied ist</li>
  16997. <li>ip-address - IP-Adresse des Players</li>
  16998. <li>lineout - lineout level type (variable|Fixed)</li>
  16999. <li>model - Modell des HEOS Lautsprechers (z.B. HEOS 1)</li>
  17000. <li>mute - Player mute Status (on|off)</li>
  17001. <li>name - Name des Players (aus der App &uumlbernommen)</li>
  17002. <li>network - Netzwerkverbindung (wired|wifi)</li>
  17003. <li>playStatus - Status des Players (play|pause|stop)</li>
  17004. <li>repeat - Player Repeat Status (on_all|on_one|off) </li>
  17005. <li>shuffle - Player Shuffle Status (on|off)</li>
  17006. <li>state - Status der Player-Verbindung (on|off)</li>
  17007. <li>version - Softwareversion des HEOS Lautsprechers</li>
  17008. <li>volume - aktuelle Lautst&aumlrke (0-100)</li>
  17009. <li>volumeDown - Schrittweite Lautst&aumlrke (1-10, default 5)</li>
  17010. <li>volumeUp - Schrittweite Lautst&aumlrke (1-10, default 5)</li>
  17011. </ul>
  17012. <br><br>
  17013. <a name="HEOSPlayerset"></a>
  17014. <b>set</b>
  17015. <ul>
  17016. <li>aux - aktiviert die Quelle am AUX-Eingang des Players</li>
  17017. <li>channel &ltnr&gt - spielt den vorher mit der App erstellten Favoriten &ltnr&gt ab</li>
  17018. <li>channelUp - schaltet auf den n&aumlchsten Favoriten in der Favoritenliste um</li>
  17019. <li>channelDown- schaltet auf vorherigen Favoriten in der Favoritenliste um</li>
  17020. <li>clear queue - l&oumlscht die Warteschlange</li>
  17021. <li>deletePlaylist &ltmyList&gt - l&oumlscht die Playlist &ltmyList&gt </li>
  17022. <li>set &lthp1&gt groupWithMember &lthp2&gt - erzeugt eine Gruppierung mit hp1 als Leader und hp2 als Mitglied</li>
  17023. <li>input sid[,cid][,mid] - setze input source-id[,container-id][,media-id] </li>
  17024. <ul>
  17025. <code>Beispiel: set K&uumlche input 1027,1772574848,inputs/tvaudio<br>
  17026. startet "TV-Audio" auf dem Player "K&uumlche"</code>
  17027. </ul>
  17028. <li>mute on|off - setzt den mute Status on|off</li>
  17029. <li>next - spielt n&aumlchsten Titel in Warteschlange</li>
  17030. <li>pause - setzt den Status des Players auf "pause"</li>
  17031. <li>play - setzt den Status des Players auf "play"</li>
  17032. <li>playPlaylist &ltmyList&gt - spielt die Playlist &ltmyList&gt ab</li>
  17033. <li>playQueueItem &ltnr&gt - spielt Titel &ltnr&gt in Warteschlange</li>
  17034. <li>prev - spielt vorherigen Titel in Warteschlange</li>
  17035. <li>repeat - setzt den Player Repeat Status (on_all|on_one|off) </li>
  17036. <li>saveQueue &ltmyList&gt - speichert die Warteschlange als Playlist &ltmyList&gt</li>
  17037. <li>shuffle - setzt den Player Shuffle Status auf on|off</li>
  17038. <li>stop - setzt den Status des Players auf "stop"</li>
  17039. <li>volume - setzt die Lautst&aumlrke auf 0..100</li>
  17040. <li>volumeDown - verringert die Lautst&aumlrke um &ltvolumeDown&gt</li>
  17041. <li>volumeUp - erh&oumlht die Lautst&aumlrke um &ltvolumeUp&gt</li>
  17042. </ul>
  17043. <br><br>
  17044. <a name="HEOSPlayerget"></a>
  17045. <b>get</b>
  17046. <ul>
  17047. <li>ls - listet Musikquellen (Eing&aumlnge, Playlists, Favoriten, Musik-Dienste, ...)</li>
  17048. <li>channelscount - Anzahl der Favoriten</li>
  17049. </ul>
  17050. <br><br>
  17051. <a name="HEOSPlayerstate"></a>
  17052. <b>state</b>
  17053. <ul>
  17054. <li>Status der Player-Verbindung (on|off)</li>
  17055. </ul>
  17056. <br><br>
  17057. <a name="HEOSPlayerattributes"></a>
  17058. <b>attributes</b>
  17059. <ul>
  17060. <li>channelring - Beim Erreichen des letzten Favoriten schaltet ChannelUp/Down im Kreis, also wieder auf den ersten/letzten Favoriten</li>
  17061. <li>mute2play - Beim Bet&aumltigen der Mute-Taste am Lautsprecher wird auch der Stream angehalten</li>
  17062. </ul>
  17063. </ul>
  17064. <p><a name="HMCCU"></a>
  17065. <h3>HMCCU</h3>
  17066. <ul>
  17067. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  17068. hier: <a href='commandref.html#HMCCU'>HMCCU</a><br/>
  17069. </ul>
  17070. <a name="HMCCUCHN"></a>
  17071. <h3>HMCCUCHN</h3>
  17072. <ul>
  17073. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  17074. hier: <a href='commandref.html#HMCCUCHN'>HMCCUCHN</a><br/>
  17075. </ul>
  17076. <a name="HMCCUDEV"></a>
  17077. <h3>HMCCUDEV</h3>
  17078. <ul>
  17079. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  17080. hier: <a href='commandref.html#HMCCUDEV'>HMCCUDEV</a><br/>
  17081. </ul>
  17082. <a name="HMCCURPC"></a>
  17083. <h3>HMCCURPC</h3>
  17084. <ul>
  17085. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  17086. hier: <a href='commandref.html#HMCCURPC'>HMCCURPC</a><br/>
  17087. </ul>
  17088. <a name="HMCCURPCPROC"></a>
  17089. <h3>HMCCURPCPROC</h3>
  17090. <ul>
  17091. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  17092. hier: <a href='commandref.html#HMCCURPCPROC'>HMCCURPCPROC</a><br/>
  17093. </ul>
  17094. <a name="HMLAN"></a>
  17095. <h3>HMLAN</h3>
  17096. <div class='langLinks'>[<a href='commandref.html#HMLAN'>EN</a> DE]</div>
  17097. <ul>
  17098. Das HMLAN ist das fhem-Modul f&uuml;r den eQ-3 HomeMatic LAN Configurator welcher als IO
  17099. in FHEM fungiert. Siehe <a href="http://www.fhemwiki.de/wiki/HM-CFG-LAN_LAN_Konfigurations-Adapter">HM-CFG-LAN_LAN_Konfigurations-Adapter</a> zur Konfiguration.<br>
  17100. Eine weitere Beschreibung, wie der HomeMatic USB Konfigurations-Adapter
  17101. <a href="https://git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb">(HM-CFG-USB)</a>
  17102. verwendet werden kann, ist unter dem angegebenen Link zu finden.<br/>
  17103. <br>
  17104. Dieses Ger&auml;t kann gleichzeitig mit einer CCU und (nur lesend) mit FHEM verwendet werden.
  17105. Hierf&uuml;r ist wie folgt vorzugehen:
  17106. <ul>
  17107. <li>Starten des fhem/contrib/tcptee.pl Programms</li>
  17108. <li>Umleiten der CCU zum local host</li>
  17109. <li>Ausschalten der LAN-Encryption auf der CCU f&uuml;r den LAN-Configurator</li>
  17110. <li>Setzen des dummy Attributes f&uuml;r das HMLAN Ger&auml;t in FHEM</li>
  17111. </ul>
  17112. <br><br>
  17113. <a name="HMLANdefine"><b>Define</b></a>
  17114. <ul>
  17115. <code>define &lt;name&gt; HMLAN &lt;ip-address&gt;[:port]</code><br>
  17116. <br>
  17117. Der Standard-Port lautet: 1000.<br/>
  17118. Wenn keine IP-Adresse angegeben wird, wird auch kein Ger&auml;t ge&ouml;ffnet; man kann
  17119. also auch ohne angeschlossene Hardware experimentieren.
  17120. </ul>
  17121. <br><br>
  17122. <a name="HMLANset"><b>Set</b></a>
  17123. <ul>
  17124. <li><a href="#hmPairForSec">hmPairForSec</a></li>
  17125. <li><a href="#hmPairSerial">hmPairSerial</a></li>
  17126. <li><a href="#hmreopen">reopen</a>
  17127. Connection zum IO device neu starten</li>
  17128. <li><a href="#hmrestart">restart</a>
  17129. Neustart des IOdevice
  17130. </li>
  17131. <li><a href="#HMLANset_reassignIDs">reassignIDs</a>
  17132. Synchronisiert die im HMLAN eingetragenen IDs mit der von FHEM verwalteten Liste.
  17133. I.a. findet dies automatisch statt, koennte aber in reset Fällen abweichen.
  17134. </li>
  17135. </ul>
  17136. <br><br>
  17137. <a name="HMLANget"><b>Get</b></a>
  17138. <ul>
  17139. <li><a href="#HMLANgetassignIDs">assignIDs</a>
  17140. Gibt eine Liste aller diesem IO zugewiesenen IOs aus.
  17141. </li>
  17142. </ul>
  17143. <br><br>
  17144. <a name="HMLANattr"><b>Attributes</b></a>
  17145. <ul>
  17146. <li><a href="#do_not_notify">do_not_notify</a></li><br>
  17147. <li><a href="#attrdummy">dummy</a></li><br>
  17148. <li><a href="#addvaltrigger">addvaltrigger</a></li><br>
  17149. <li><a href="#HMLANlogIDs">logIDs</a><br>
  17150. Schaltet selektives Aufzeichnen der HMLAN Meldungen ein. Eine Liste der
  17151. HMIds oder Namen, die aufgezeichnet werden sollen, k&ouml;nnen - getrennt durch
  17152. Kommata - eingegeben werden.<br>
  17153. Die Attribute erlauben ausschlie�lich die Angabe von Device-IDs und keine Kanal-IDs.
  17154. Die Kanal-IDs werden automatisch in Device-IDs umgewandelt.<br>
  17155. <b>all</b> zeichnet die Original-Meldungen f&uuml;r alle HMIds auf.<br>
  17156. <b>sys</b> zeichnet alle systemrelevanten Meldungen wie keep-alive auf.<br>
  17157. <b>all,sys</b> damit wird die Aufzeichnung aller Meldungen eingeschaltet<br>
  17158. </li>
  17159. <li><a name="HMLANloadLevel">loadLevel</a><br>
  17160. loadlevel mapped den Auslastungslevel auf die Namen in ein Reading. <br>
  17161. 0:low,30:mid,40:batchLevel,90:high,99:suspended<br>
  17162. Der batchLevel Wert wird auf 40 gesetzt., sollte er fehlen.
  17163. Das ist der Levelbei dem die Hintergrundnachrichten z.B. durch autoReadReg gestoppt werden<br>
  17164. </li><br>
  17165. <li><a href="#hmId">hmId</a></li><br>
  17166. <li><a name="HMLANhmKey">hmKey</a></li><br>
  17167. <li><a name="HMLANhmKey2">hmKey2</a></li><br>
  17168. <li><a name="HMLANhmKey3">hmKey3</a></li><br>
  17169. <li><a name="HMLANhmKey4">hmKey4</a></li><br>
  17170. <li><a name="HMLANhmKey5">hmKey5</a><br>
  17171. AES Schl&uuml;ssel f&uuml;r den HMLAN Adapter. <br>
  17172. Der Schl&uuml;ssel wird in eine hash-Zeichenfolge umgewandelt. Wenn eine Hash-Folge unmittelbar
  17173. eingegeben wird, erfolgt keine Umwandlung, sondern eine eine direkte Benutzung der Hash-Folge.
  17174. Deshalb kann der Originalschl&uuml;ssel auch nicht entschl&uuml;sselt werden.<br>
  17175. </li>
  17176. <li><a href="#hmProtocolEvents">hmProtocolEvents</a></li><br>
  17177. <li><a name="HMLANrespTime">respTime</a><br>
  17178. Definiert die maximale Antwortzeit des HMLAN-Adapters in Sekunden. Standardwert ist 1 Sekunde.<br/>
  17179. L&auml;ngere Zeiten k&ouml;nnen &uuml;bergangsweise in langsamen und instabilen Systemen oder in
  17180. LAN-Konfigurationen verwendet werden.</li>
  17181. <li><a name="HMLAN#wdTimer">wdTimer</a><br>
  17182. Zeit in Sekunden, um den HMLAN zu triggern. Werte zwischen 5 und 25 sind zul&auml;ssig.
  17183. Standardwert ist 25 Sekunden.<br>
  17184. Es wird <B>davon abgeraten</B> diesen Timer zu ver&auml;ndern. Wenn Probleme mit
  17185. HMLAN-Abbr&uuml;chen bestehen wird empfohlen die Ursache des Problems zu finden
  17186. und zu beheben und nicht die Symptom.</li>
  17187. <li><a name="HMLANhmLanQlen">hmLanQlen</a><br>
  17188. Definiert die L&auml;nge der Warteschlange des HMLAN Interfaces. Es ist deshalb die Anzahl
  17189. der gleichzeitig zu sendenden Meldungen. Erh&ouml;hung des Wertes kann eine Steigerung der
  17190. &Uuml;bertragungsgeschwindigkeit verursachen, ebenso k&ouml;nnen wiederholte Aussendungen
  17191. Datenverlust bewirken.<br>
  17192. Die Auswirkungen werden durch die Ereignisse im Protokoll sichtbar.<br>
  17193. 1 - ist ein Wert auf der sicheren Seite und deshalb der Standardwert<br>
  17194. 5 - ist eine kritische L&auml;nge und verursacht wahrscheinlich Meldungsverluste</li>
  17195. </ul>
  17196. <a name="HMLANparameter"><b>parameter</b></a>
  17197. <ul>
  17198. <li><B>assignedIDsCnt</B><br>
  17199. Anzahl der IDs, die von FHEM einem HMLAN zugeordnet sind.
  17200. Sollte die Anzahl von der im HMLAN abweichen wird dies als 'reported' gemeldet.<br>
  17201. Wird eine Abweichung festgestellt kann man mit dem Kommando assignIDs das HMLAN synchronisieren.
  17202. </li>
  17203. <li><B>msgKeepAlive</B><br>
  17204. G&uuml;te der keep-alive Meldungen. <br>
  17205. <B>dlyMax</B>: maximale Verz&ouml;gerungsdauer zwischen dem geplanten Meldungszeitpunkt
  17206. und der tats&auml;chlich gesendeten Meldung.<br>
  17207. <B>bufferMin</B>: minimal verf&uuml;gbarer Speicher bevor HMLAN voraussichtlich
  17208. unterbrochen wird bedingt durch die fehlende keepAlive Meldung. bufferMin
  17209. wird auf 30 Sekunden zur&uuml;ckgesetzt wenn das Attribut wdTimer ver&auml;ndert wird.<br>
  17210. Wenn dlyMax hoch ist (mehrere Sekunden) oder bufferMin geht gegen "0" (normal ist 4)
  17211. leidet das System unter den internen Verz&ouml;gerungen. Den Gr&uuml;nden hierf&uuml;r muss
  17212. nachgegangen werdensystem. Als schnelle L&ouml;sung kann der Wert f&uuml;r wdTimer
  17213. verkleinert werden, um HMLAN schneller zu triggern.</li>
  17214. <li><B>msgLoadCurrent</B><br>
  17215. Aktuelle Funklast des HMLAN. Da HMLAN nur eine begrenzte Kapzit&auml;t je Stunde hat
  17216. Telegramme abzusetzen stellt es bei 100% das Senden ein. Siehe auch
  17217. <a href="#loadLevel">loadLevel</a><br></li>
  17218. <li><B>msgLoadHistoryAbs</B><br>
  17219. IO Funkbelastung vergangener Zeitabschnitte.</li>
  17220. <li><B>msgParseDly</B><br>
  17221. Kalkuliert die Verz&ouml;gerungen einer Meldung vom Zeitpunkt des Abschickens im HMLAN
  17222. bis zu Verarbeitung in FHEM. Deshalb ist dies ein Indikator f&uuml;r die Leistungsf&auml;higkeit
  17223. des Systems von FHEM.
  17224. </li>
  17225. </ul>
  17226. <a name="HMLANreadings"><b>Parameter und Readings</b></a>
  17227. <ul>
  17228. <li><B>prot_disconnect</B> <br>letzter HMLAN disconnect</li>
  17229. <li><B>prot_init</B> <br>letzter HMLAN init</li>
  17230. <li><B>prot_keepAlive</B> <br>HMLAN unterbrochen, wahrscheinlich um langsame
  17231. keep-alive Meldungen zu senden.</li>
  17232. <li><B>prot_ok</B> <br>letzte HMLAN ok Bedingung</li>
  17233. <li><B>prot_timeout</B> <br>letzter HMLAN Timeout</li>
  17234. <li><B>prot_Warning-HighLoad</B> <br>hohe Auslastung erreicht -
  17235. HMLAN hat nur noch 10% seiner Leistungsf&auml;higkeit &uuml;brig</li>
  17236. <li><B>prot_ERROR-Overload</B> <br>&Uuml;berlastung -
  17237. HMLAN wird zwar Meldungen empfangen aber keine Meldungen mehr absenden</li>
  17238. <li><B>prot_Overload-released</B><br>&Uuml;berlastung beendet - normale Arbeitsweise ist m&ouml;glich</li>
  17239. </ul>
  17240. </ul>
  17241. <p><a name="HMS"></a>
  17242. <h3>HMS</h3>
  17243. <div class='langLinks'>[<a href='commandref.html#HMS'>EN</a> DE]</div>
  17244. <ul>
  17245. <a name="HMSdefine"></a>
  17246. <b>Define</b>
  17247. <ul>
  17248. <code>define &lt;name&gt; HMS &lt;housecode&gt;</code>
  17249. <br><br>
  17250. Der <code>&lt;housecode&gt;</code> ist eine vierstellige HEX-Zahl,
  17251. entsprechend dem HMS Ger&auml;t.<br>
  17252. Beispiel:
  17253. <ul>
  17254. <code>define temp HMS 1234</code><br>
  17255. </ul>
  17256. Hinweise:<br>
  17257. <ul>
  17258. <li>Derzeit werden folgende Komponenten Unterst&uuml;tzt: HMS100-T
  17259. HMS100-TF HMS100-WD HMS100-MG HMS100-TFK HMS100-CO HMS100-FIT RM100-2
  17260. RM100-3</li>
  17261. <li>Der Hauscode kann sich &auml;ndern wenn die Batterie gewechselt wird.
  17262. Um sich das Leben einfacher zu machen kann man ein "Wildcard"
  17263. (Platzhalter) Device f&uuml;r jeden Typ von HMS Ger&auml;t anlegen.
  17264. Zuerst wird die echte Device-ID gepr&uuml;ft, danach die Wildcard-ID.
  17265. Wildcards sind:
  17266. <ul>
  17267. <li>1000 f&uuml;r das HMS100-TF</li>
  17268. <li>1001 f&uuml;r das HMS100-T</li>
  17269. <li>1002 f&uuml;r das HMS100-WD</li>
  17270. <li>1003 f&uuml;r das RM100-2</li>
  17271. <li>1004 f&uuml;r das HMS100-TFK</li>
  17272. <li>1006 f&uuml;r das HMS100-MG</li>
  17273. <li>1008 f&uuml;r das HMS100-CO</li>
  17274. <li>100e f&uuml;r das HMS100-FIT</li>
  17275. </ul>
  17276. </li>
  17277. <li>Einige "Batteriestand niedrig" Benachrichtigungen sind noch nicht
  17278. implemeniert (RM100, HMS100WD).</li>
  17279. <li>Die Installation ist zu testen bevor man sich auf die
  17280. Funktionalit&auml;t verl&auml;sst.</li>
  17281. </ul>
  17282. <br>
  17283. </ul>
  17284. <br>
  17285. <a name="HMSset"></a>
  17286. <b>Set</b> <ul>N/A</ul><br>
  17287. <a name="HMSget"></a>
  17288. <b>Get</b> <ul>N/A</ul><br>
  17289. <a name="HMSattr"></a>
  17290. <b>Attributes</b>
  17291. <ul>
  17292. <li><a href="#ignore">ignore</a></li>
  17293. <li><a href="#do_not_notify">do_not_notify</a></li>
  17294. <li><a href="#showtime">showtime</a></li>
  17295. <li><a href="#IODev">IODev</a></li>
  17296. <li><a href="#eventMap">eventMap</a></li>
  17297. <li><a href="#model">model</a> (hms100-t hms100-tf hms100-wd hms100-mg
  17298. hms100-co hms100-tfk hms100-fit rm100-2)</li>
  17299. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  17300. </ul>
  17301. <br>
  17302. </ul>
  17303. <p><a name="HMUARTLGW"></a>
  17304. <h3>HMUARTLGW</h3>
  17305. <div class='langLinks'>[<a href='commandref.html#HMUARTLGW'>EN</a> DE]</div>
  17306. <ul>
  17307. Das Modul HMUARTLGW erm&ouml;glicht die Anbindung des eQ-3 HomeMatic Wireless
  17308. LAN Gateways (HM-LGW-O-TW-W-EU) und des eQ-3 HomeMatic UART Moduls
  17309. (HM-MOD-UART), welches Teil des HomeMatic-Moduls f&uuml;r den Raspberry Pi
  17310. (HM-MOD-RPI-PCB) ist.<br>
  17311. <br><br>
  17312. <a name="HMUARTLGHW_define"></a>
  17313. <b>Define</b>
  17314. <ul>
  17315. <code>define &lt;name&gt; HMUARTLGW &lt;device&gt;</code><br><br>
  17316. Der Parameter &lt;device&gt; h&auml;ngt vom eingesetzten Ger&auml;tetyp ab:
  17317. <ul>
  17318. <li>HM-MOD-UART: &lt;device&gt; ist die zu benutzende serielle
  17319. Schnittstelle. Die Baudrate ist fest auf 115200 eingestellt und muss
  17320. nicht angegeben werden.<br>
  17321. Falls der HM-MOD-UART &uuml;ber einen Seriell-zu-Ethernet-Konverter
  17322. mit dem Netzwerk verbunden ist, muss die Definition in einem
  17323. an URLs angelehnten Format geschehen
  17324. (<code>uart://ip:port</code>).</li>
  17325. <li>HM-LGW-O-TW-W-EU: &lt;device&gt; gibt die IP-Adresse oder den
  17326. Hostnamen des Gateways an, optional gefolgt von einem Doppelpunkt
  17327. und der Portnummer des BidCos-Ports (Default falls nicht angegeben:
  17328. 2000).</li>
  17329. </ul>
  17330. <br><br>
  17331. Beispiele:<br>
  17332. <ul>
  17333. <li>Lokaler HM-MOD-UART an der Schnittstelle <code>/dev/ttyAMA0</code>:<br>
  17334. <code>define myHmUART HMUARTLGW /dev/ttyAMA0</code><br>&nbsp;</li>
  17335. <li>LAN Gateway mit der IP-Adresse <code>192.168.42.23</code>:<br>
  17336. <code>define myHmLGW HMUARTLGW 192.168.42.23</code><br>&nbsp;</li>
  17337. <li>Entfernter HM-MOD-UART unter Verwendung von <code>socat</code> auf einem Raspberry Pi:<br>
  17338. <code>define myRemoteHmUART HMUARTLGW uart://192.168.42.23:12345</code><br><br>
  17339. Entfernter Raspberry Pi:<br><code>$ socat TCP4-LISTEN:12345,fork,reuseaddr /dev/ttyAMA0,raw,echo=0,b115200</code></li>
  17340. </ul>
  17341. </ul>
  17342. <br>
  17343. <a name="HMUARTLGW_set"></a>
  17344. <p><b>Set</b></p>
  17345. <ul>
  17346. <li>close<br>
  17347. Schlie&szlig;t die Verbindung zum Ger&auml;t.
  17348. </li>
  17349. <li><a href="#hmPairForSec">hmPairForSec</a></li>
  17350. <li><a href="#hmPairSerial">hmPairSerial</a></li>
  17351. <li>open<br>
  17352. &Ouml;ffnet die Verbindung zum Ger&auml;t und initialisiert es.
  17353. </li>
  17354. <li>reopen<br>
  17355. Schli&szlig;t und &ouml;ffnet die Verbindung zum Ger&auml;t und re-initialisiert es.
  17356. </li>
  17357. <li>restart<br>
  17358. Rebootet das Ger&auml;t.
  17359. </li>
  17360. <li>updateCoPro &lt;/path/to/firmware.eq3&gt;<br>
  17361. Aktualisierung der Koprozessor-Firmware (Reading D-firmware) mit der
  17362. angegebenen Datei. Quelle f&uuml;r Firmware-Images (Version 1.4.1,
  17363. offizielles eQ-3 Repository):<br>
  17364. <ul>
  17365. <li>HM-MOD-UART: <a href="https://raw.githubusercontent.com/eq-3/occu/28045df83480122f90ab92f7c6e625f9bf3b61aa/firmware/HM-MOD-UART/coprocessor_update.eq3">coprocessor_update.eq3</a> (Version 1.4.1)</li>
  17366. <li>HM-LGW-O-TW-W-EU: <a href="https://raw.githubusercontent.com/eq-3/occu/28045df83480122f90ab92f7c6e625f9bf3b61aa/firmware/coprocessor_update_hm_only.eq3">coprocessor_update_hm_only.eq3</a> (Version 1.4.1)<br>
  17367. Bitte zus&auml;tzlich sicherstellen, dass die Version der
  17368. D-LANfirmware mindestens 1.1.5 betr&auml;gt. Um auf diese Version
  17369. zu aktualisieren k&ouml;nnen die eQ-3 CLI Tools (siehe Wiki) oder
  17370. der eQ-3 Netfinder genutzt werden. Das passende Image ist:
  17371. <a href="https://github.com/eq-3/occu/raw/28045df83480122f90ab92f7c6e625f9bf3b61aa/firmware/hm-lgw-o-tw-w-eu_update.eq3">hm-lgw-o-tw-w-eu_update.eq3</a><br>
  17372. <b>Die Datei hm-lgw-o-tw-w-eu_update.eq3 nicht mit updateCoPro flashen!</b></li>
  17373. </ul>
  17374. </li>
  17375. </ul>
  17376. <br>
  17377. <a name="HMUARTLGW_get"></a>
  17378. <p><b>Get</b></p>
  17379. <ul>
  17380. <li>assignIDs<br>
  17381. Gibt die aktuell diesem IO-Ger&auml;t zugeordneten HomeMatic-Ger&auml;te
  17382. zur&uuml;ck.
  17383. </li>
  17384. </ul>
  17385. <br>
  17386. <a name="HMUARTLGW_attr"></a>
  17387. <b>Attribute</b>
  17388. <ul>
  17389. <li>csmaCa<br>
  17390. Aktiviert oder deaktiviert CSMA/CA (Carrier sense multiple access with
  17391. collision avoidance), auch bekannt als Listen-Before-Talk.<br>
  17392. Default: 0 (deaktiviert)
  17393. </li>
  17394. <li>dummy<br>
  17395. Erm&ouml;glicht die Definition des Ger&auml;ts ohne jegliche Interaktion
  17396. mit einem physikalischen Ger&auml;t.<br>
  17397. Default: nicht gesetzt
  17398. </li>
  17399. <li>dutyCycle<br>
  17400. Aktiviert oder deaktiviert die &Uuml;berpr&uuml;fung des Arbeitszyklus
  17401. (1%-Regel) durch das Sendemodul.<br>
  17402. Die Abschaltung dieser Funktion kann in verschiedenen L&auml;ndern gegen
  17403. das Gesetz verstossen, weshalb zuerst die Situation anhand lokaler
  17404. Richtlinien zu pr&uuml;fen ist!<br>
  17405. Default: 1 (aktiviert)
  17406. </li>
  17407. <li><a href="#hmId">hmId</a></li>
  17408. <li><a name="HMLANhmKey">hmKey</a></li>
  17409. <li><a name="HMLANhmKey2">hmKey2</a></li>
  17410. <li><a name="HMLANhmKey3">hmKey3</a></li>
  17411. <li>lgwPw<br>
  17412. AES-Passwort f&uuml;r das eQ-3 HomeMatic Wireless LAN Gateway. Das initiale
  17413. Passwort befindet sich auf der R&uuml;ckseite des Ger&auml;ts, kann aber
  17414. durch den Benutzer ge&auml;ndert werden. Falls die AES gesicherte
  17415. Kommunikation aktiviert ist (Auslieferungszustand), muss dieses Attribut
  17416. auf den richtigen Wert gesetzt werden, da ansonsten keine Kommunikation
  17417. m&ouml;glich ist. Zus&auml;tzlich muss das Perl-Modul Crypt::Rijndael
  17418. (stellt den AES-Algorithmus bereit) installiert sein.
  17419. </li>
  17420. <li>loadEvents<br>
  17421. Aktiviert die Erzeugung von Log-Nachrichten &uuml;ber die Funklast
  17422. des Interfaces (in Prozent der erlaubten Sendezeit).
  17423. Default: 0 (deaktiviert)
  17424. </li>
  17425. <li>logIDs<br>
  17426. Aktiviert die gezielte Erzeugung von Log-Nachrichten. Der Parameter ist
  17427. eine durch Komma getrennte Liste an HMIds oder HM Ger&auml;te-/Kanalnamen,
  17428. deren Nachrichten aufgezeichnet werden sollen.<br>
  17429. <ul>
  17430. <li><i>all</i>: Zeichnet die Rohnachrichten aller HMIds auf</li>
  17431. <li><i>sys</i>: Zeichnet Systemnachrichten (z.B. Keep-Alive) auf</li>
  17432. </ul>
  17433. Um alle m&ouml;glichen Nachrichten aufzuzeichnen, kann <i>all,sys</i>
  17434. genutzt werden.
  17435. </li>
  17436. <li>qLen<br>
  17437. Maximale Anzahl an Kommandos in der internen Warteschlange des
  17438. HMUARTLGW-Moduls. Neue Kommandos werden verworfen, wenn die Warteschlange
  17439. gef&uuml;llt ist. Jedes Kommando hat eine Lebensdauer von 3s, sobald es
  17440. aktiv verarbeitet wird. Die Verz&ouml;gerung eines Kommandos betr&auml;gt
  17441. im schlechtesten Fall also qLen * 3s (3 Minuten mit den Defaulteinstellungen).<br>
  17442. Default: 60
  17443. </li>
  17444. </ul>
  17445. <br>
  17446. </ul>
  17447. <p><a name="HMinfo"></a>
  17448. <h3>HMinfo</h3>
  17449. <div class='langLinks'>[<a href='commandref.html#HMinfo'>EN</a> DE]</div>
  17450. <ul>
  17451. Das Modul HMinfo erm&ouml;glicht einen &Uuml;berblick &uuml;ber eQ-3 HomeMatic Ger&auml;te, die mittels <a href="#CUL_HM">CUL_HM</a> definiert sind.<br><br>
  17452. <B>Status Informationen und Z&auml;hler</B><br>
  17453. HMinfo gibt einen &Uuml;berlick &uuml;ber CUL_HM Installationen einschliesslich aktueller Zust&auml;nde.
  17454. Readings und Z&auml;hler werden aus Performance Gr&uuml;nden nicht automatisch aktualisiert. <br>
  17455. Mit dem Kommando <a href="#HMinfoupdate">update</a> k&ouml;nnen die Werte aktualisiert werden.
  17456. <ul><code><br>
  17457. set hm update<br>
  17458. </code></ul><br>
  17459. Die Webansicht von HMinfo stellt Details &uuml;ber CUL_HM Instanzen mit ungew&ouml;hnlichen Zust&auml;nden zur Verf&uuml;gung. Dazu geh&ouml;ren:
  17460. <ul>
  17461. <li>Action Detector Status</li>
  17462. <li>CUL_HM Ger&auml;te und Zust&auml;nde</li>
  17463. <li>Ereignisse im Zusammenhang mit Kommunikationsproblemen</li>
  17464. <li>Z&auml;hler f&uuml;r bestimmte Readings und Zust&auml;nde (z.B. battery) - <a href="#HMinfoattr">attribut controlled</a></li>
  17465. <li>Z&auml;hler f&uuml;r Readings, die auf Fehler hindeuten (z.B. overheat, motorErr) - <a href="#HMinfoattr">attribut controlled</a></li>
  17466. </ul>
  17467. <br>
  17468. Weiterhin stehen HM Kommandos zur Verf&uuml;gung, z.B. f&uuml;r das Speichern aller gesammelten Registerwerte.<br><br>
  17469. Ein Kommando wird f&uuml;r alle HM Instanzen der kompletten Installation ausgef&uuml;hrt.
  17470. Die Ausf&uuml;hrung ist jedoch auf die dazugeh&ouml;rigen Instanzen beschr&auml;nkt.
  17471. So wird rssi nur auf Ger&auml;te angewendet, da Kan&auml;le RSSI Werte nicht unterst&uuml;tzen.<br><br>
  17472. <a name="HMinfoFilter"><b>Filter</b></a>
  17473. <ul> werden wie folgt angewendet:<br><br>
  17474. <code>set &lt;name&gt; &lt;cmd&gt; &lt;filter&gt; [&lt;param&gt;]</code><br>
  17475. wobei sich filter aus Typ und Name zusammensetzt<br>
  17476. [-dcasev] [-f &lt;filter&gt;]<br><br>
  17477. <b>Typ</b> <br>
  17478. <ul>
  17479. <li>d - device :verwende Ger&auml;t</li>
  17480. <li>c - channels :verwende Kanal</li>
  17481. <li>v - virtual :unterdr&uuml;cke virtuelle Instanz</li>
  17482. <li>p - physical :unterdr&uuml;cke physikalische Instanz</li>
  17483. <li>a - aktor :unterdr&uuml;cke Aktor</li>
  17484. <li>s - sensor :unterdr&uuml;cke Sensor</li>
  17485. <li>e - empty :verwendet das Resultat auch wenn die Felder leer sind</li>
  17486. <li>2 - alias :2ter name alias anzeigen</li>
  17487. </ul>
  17488. und/oder <b>Name</b>:<br>
  17489. <ul>
  17490. <li>-f &lt;filter&gt; :Regul&auml;rer Ausdruck (regexp), um die Instanznamen zu filtern</li>
  17491. </ul>
  17492. Beispiel:<br>
  17493. <ul><code>
  17494. set hm param -d -f dim state # Zeige den Parameter 'state' von allen Ger&auml;ten, die "dim" im Namen enthalten<br>
  17495. set hm param -c -f ^dimUG$ peerList # Zeige den Parameter 'peerList' f&uuml;r alle Kan&auml;le mit dem Namen "dimUG"<br>
  17496. set hm param -dcv expert # Ermittle das Attribut expert f&uuml;r alle Ger&auml;te, Kan&auml;le und virtuelle Instanzen<br>
  17497. </code></ul>
  17498. </ul>
  17499. <br>
  17500. <a name="HMinfodefine"><b>Define</b></a>
  17501. <ul>
  17502. <code>define &lt;name&gt; HMinfo</code><br>
  17503. Es muss nur eine Instanz ohne jegliche Parameter definiert werden.<br>
  17504. </ul>
  17505. <br>
  17506. <a name="HMinfoget"><b>Get</b></a>
  17507. <ul>
  17508. <li><a name="#HMinfomodels">models</a><br>
  17509. zeige alle HM Modelle an, die von FHEM unterst&uuml;tzt werden
  17510. </li>
  17511. <li><a name="#HMinfoparam">param</a> <a href="#HMinfoFilter">[filter]</a> &lt;name&gt; &lt;name&gt;...<br>
  17512. zeigt Parameterwerte (Attribute, Readings, ...) f&uuml;r alle Instanzen in Tabellenform an
  17513. </li>
  17514. <li><a name="#HMinforegister">register</a> <a href="#HMinfoFilter">[filter]</a><br>
  17515. zeigt eine Tabelle mit Registern einer Instanz an
  17516. </li>
  17517. <li><a name="#HMinforegCheck">regCheck</a> <a href="#HMinfoFilter">[filter]</a><br>
  17518. validiert Registerwerte
  17519. </li>
  17520. <li><a name="#HMinfopeerCheck">peerCheck</a> <a href="#HMinfoFilter">[filter]</a><br>
  17521. validiert die Einstellungen der Paarungen (Peers). Hat ein Kanal einen Peer gesetzt, muss dieser auch auf
  17522. der Gegenseite gesetzt sein.
  17523. </li>
  17524. <li><a name="#HMinfopeerXref">peerXref</a> <a href="#HMinfoFilter">[filter]</a><br>
  17525. erzeugt eine komplette Querverweisliste aller Paarungen (Peerings)
  17526. </li>
  17527. <li><a name="#HMinfoconfigCheck">configCheck</a> <a href="#HMinfoFilter">[filter]</a><br>
  17528. Plausibilit&auml;tstest aller HM Einstellungen inklusive regCheck und peerCheck
  17529. </li>
  17530. <li><a name="#HMinfoconfigChkResult">configChkResult</a><br>
  17531. gibt das Ergebnis eines vorher ausgefĂźhrten configCheck zurĂźck
  17532. </li>
  17533. <li><a name="#HMinfotemplateList">templateList [&lt;name&gt;]</a><br>
  17534. zeigt eine Liste von Vorlagen. Ist kein Name angegeben, werden alle Vorlagen angezeigt<br>
  17535. </li>
  17536. <li><a name="#HMinfotemplateUsg">templateUsg</a> &lt;template&gt; [sortPeer|sortTemplate]<br>
  17537. Liste der genutzten templates.<br>
  17538. template filtert die Einträge nach diesem template
  17539. </li>
  17540. <li><a name="#HMinfomsgStat">msgStat</a> <a href="#HMinfoFilter">[filter]</a><br>
  17541. zeigt eine Statistik aller Meldungen der letzen Woche<br>
  17542. </li>
  17543. <li><a name="#HMinfoprotoEvents">protoEvents</a> <a href="#HMinfoFilter">[filter]</a> <br>
  17544. vermutlich die <B>wichtigste Auflistung</B> f&uuml;r Meldungsprobleme.
  17545. Informationen &uuml;ber ausstehende Kommandos und fehlgeschlagene Sendevorg&auml;nge
  17546. f&uuml;r alle Ger&auml;te in Tabellenform.<br>
  17547. Mit <a name="#HMinfoclear">clear msgEvents</a> kann die Statistik gel&ouml;scht werden.<br>
  17548. </li>
  17549. <li><a name="#HMinforssi">rssi </a><a href="#HMinfoFilter">[filter]</a><br>
  17550. Statistik &uuml;ber die RSSI Werte aller HM Instanzen.<br>
  17551. </li>
  17552. <li><a name="#HMinfotemplateChk">templateChk</a> <a href="#HMinfoFilter">[filter]</a> &lt;template&gt; &lt;peer:[long|short]&gt; [&lt;param1&gt; ...]<br>
  17553. Verifiziert, ob die Registerwerte mit der Vorlage in Einklang stehen.<br>
  17554. Die Parameter sind identisch mit denen aus <a href="#HMinfotemplateSet">templateSet</a>.<br>
  17555. Wenn kein Peer ben&ouml;tigt wird, stattdessen none verwenden.
  17556. Beispiele f&uuml;r die &Uuml;berpr&uuml;fung von Einstellungen<br>
  17557. <ul><code>
  17558. set hm templateChk -f RolloNord BlStopUpLg none 1 2 # RolloNord, no peer, parameter 1 and 2 given<br>
  17559. set hm templateChk -f RolloNord BlStopUpLg peerName:long # RolloNord peerName, long only<br>
  17560. set hm templateChk -f RolloNord BlStopUpLg peerName # RolloNord peerName, long and short<br>
  17561. set hm templateChk -f RolloNord BlStopUpLg peerName:all # RolloNord peerName, long and short<br>
  17562. set hm templateChk -f RolloNord BlStopUpLg all:long # RolloNord any peer, long only<br>
  17563. set hm templateChk -f RolloNord BlStopUpLg all # RolloNord any peer,long and short<br>
  17564. set hm templateChk -f Rollo.* BlStopUpLg all # each Rollo* any peer,long and short<br>
  17565. set hm templateChk BlStopUpLg # each entities<br>
  17566. set hm templateChk # all assigned templates<br>
  17567. set hm templateChk sortTemplate # all assigned templates, sort by template<br>
  17568. set hm templateChk sortPeer # all assigned templates, sort by peer<br>
  17569. </code></ul>
  17570. </li>
  17571. </ul>
  17572. <a name="HMinfoset"><b>Set</b></a>
  17573. <ul>
  17574. Obwohl die Kommandos Einstellungen abrufen (get function), werden sie mittels set ausgef&uuml;hrt, um die
  17575. Benutzung mittels Web Interface zu erleichtern.<br>
  17576. <ul>
  17577. <li><a name="#HMinfoupdate">update</a><br>
  17578. Aktualisiert HM Status Z&auml;hler.
  17579. </li>
  17580. <li><a name="#HMinfoautoReadReg">autoReadReg</a> <a href="#HMinfoFilter">[filter]</a><br>
  17581. Aktiviert das automatische Lesen der Konfiguration f&uuml;r ein CUL_HM Ger&auml;t, wenn das Attribut autoReadReg auf 1 oder h&ouml;her steht.
  17582. </li>
  17583. <li><a name="#HMinfoclear">clear</a> <a href="#HMinfoFilter">[filter]</a> [msgEvents|msgErrors|readings|msgStat|register|rssi]<br>
  17584. F&uuml;hrt ein set clear ... f&uuml;r alle HM Instanzen aus<br>
  17585. <ul>
  17586. <li>Protocol bezieht sich auf set clear msgEvents</li>
  17587. <li>Protocol set clear msgEvents fuer alle devices mit protokoll Fehlern</li>
  17588. <li>readings bezieht sich auf set clear readings</li>
  17589. <li>rssi l&ouml;scht alle rssi Z&auml;hler</li>
  17590. <li>msgStat l&ouml;scht die HM Meldungsstatistik</li>
  17591. <li>register l&ouml;scht alle Eintr&auml;ge in den Readings</li>
  17592. </ul>
  17593. </li>
  17594. <li><a name="#HMinfosaveConfig">saveConfig</a> <a href="#HMinfoFilter">[filter] [&lt;file&gt;]</a><br>
  17595. Sichert alle HM Registerwerte und Peers. Siehe <a href="#CUL_HMsaveConfig">CUL_HM saveConfig</a>.<br>
  17596. <a ref="#HMinfopurgeConfig">purgeConfig</a> wird automatisch ausgef&uuml;hrt, wenn die Datenmenge 1 MByte &uuml;bersteigt.<br>
  17597. </li>
  17598. <li><a name="#HMinfoarchConfig">archConfig</a> <a href="#HMinfoFilter">[filter] [&lt;file&gt;]</a><br>
  17599. F&uuml;hrt <a href="#HMinfosaveConfig">saveConfig</a> f&uuml;r alle Instanzen aus, sobald sich deren Konfiguration &auml;ndert.
  17600. Es schont gegen&uuml;ber saveConfig die Resourcen, da es nur vollst&auml;ndige Konfigurationen sichert.<br>
  17601. Die Option -a erzwingt das sofortige Archivieren f&uuml;r alle Ger&auml;te, die eine vollst&auml;ndige Konfiguration aufweisen.<br>
  17602. </li>
  17603. <li><a name="#HMinfoloadConfig">loadConfig</a> <a href="#HMinfoFilter">[filter] [&lt;file&gt;]</a><br>
  17604. L&auml;dt Register und Peers aus einer zuvor mit <a href="#HMinfosaveConfig">saveConfig</a> gesicherten Datei.<br>
  17605. Es sollte mit Vorsicht verwendet werden, da es Daten zu FHEM hinzuf&uuml;gt, die nicht verifiziert sind.
  17606. Readings werden nicht ersetzt, nur fehlende Readings werden hinzugef&uuml;gt. Der Befehl ist dazu geignet, um Readings
  17607. zu erstellen, die schwer zu erhalten sind. Readings von Ger&auml;ten, die nicht dauerhaft empfangen sondern nur auf Tastendruck
  17608. aufwachen (z.B. T&uuml;rsensoren), k&ouml;nnen nicht ohne Weiteres gelesen werden.<br>
  17609. Daher liegt es in der Verantwortung des Benutzers g&uuml;ltige Werte zu verwenden. Es sollte autoReadReg f&uuml;r Ger&auml;te verwendet werden,
  17610. die einfach ausgelesen werden k&ouml;nnen.<br>
  17611. Der Befehl aktualisiert lediglich FHEM Readings und Attribute. Die Programmierung des Ger&auml;tes wird <B>nicht</B> ver&auml;ndert.
  17612. </li>
  17613. <li><a name="#HMinfopurgeConfig">purgeConfig</a> <a href="#HMinfoFilter">[filter] [&lt;file&gt;]</a><br>
  17614. Bereinigt die gespeicherte Konfigurationsdatei. Durch die kumulative Speicherung der Registerwerte bleiben die
  17615. zuletzt gespeicherten Werte erhalten und alle &auml;lteren werden gel&ouml;scht.
  17616. Siehe <a href="#CUL_HMsaveConfig">CUL_HM saveConfig</a>.
  17617. </li>
  17618. <li><a name="#HMinfoverifyConfig">verifyConfig</a> <a href="#HMinfoFilter">[filter] [&lt;file&gt;]</a><br>
  17619. vergleicht die aktuellen Daten mit dem configFile und zeigt unterschiede auf.
  17620. Es ist hilfreich wenn man eine bekannt gute Konfiguration gespeichert hat und gegen diese vergleiche will.
  17621. Ein purge vorher macht sinn.
  17622. Siehe <a href="#CUL_HMpurgeConfig">CUL_HM purgeConfig</a>.
  17623. </li>
  17624. <br>
  17625. <li><a name="#HMinfotempList">tempList</a> <a href="#HMinfoFilter">[filter]</a>[save|restore|verify] [&lt;file&gt;]</a><br>
  17626. Diese Funktion erm&ouml;glicht die Verarbeitung von tempor&auml;ren Temperaturlisten f&uuml;r Thermostate.
  17627. Die Listen k&ouml;nnen in Dateien abgelegt, mit den aktuellen Werten verglichen und an das Ger&auml;t gesendet werden.<br>
  17628. <li><B>save</B> speichert die aktuellen tempList Werte des Systems in eine Datei. <br>
  17629. Zu beachten ist, dass die aktuell in FHEM vorhandenen Werte benutzt werden. Der Benutzer muss selbst sicher stellen,
  17630. dass diese mit den Werten im Ger&auml;t &uuml;berein stimmen.<br>
  17631. Der Befehl arbeitet nicht kummulativ. Alle evtl. vorher in der Datei vorhandenen Werte werden &uuml;berschrieben.</li>
  17632. <li><B>restore</B> in der Datei gespeicherte Termperaturliste wird direkt an das Ger&auml;t gesendet.</li>
  17633. <li><B>verify</B> vergleicht die Temperaturliste in der Datei mit den aktuellen Werten in FHEM. Der Benutzer muss
  17634. selbst sicher stellen, dass diese mit den Werten im Ger&auml;t &uuml;berein stimmen.</li>
  17635. <li><B>status</B> gibt einen Ueberblick aller genutzten template files. Ferner werden vorhandene templates in den files gelistst.
  17636. <br></li>
  17637. <li><B>genPlot</B> erzeugt einen Satz Daten um temp-templates graphisch darzustellen<br>
  17638. Aus den gegebenen template-file wird ein .log erweitertes file erzeugt welches log-formatierte daten beinhaltet.
  17639. Zeitmarken sind auf Beginn 2000 terminiert.<br>
  17640. Ein .gplot file wird in der gplt directory erzeugt.<br>
  17641. Eine Logfile-entity <file>_Log, falls nicht vorhanden, wird erzeugt.<br>
  17642. Eine SVG-entity <file>_SVG, falls nicht vorhanden, wird erzeugt.<br>
  17643. </li>
  17644. <br>
  17645. <li><B>filename</B> Name der Datei. Vorgabe ist <B>tempList.cfg</B></li>
  17646. Beispiel f&uuml;r einen Dateiinhalt:<br>
  17647. <ul><code>
  17648. entities:HK1_Climate,HK2_Clima<br>
  17649. tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0<br>
  17650. tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0<br>
  17651. tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0<br>
  17652. tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0<br>
  17653. tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0<br>
  17654. tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0<br>
  17655. tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0<br>
  17656. entities:hk3_Climate<br>
  17657. tempListFri>06:00 17.0 12:00 21.0 23:00 20.0 24:00 19.5<br>
  17658. tempListMon>06:00 17.0 12:00 21.0 23:00 20.0 24:00 17.0<br>
  17659. tempListSat>06:00 17.0 12:00 21.0 23:00 20.0 24:00 17.0<br>
  17660. tempListSun>06:00 17.0 12:00 21.0 23:00 20.0 24:00 17.0<br>
  17661. tempListThu>06:00 17.0 12:00 21.0 23:00 20.0 24:00 17.0<br>
  17662. tempListTue>06:00 17.0 12:00 21.0 23:00 20.0 24:00 17.0<br>
  17663. tempListWed>06:00 17.0 12:00 21.0 23:00 20.0 24:00 17.0<br>
  17664. </code></ul>
  17665. Datei Schl&uuml;sselw&ouml;rter<br>
  17666. <li><B>entities</B> mittels Komma getrennte Liste der Instanzen f&uuml;r die die nachfolgende Liste bestimmt ist.
  17667. Es muss die tats&auml;chlich f&uuml;r die Temperaturliste zust&auml;ndige Instanz angegeben werden. Bei RTs ist das der Kanal 04,
  17668. bei TCs der Kanal 02.</li>
  17669. <li><B>tempList...</B> Zeiten und Temperaturen sind genau wie im Befehl "set tempList" anzugeben</li>
  17670. <br>
  17671. </li>
  17672. <br>
  17673. <li><a name="#HMinfocpRegs">cpRegs &lt;src:peer&gt; &lt;dst:peer&gt; </a><br>
  17674. erm&ouml;glicht das Kopieren von Registern, Einstellungen und Verhalten zwischen gleichen Kan&auml;len, bei einem Peer auch
  17675. zwischen unterschiedlichen Kan&auml;len. Das Kopieren kann daher sowohl von Ger&auml;t zu Ger&auml;t, als auch innerhalb eines
  17676. Ger&auml;tes stattfinden.<br>
  17677. <b>src:peer</b> ist die Quell-Instanz. Der Peer muss angegeben werden, wenn dessen Verhalten kopiert werden soll.<br>
  17678. <b>dst:peer</b> ist die Ziel-Instanz.<br>
  17679. Beispiel:<br>
  17680. <ul><code>
  17681. set hm cpRegs blindR blindL # kopiert alle Register (list 1) des Kanals von blindR nach blindL einschliesslich z.B. der
  17682. Rolladen Fahrzeiten. Register, die den Peer betreffen (list 3/4), werden nicht kopiert.<br>
  17683. set hm cpRegs blindR:Btn1 blindL:Btn2 # kopiert das Verhalten der Beziehung Btn1/blindR nach Btn2/blindL<br>
  17684. set hm cpRegs blindR:Btn1 blindR:Btn2 # kopiert das Verhalten der Beziehung Btn1/blindR nach Btn2/blindR, hier
  17685. innerhalb des Aktors<br>
  17686. </code></ul>
  17687. <br>
  17688. Einschr&auml;nkungen:<br>
  17689. <ul>
  17690. cpRegs <u>ver&auml;ndert keine Peerings</u> oder liest direkt aus den Ger&auml;ten. Die Readings m&uuml;ssen daher aktuell sein.<br>
  17691. cpRegs kann nur auf <u>identische Ger&auml;temodelle</u> angewendet werden<br>
  17692. cpRegs erwartet <u>aktuelle Readings</u>. Dies muss der Benutzer sicher stellen.<br>
  17693. </ul>
  17694. </li>
  17695. <li><a name="#HMinfotemplateDef">templateDef &lt;name&gt; &lt;param&gt; &lt;desc&gt; &lt;reg1:val1&gt; [&lt;reg2:val2&gt;] ...</a><br>
  17696. definiert eine Vorlage.<br>
  17697. <b>param</b> definiert die Namen der Parameters, die erforderlich sind, um die Vorlage auszuf&uuml;hren.
  17698. Diese sind abh&auml;ngig von der Vorlage und k&ouml;nnen onTime oder brightnesslevel sein.
  17699. Bei einer Liste mehrerer Parameter m&uuml;ssen diese mittels Kommata separiert werden.<br>
  17700. param1:param2:param3<br>
  17701. Der Parameter del f&uuml;hrt zur L&ouml;schung der Vorlage.<br>
  17702. <b>desc</b> eine Beschreibung f&uuml;r die Vorlage<br>
  17703. <b>reg:val</b> der Name des Registers und der dazugeh&ouml;rige Zielwert.<br>
  17704. Wenn das Register zwischen long und short unterscheidet, muss das f&uuml;hrende sh oder lg weggelassen werden.<br>
  17705. Parameter m&uuml;ssen mit p angegeben werden, p0 f&uuml;r den ersten, p1 f&uuml;r den zweiten usw.
  17706. <br>
  17707. Beispiel<br>
  17708. <ul><code>
  17709. set hm templateDef SwOnCond level:cond "my description" CtValLo:p0 CtDlyOn:p1 CtOn:geLo<br>
  17710. set hm templateDef SwOnCond del # lĂśsche template SwOnCond<br>
  17711. set hm templateDef SwOnCond fromMaster &lt;masterChannel&gt; &lt;peer:[long|short]&gt;# masterKanal mit peer wird als Vorlage genommen<br>
  17712. set hm templateDef SwOnCond fromMaster myChannel peerChannel:long <br>
  17713. </code></ul>
  17714. </li>
  17715. <li><a name="#HMinfotemplateSet">templateSet</a> &lt;entity&gt; &lt;template&gt; &lt;peer:[long|short]&gt; [&lt;param1&gt; ...]<br>
  17716. setzt mehrere Register entsprechend der angegebenen Vorlage. Die Parameter m&uuml;ssen entsprechend der Vorlage angegeben werden.<br>
  17717. templateSet akkumuliert alle &Auml;nderungen und schreibt das Ergebnis gesammelt.<br>
  17718. <b>entity:</b> ist die Quell-Instanz. Der Peer muss angegeben werden, wenn dessen Verhalten kopiert werden soll.<br>
  17719. <b>template:</b> eine der vorhandenen Vorlagen<br>
  17720. <b>peer:</b> [long|short]:falls erforderlich muss der Peer angegeben werden. Wird kein Peer ben&ouml;tigt, '0' verwenden.
  17721. Bei einem Peer muss f&uuml;r den Tastendruck long oder short angegeben werden.<br>
  17722. <b>param:</b> Nummer und Bedeutung des Parameters h&auml;ngt von der Vorlage ab.<br>
  17723. Ein Beispiel k&ouml;nnte sein (theoretisch, ohne die Vorlage anzugeben)<br>
  17724. <ul><code>
  17725. set hm templateSet Licht1 staircase FB1:short 20 <br>
  17726. set hm templateSet Licht1 staircase FB1:long 100 <br>
  17727. </code></ul>
  17728. Einschr&auml;nkungen:<br>
  17729. <ul>
  17730. Der Benutzer muss aktuelle Register/Konfigurationen sicher stellen.<br>
  17731. templateSet konfiguriert ggf. nur einzelne Register und keinen vollst&auml;ndigen Satz. Dies h&auml;ngt vom Design der Vorlage ab.<br>
  17732. <br>
  17733. </ul>
  17734. </li>
  17735. <li><a name="#HMinfotemplateDel">templateDel</a> &lt;entity&gt; &lt;template&gt; &lt;peer:[long|short]&gt;<br>
  17736. entfernt ein Template das mit templateSet eingetragen wurde
  17737. </li>
  17738. <li><a name="#HMinfotemplateExe">templateExe</a> &lt;template&gt; <br>
  17739. fĂźhrt das templateSet erneut aus. Die Register werden nochmals geschrieben, falls sie nicht zum template passen. <br>
  17740. </li>
  17741. <li><a name="#HMinfodeviceReplace">x-deviceReplace</a> &lt;oldDevice&gt; &lt;newDevice&gt; <br>
  17742. Ersetzen eines alten oder defekten Device. Das neue Ersatzdevice muss kompatibel zum Alten sein - FHEM prßft das nur rudimentär. Der Anwender sollt es sorgsam prßfen.<br>
  17743. Das Kommando muss aus SicherheitsgrĂźnden 2-fach ausgefĂźhrt werden. Der erste Aufruf wird mit einem CAUTION quittiert. Nach AuslĂśsen den Kommandos ein 2. mal werden die Devices umbenannt und umkonfiguriert. Er werden alle peerings, Register und Templates im neuen Device UND allen peers umgestellt.<br>
  17744. ACHTUNG: Nach dem AuslÜsen kann die �nderung nicht mehr automatisch rßckgängig gemacht werden. Manuell ist das natßrlich mÜglich.<br>
  17745. Auch ein ßckspring auf eine ältere Konfiguration erlaubt KEIN Rßckgängigmachen!!!<br>
  17746. Sollte das Device und seine Kanäle ßber Templates definiert sein - also die Registerlisten - kann im Falle von Problemen in der �bertragung - problemlos wieder hergestellt werden. <br>
  17747. </li>
  17748. </ul>
  17749. </ul>
  17750. <br>
  17751. <a name="HMinfoattr"><b>Attribute</b></a>
  17752. <ul>
  17753. <li><a name="#HMinfosumStatus">sumStatus</a><br>
  17754. erzeugt eine Liste von Warnungen. Die zu untersuchenden Readings werden mittels Komma separiert angegeben.
  17755. Die Readings werden, so vorhanden, von allen Instanzen ausgewertet, gez&auml;hlt und getrennt nach Readings mit
  17756. gleichem Inhalt ausgegeben.<br>
  17757. Beispiel:<br>
  17758. <ul><code>
  17759. attr hm sumStatus battery,sabotageError<br>
  17760. </code></ul>
  17761. k&ouml;nnte nachfolgende Ausgaben erzeugen<br>
  17762. W_sum_batterie ok:5 low:3<br>
  17763. W_sum_sabotageError on:1<br>
  17764. <br>
  17765. Anmerkung: Z&auml;hler mit Werten von '0' werden nicht angezeigt. HMinfo findet alle vorhanden Werte selbstst&auml;ndig.<br>
  17766. Das Setzen des Attributes erm&ouml;glicht einen schnellen &Uuml;berblick &uuml;ber systemkritische Werte.<br>
  17767. </li>
  17768. <li><a name="#HMinfosumERROR">sumERROR</a>
  17769. &Auml;hnlich sumStatus, jedoch mit dem Fokus auf signifikante Fehler.
  17770. Hier k&ouml;nnen Reading <b>Werte</b> angegeben werden, die dazu f&uuml;hren, dass diese <b>nicht angezeigt</b> werden.
  17771. Damit kann beispielsweise verhindert werden, dass der zu erwartende Normalwert oder ein anderer nicht
  17772. kritischer Wert angezeigt wird.<br>
  17773. Beispiel:<br>
  17774. <ul><code>
  17775. attr hm sumERROR battery:ok,sabotageError:off,overheat:off,Activity:alive:unknown<br>
  17776. </code></ul>
  17777. erzeugt folgende Ausgabe:<br>
  17778. <ul><code>
  17779. ERR_batterie low:3<br>
  17780. ERR_sabotageError on:1<br>
  17781. ERR_overheat on:3<br>
  17782. ERR_Activity dead:5<br>
  17783. </code></ul>
  17784. </li>
  17785. <li><a name="#HMinfoautoUpdate">autoUpdate</a>
  17786. f&uuml;hrt den Befehl periodisch aus.<br>
  17787. Beispiel:<br>
  17788. <ul><code>
  17789. attr hm autoUpdate 00:10<br>
  17790. </code></ul>
  17791. f&uuml;hrt den Befehl alle 10 Minuten aus<br>
  17792. </li>
  17793. <li><a name="#HMinfoautoArchive">autoArchive</a>
  17794. Sobald neue Daten verf&uuml;gbar sind, wird das configFile aktualisiert.
  17795. F&uuml;r die Aktualisierung ist <a ref="#HMinfoautoUpdate">autoUpdate</a> zwingend erforderlich.<br>
  17796. siehe auch <a ref="#HMinfoarchConfig">archConfig</a>
  17797. <br>
  17798. </li>
  17799. <li><a name="#HMinfohmAutoReadScan">hmAutoReadScan</a>
  17800. definiert die Zeit in Sekunden bis zum n&auml;chsten autoRead durch CUL_HM. Trotz dieses Zeitwertes stellt
  17801. FHEM sicher, dass zu einem Zeitpunkt immer nur ein Ger&auml;t gelesen wird, auch wenn der Minimalwert von 1
  17802. Sekunde eingestellt ist. Mit dem Timer kann der Zeitabstand
  17803. ausgeweitet werden - bis zu 300 Sekunden zwischen zwei Ausf&uuml;hrungen.<br>
  17804. Das Herabsetzen erh&ouml;ht die Funkbelastung, Heraufsetzen erh&ouml;ht die Wartzezeit.<br>
  17805. </li>
  17806. <li><a name="#HMinfohmIoMaxDly">hmIoMaxDly</a>
  17807. maximale Zeit in Sekunden f&uuml;r die CUL_HM Meldungen puffert, wenn das Ger&auml;t nicht sendebereit ist.
  17808. Ist das Ger&auml;t nicht wieder rechtzeitig sendebereit, werden die gepufferten Meldungen verworfen und
  17809. IOErr ausgel&ouml;st.<br>
  17810. Hinweis: Durch die Pufferung kann es vorkommen, dass Aktivit&auml;t lange nach dem Absetzen des Befehls stattfindet.<br>
  17811. Standard ist 60 Sekunden, maximaler Wert ist 3600 Sekunden.<br>
  17812. </li>
  17813. <li><a name="#HMinfoconfigDir">configDir</a>
  17814. Verzeichnis f&uuml;r das Speichern und Lesen der Konfigurationsdateien, sofern in einem Befehl nur ein Dateiname ohne
  17815. Pfad angegen wurde.<br>
  17816. Verwendung beispielsweise bei <a ref="#HMinfotempList">tempList</a> oder <a ref="#HMinfosaveConfig">saveConfig</a><br>
  17817. </li>
  17818. <li><a name="#HMinfoconfigFilename">configFilename</a>
  17819. Standard Dateiname zur Verwendung von
  17820. <a ref="#HMinfosaveConfig">saveConfig</a>,
  17821. <a ref="#HMinfopurgeConfig">purgeConfig</a>,
  17822. <a ref="#HMinfoloadConfig">loadConfig</a><br>
  17823. </li>
  17824. <li><a name="#HMinfoconfigTempFile">configTempFile&lt;;configTempFile2&gt;&lt;;configTempFile3&gt; </a>
  17825. Liste der Templfiles (weekplan) welche in HM berĂźcksichtigt werden<br>
  17826. Die Files werden kommasepariert eingegeben. Das erste File ist der Default. Dessen Name muss beim Template nicht eingegeben werden.<br>
  17827. </li>
  17828. <li><a name="#HMinfohmManualOper">hmManualOper</a>
  17829. auf 1 gesetzt, verhindert dieses Attribut jede automatische Aktion oder Aktualisierung seitens CUL_HM.<br>
  17830. </li>
  17831. <li><a name="#HMinfohmDefaults">hmDefaults</a>
  17832. setzt default Atribute fuer HM devices. Mehrere Attribute sind moeglich, Komma separiert.<br>
  17833. Beispiel:<br>
  17834. attr hm hmDefaults hmProtocolEvents:0_off,rssiLog:0<br>
  17835. </li>
  17836. <li><a name="#HMinfoautoLoadArchive">autoLoadArchive</a>
  17837. das Register Archive sowie Templates werden nach reboot automatischgeladen.
  17838. Siehe <a ref="#HMinfoloadConfig">loadConfig</a> fuer details<br>
  17839. </li>
  17840. </ul>
  17841. <br>
  17842. <a name="HMinfovariables"><b>Variablen</b></a>
  17843. <ul>
  17844. <li><b>I_autoReadPend:</b> Info: Liste der Instanzen, f&uuml;r die das Lesen von Konfiguration und Status ansteht,
  17845. &uuml;blicherweise ausgel&ouml;st durch autoReadReg.</li>
  17846. <li><b>ERR___rssiCrit:</b> Fehler: Liste der Ger&auml;te mit kritischem RSSI Wert </li>
  17847. <li><b>W_unConfRegs:</b> Warnung: Liste von Instanzen mit unbest&auml;tigten &Auml;nderungen von Registern.
  17848. Die Ausf&uuml;hrung von getConfig ist f&uuml;r diese Instanzen erforderlich.</li>
  17849. <li><b>I_rssiMinLevel:</b> Info: Anzahl der niedrigen RSSI Werte je Ger&auml;t, in Bl&ouml;cken angeordnet.</li>
  17850. <li><b>ERR__protocol:</b> Fehler: Anzahl nicht behebbarer Protokollfehler je Ger&auml;t.
  17851. Protokollfehler sind NACK, IOerr, ResendFail, CmdDel, CmdPend.<br>
  17852. Gez&auml;hlt wird die Anzahl der Ger&auml;te mit Fehlern, nicht die Anzahl der Fehler!</li>
  17853. <li><b>ERR__protoNames:</b> Fehler: Liste der Namen der Ger&auml;te mit nicht behebbaren Protokollfehlern</li>
  17854. <li><b>I_HM_IOdevices:</b> Info: Liste der IO Ger&auml;te, die von CUL_HM Instanzen verwendet werden</li>
  17855. <li><b>I_actTotal:</b> Info: Status des Actiondetectors, Z&auml;hler f&uuml;r Ger&auml;te mit bestimmten Status</li>
  17856. <li><b>ERRactNames:</b> Fehler: Namen von Ger&auml;ten, die der Actiondetector als ausgefallen meldet</li>
  17857. <li><b>C_sumDefined:</b> Count: In CUL_HM definierte Instanzen. Instanzen k&ouml;nnen als Ger&auml;t UND
  17858. als Kanal gez&auml;hlt werden, falls die Funktion des Kanals durch das Ger&auml;t
  17859. selbst abgedeckt ist. &Auml;hnlich virtual</li>
  17860. <li><b>ERR_&lt;reading&gt;:</b> Fehler: Anzahl mittels Attribut <a href="#HMinfosumERROR">sumERROR</a>
  17861. definierter Readings, die nicht den Normalwert beinhalten. </li>
  17862. <li><b>ERR_names:</b> Fehler: Namen von Instanzen, die in einem ERR_&lt;reading&gt; enthalten sind.</li>
  17863. <li><b>W_sum_&lt;reading&gt;</b> Warnung: Anzahl der mit Attribut <a href="#HMinfosumStatus">sumStatus</a> definierten Readings.</li>
  17864. Beispiele:<br>
  17865. <ul>
  17866. <code>
  17867. ERR___rssiCrit LightKittchen,WindowDoor,Remote12<br>
  17868. ERR__protocol NACK:2 ResendFail:5 CmdDel:2 CmdPend:1<br>
  17869. ERR__protoNames LightKittchen,WindowDoor,Remote12,Ligth1,Light5<br>
  17870. ERR_battery: low:2;<br>
  17871. ERR_names: remote1,buttonClara,<br>
  17872. I_rssiMinLevel 99&gt;:3 80&lt;:0 60&lt;:7 59&lt;:4<br>
  17873. W_sum_battery: ok:5;low:2;<br>
  17874. W_sum_overheat: off:7;<br>
  17875. C_sumDefined: entities:23 device:11 channel:16 virtual:5;<br>
  17876. </code>
  17877. </ul>
  17878. </ul>
  17879. </ul>
  17880. <p><a name="HMtemplate"></a>
  17881. <h3>HMtemplate</h3>
  17882. <div class='langLinks'>[<a href='commandref.html#HMtemplate'>EN</a> DE]</div>
  17883. <ul>
  17884. </ul>
  17885. <p><a name="HOMBOT"></a>
  17886. <h3>HOMBOT</h3>
  17887. <div class='langLinks'>[<a href='commandref.html#HOMBOT'>EN</a> DE]</div>
  17888. <ul>
  17889. <u><b>HOMBOT - LG Homebot Staubsaugerroboter</b></u>
  17890. <br>
  17891. Dieses Modul gibt Euch die M&ouml;glichkeit Euren Hombot nach erfolgreichen Hack in FHEM ein zu binden.
  17892. Voraussetzung ist das Ihr den Hombot Hack gemacht und einen WLAN Stick eingebaut habt. Als Schnittstelle zwischen FHEM und Bot wird der Luigi HTTP Server verwendet. Was genau k&ouml;nnt Ihr nun mit dem Modul machen:
  17893. <ul>
  17894. <li>Readings &uuml;ber den Status des Hombots werden angelegt</li>
  17895. <li>Auswahl des Reinigungsmodus ist m&ouml;glich</li>
  17896. <li>Starten der Reinigung</li>
  17897. <li>Beenden der Reinigung</li>
  17898. <li>zur&uuml;ck zur Homebase schicken</li>
  17899. <li>Namen vergeben</li>
  17900. <li>Wochenprogramm einstellen</li>
  17901. <li>Repeat und Turbo aktivieren</li>
  17902. </ul>
  17903. <br>
  17904. !!! Voraussetzungen schaffen !!!
  17905. <br>Ihr ben&ouml;tigt zum verwenden des Modules die Programme ssh und sshpass. Desweiteren mu&szlig; im Homeverzeichnis des fhem Users das Verzeichniss .ssh existieren und darin die Datei known_hosts. Diese sollte eine Passphrass des Bots beinhalten. Am besten Ihr macht als normaler User eine ssh Session zum Bot und kopiert danach die known_hosts Eures normalen Users in das .ssh Verzeichnis des fhem Users. Rechte anpassen nicht vergessen.
  17906. <br>
  17907. Das Device f&uuml;r den Hombot legt Ihr wie folgt in FHEM an.
  17908. <br><br>
  17909. <a name="HOMBOTdefine"></a>
  17910. <b>Define</b>
  17911. <ul><br>
  17912. <code>define &lt;name&gt; HOMBOT &lt;IP-ADRESSE&gt;</code>
  17913. <br><br>
  17914. Beispiel:
  17915. <ul><br>
  17916. <code>define Roberta HOMBOT 192.168.0.23</code><br>
  17917. </ul>
  17918. <br>
  17919. Diese Anweisung erstellt ein neues HOMBOT-Device im Raum HOMBOT.Der Parameter &lt;IP-ADRESSE&gt; legt die IP Adresse des LG Hombot fest.<br>
  17920. Das Standard Abfrageinterval ist 180 Sekunden und kann &uuml;ber das Attribut intervall ge&auml;ndert werden. Das Interval ist in Abhängigkeit des Arbeitsstatus dynamisch. Im Status WORKING beträgt es z.B. 30 Sekunden.
  17921. <br>
  17922. </ul>
  17923. <br><br>
  17924. <b><u>Nach anlegen der Ger&auml;teinstanz sollten bereits die ersten Readings erscheinen.</u></b>
  17925. <br><br><br>
  17926. <a name="HOMBOTreadings"></a>
  17927. <b>Readings</b>
  17928. <ul>
  17929. <li>at_* - Reading f&uuml;r das Wochenprogramm. Startzeit f&uuml;r den jeweiligen Tag</li>
  17930. <li>batteryPercent - Status der Batterie in %</li>
  17931. <li>cleanMode - aktuell eingestellter Reinigungsmodus</li>
  17932. <li>cpu_* - Informationen &uuml;ber die Prozessorauslastung</li>
  17933. <li>currentBumping - Anzahl der Zusammenst&ouml;&szlig;e mit Hindernissen</li>
  17934. <li>firmware - aktuell installierte Firmwareversion</li>
  17935. <li>hombotState - Status des Hombots</li>
  17936. <li>lastClean - Datum und Uhrzeit der letzten Reinigung</li>
  17937. <li>lastSetCommandError - letzte Fehlermeldung vom set Befehl</li>
  17938. <li>lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet</li>
  17939. <li>lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl</li>
  17940. <li>lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet</li>
  17941. <li>luigiSrvVersion - Version des Luigi HTTP Servers auf dem Hombot</li>
  17942. <li>nickname - Name des Hombot</li>
  17943. <li>num* - Bisher begonnene und beendete Reinigungen im entsprechenden Modus</li>
  17944. <li>repeat - Reinigung wird wiederholt Ja/Nein</li>
  17945. <li>state - Modulstatus</li>
  17946. <li>turbo - Turbo aktiv Ja/Nein</li>
  17947. </ul>
  17948. <br><br>
  17949. <a name="HOMBOTset"></a>
  17950. <b>Set</b>
  17951. <ul>
  17952. <li>cleanMode - setzen des Reinigungsmodus (ZZ-ZickZack / SB-Cell by Cell / SPOT-Spiralreinigung</li>
  17953. <li>cleanStart - Reinigung starten</li>
  17954. <li>homing - Beendet die Reinigung und l&auml;sst die Bot zur&uuml;ck zur Bases kommen</li>
  17955. <li>nickname - setzt des Bot-Namens. Wird im Reading erst nach einem neustart des Luigiservers oder des Bots sichtbar</li>
  17956. <li>pause - l&auml;sst den Reinigungspro&szlig;ess pausieren</li>
  17957. <li>repeat - Reinigung wiederholen? (true/false)</li>
  17958. <li>schedule - setzen des Wochenprogrammes Bsp. set Roberta schedule Mo=13:30 Di= Mi=14:00,ZZ Do=15:20 Fr= Sa=11:20 So= Man kann also auch den Modus mitgeben!</li>
  17959. <li>statusRequest - Fordert einen neuen Statusreport beim Device an</li>
  17960. <li>turbo - aktivieren des Turbomodus (true/false)</li>
  17961. </ul>
  17962. <br><br>
  17963. </ul>
  17964. <p><a name="HOMEMODE"></a>
  17965. <h3>HOMEMODE</h3>
  17966. <ul>
  17967. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  17968. hier: <a href='commandref.html#HOMEMODE'>HOMEMODE</a><br/>
  17969. </ul>
  17970. <p>
  17971. <a name="HP1000" id="HP1000"></a>
  17972. </p>
  17973. <h3>
  17974. HP1000
  17975. </h3>
  17976. <div class='langLinks'>[<a href='commandref.html#HP1000'>EN</a> DE]</div>
  17977. <ul>
  17978. <div>
  17979. <a name="HP1000define" id="HP10000define"></a> <b>Define</b>
  17980. <div>
  17981. <ul>
  17982. <code>define &lt;WeatherStation&gt; HP1000 [&lt;ID&gt; &lt;PASSWORD&gt;]</code><br>
  17983. <br>
  17984. Stellt einen Webhook f&uuml;r WLAN-basierte Wetterstationen bereit, die das <a href="http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol">PWS</a> Protokoll von Weather Underground verwenden (z.B. HP1000, WH2600, WH2601, WH2621, WH2900, WH2950 Wetterstation von <a href="http://www.foshk.com/Wifi_Weather_Station/">Fine Offset Electronics</a> - manchmal auch bekannt als <a href="http://www.ambientweather.com/peorhowest.html">Ambient Weather</a> WS-1001-WIFI oder &auml;hnliches). In Deutschland werden die Ger&auml;te zumeist von <a href="http://www.froggit.de/">froggit</a> oder von <a href="http://www.conrad.de/">Conrad</a> unter dem Markennamen Renkforce vertrieben.<br>
  17985. Es muss noch eine dedizierte FHEMWEB Instanz angelegt werden, wo das Attribut webname auf "weatherstation" gesetzt wurde.<br>
  17986. Kein anderer Name funktioniert, da dieser fest in der Wetterstation hinterlegt ist!<br>
  17987. Sofern notwendig, erstellt dieses Modul eine passende FHEMWEB Instanz namens WEBweatherstation w&auml;hrend der initialen Definition.<br>
  17988. <br>
  17989. Da die URI ebenfalls fest kodiert ist, kann mit einer einzelnen FHEM Installation maximal eine Instanz dieses Moduls gleichzeitig verwendet werden.<br>
  17990. <br>
  17991. Beispiel:<br>
  17992. <div>
  17993. <code># ungesch&uuml;tzte Instanz bei der ID und PASSWORD ignoriert werden<br>
  17994. define WeatherStation HP1000<br>
  17995. <br>
  17996. # gesch&uuml;tzte Instanz: Die Wetterstation muss so konfiguriert sein, dass sie<br>
  17997. # diese ID und PASSWORD sendet, damit Daten akzeptiert werden<br>
  17998. define WeatherStation HP1000 MyHouse SecretPassword</code>
  17999. </div><br>
  18000. WICHTIG: Im Ger&auml;t selbst muss sichergestellt sein, dass ein DNS Name statt einer IP Adresse verwendet wird, da einige Revisionen damit nicht umgehen k&ouml;nnen.<br>
  18001. Ggf. sollte man <a href="http://www.foshk.com/support/">hier</a> einmal nach einer neueren Firmware schauen.
  18002. </ul>
  18003. </div><br>
  18004. </div>
  18005. <a name="HP1000Attr" id="HP10000Attr"></a> <b>Attributes</b>
  18006. <div>
  18007. <ul>
  18008. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  18009. <br>
  18010. <a name="webhookFWinstances"></a><li><b>webhookFWinstances</b></li>
  18011. Explizite Angabe der FHEMWEB Instanzen, &auml;ber die Dateneingaben erlaubt sind (Standard ist weatherstation)
  18012. <a name="wu_id"></a><li><b>wu_id</b></li>
  18013. Weather Underground (Wunderground) Stations ID
  18014. <a name="wu_password"></a><li><b>wu_password</b></li>
  18015. Weather Underground (Wunderground) Passwort
  18016. <a name="wu_dataValues"></a><li><b>wu_dataValues</b></li>
  18017. Ersetzt Werte oder f&uuml;gt neue Werte hinzu, bevor diese zu Weather Underground &uuml;bertragen werden.<br>
  18018. Das Format entspricht key=value wobei value im <a href="#set">Format set magic sein</a> kann.
  18019. <a name="wu_indoorValues"></a><li><b>wu_indoorValues</b></li>
  18020. Gibt an, ob die Innenraumwerte mit zu Weather Underground &uuml;bertragen werden sollen (Standard ist 1=an)
  18021. <a name="wu_push"></a><li><b>wu_push</b></li>
  18022. Pushen der Daten zu Weather Underground aktivieren oder deaktivieren (Standard ist 0=aus)
  18023. <a name="wu_pushValues"></a><li><b>wu_pushValues</b></li>
  18024. Schr&auml;nkt die Werte ein, die an Weather Underground &uuml;bertragen werden.
  18025. Andernfalls werden alle Werte &uuml;bertragen.
  18026. <a name="wu_realtime"></a><li><b>wu_realtime</b></li>
  18027. Sendet die Daten an den WU Echtzeitserver statt an den Standard Server (Standard ist 1=an)
  18028. </ul>
  18029. </div>
  18030. </ul>
  18031. <p><a name="HProtocolGateway"></a>
  18032. <h3>HProtocolGateway</h3>
  18033. <ul>
  18034. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18035. hier: <a href='commandref.html#HProtocolGateway'>HProtocolGateway</a><br/>
  18036. </ul>
  18037. <a name="HProtocolTank"></a>
  18038. <h3>HProtocolTank</h3>
  18039. <ul>
  18040. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18041. hier: <a href='commandref.html#HProtocolTank'>HProtocolTank</a><br/>
  18042. </ul>
  18043. <a name="HTTPMOD"></a>
  18044. <h3>HTTPMOD</h3>
  18045. <ul>
  18046. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18047. hier: <a href='commandref.html#HTTPMOD'>HTTPMOD</a><br/>
  18048. </ul>
  18049. <a name="HTTPSRV"></a>
  18050. <h3>HTTPSRV</h3>
  18051. <ul>
  18052. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18053. hier: <a href='commandref.html#HTTPSRV'>HTTPSRV</a><br/>
  18054. </ul>
  18055. <a name="HUEBridge"></a>
  18056. <h3>HUEBridge</h3>
  18057. <ul>
  18058. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18059. hier: <a href='commandref.html#HUEBridge'>HUEBridge</a><br/>
  18060. </ul>
  18061. <a name="HUEDevice"></a>
  18062. <h3>HUEDevice</h3>
  18063. <ul>
  18064. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18065. hier: <a href='commandref.html#HUEDevice'>HUEDevice</a><br/>
  18066. </ul>
  18067. <a name="HXB"></a>
  18068. <h3>HXB</h3>
  18069. <ul>
  18070. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18071. hier: <a href='commandref.html#HXB'>HXB</a><br/>
  18072. </ul>
  18073. <a name="HXBDevice"></a>
  18074. <h3>HXBDevice</h3>
  18075. <ul>
  18076. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18077. hier: <a href='commandref.html#HXBDevice'>HXBDevice</a><br/>
  18078. </ul>
  18079. <a name="Heating_Control"></a>
  18080. <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
  18081. <h3>Heating Control</h3>
  18082. <div class='langLinks'>[<a href='commandref.html#Heating_Control'>EN</a> DE]</div>
  18083. <ul>
  18084. <br>
  18085. <a name="Heating_Controldefine"></a>
  18086. <b>Define</b>
  18087. <ul>
  18088. <code>define &lt;name&gt; Heating_Control &lt;device&gt; [&lt;language&gt;] &lt;wochentage;] &lt;profile&gt; &lt;command&gt;|&lt;condition&gt;</code>
  18089. <br><br>
  18090. Bildet ein Wochenprofil f&uumlr ein &lt;device&gt;, zb. Heizk&oumlrper, ab.<br>
  18091. Es k&oumlnnen f&uumlr jeden Tag unterschiedliche Schaltzeiten angegeben werden.<br>
  18092. Ist das &lt;device&gt; ein Heizk&oumlrperthermostat (zb. FHT8b, MAX) so wird bei FHT8b/MAX die
  18093. zu setzende Temperatur im &lt;profile&gt; automatisch mittels <br><br>
  18094. <code>set &lt;device&gt; (desired-temp|desiredTemperature) &lt;temp&gt;</code> <br><br> gesendet.
  18095. Struktuen von Heizk&oumlrperthermostaten bekommen aufgrund des fhem-Typs auch desired-temp gesendet:
  18096. Nutze bitte explizite Kommandos wenn Strukturen von MAX Heizthermostaten gesteuert werden sollen.<br><br>
  18097. Ist eine &lt;condition&gt; angegeben und ist zum Schaltpunkt der Ausdruck unwahr,
  18098. so wird dieser Schaltpunkt nicht ausgef&uumlhrt.<br>
  18099. Alternativ zur Automatik kann stattdessen eigener Perl-Code im &lt;command&gt; ausgef&uumlhrt werden.
  18100. <p>
  18101. Folgende Parameter sind im Define definiert:
  18102. <ul><b>device</b><br>
  18103. Name des zu schaltenden Device.
  18104. </ul>
  18105. <p>
  18106. <ul><b>language</b><br>
  18107. Spezifiziert die Sprache f&uumlr die Definition und die Anzeige der Profile in der Weboberfl&aumlche.
  18108. Zurzeit sind de,en,fr definiert. Der Parameter ist optional.
  18109. </ul>
  18110. <p>
  18111. <ul><b><u>wochentage</u></b><br>
  18112. Spezifiziert die Tage f&uumlr alle Timer eines <b>Heating_Control</b>.
  18113. Der Parameter ist optional. Bitte f&uumlr Details zur Definition siehe wochentage im part profile.
  18114. </ul>
  18115. <p>
  18116. <ul><b>profile</b><br>
  18117. Angabe des Wochenprofils. Die einzelnen Schaltzeiten sind durch Leerzeichen getrennt
  18118. Die Angabe der Schaltzeiten ist nach folgendem Muster definiert:<br>
  18119. <ul><b>[&lt;Wochentage&gt;|]&lt;Uhrzeit&gt;|&lt;Parameter&gt;</b></ul><br>
  18120. <u>Wochentage:</u> optionale Angabe, falls nicht gesetzt wird der Schaltpunkt jeden Tag ausgef&uumlhrt.
  18121. F&uumlr die Tage an denen dieser Schaltpunkt aktiv sein soll, ist jeder Tag mit seiner
  18122. Tagesnummer (Mo=1, ..., So=0) oder Name des Tages (Mo, Di, ..., So) einzusetzen.<br><br>
  18123. <ul>
  18124. <li>0,so Sonntag</li>
  18125. <li>1,mo Montag</li>
  18126. <li>2,di Dienstag</li>
  18127. <li>3,mi Mittwoch</li>
  18128. <li>4 ...</li>
  18129. <li>7,$we Wochenende ($we)</li>
  18130. <li>8,!$we Wochentag (!$we)</li>
  18131. </ul><br>
  18132. Es ist m&oumlglich $we or !$we in der Tagesliste zu definieren.
  18133. So ist es auf einfache Art m&oumlglich die Schaltzeitpunkte f&uumlr das Wochenende oder Wochetage zu definieren.
  18134. $we und!$we werden als 7 bzw. 8 spezifiziert, wenn die numerische Variante der Tagesliste gew&aumlhlt wird.<br><br>
  18135. <u>Uhrzeit:</u>Angabe der Uhrzeit zu der geschaltet werden soll, Format: HH:MM:[SS](HH im 24 Stunden Format) oder eine Perlfunction wie {sunrise_abs()}.
  18136. In {} kannst du die Variable $date(epoch) nutzen, um die Schaltzeiten der Woche zu berechnen. Beispiel: {sunrise_abs_dat($date)}<br><br>
  18137. <u>Parameter:</u>Angabe der zu setzenden Temperatur als Zahl mit Format 99.9 oder als symbolische Konstante <b>eco</b>
  18138. or <b>comfort</b> - was immer das Heizk&oumlrperthermostat versteht.
  18139. Symbolischen Werten kann ein zus&aumltzlicher Parameter angeh&aumlngt werden: dayTemp:16 night-temp:15. Unten folgen Beispiele<br><br>
  18140. </ul>
  18141. <p>
  18142. <ul><b>command</b><br>
  18143. Falls keine Condition in () angegeben wurde, so wird alles weitere als Command
  18144. interpretiert. Perl-Code ist in {} zu setzen. <br>
  18145. Wichtig: Falls ein Command definiert ist, so wird zu den definierten Schaltzeiten
  18146. nur(!) das Command ausgef&uumlhrt. Falls ein desired-temp Befehl abgesetzt werde soll,
  18147. so muss dies explizit angegeben werden.<br>
  18148. Folgende Parameter werden ersetzt:<br>
  18149. <ol>
  18150. <li>$NAME => das zu schaltende Device</li>
  18151. <li>$EVENT => die zu setzende Temperatur</li>
  18152. </ol>
  18153. </ul>
  18154. <p>
  18155. <ul><b>condition</b><br>
  18156. Bei Angabe einer Condition ist diese in () zu setzen und mit validem Perl-Code zu versehen.<br>
  18157. Der R&uumlckgabedatentyp der condition muss boolean sein.<br>
  18158. Die Parameter $NAME und $EVENT werden interpretiert.
  18159. </ul>
  18160. <p>
  18161. <b>Beispiele:</b>
  18162. <ul>
  18163. <code>define HCW Heating_Control Bad_Heizung 12345|05:20|21 12345|05:25|comfort 17:20|21 17:25|eco</code><br>
  18164. Mo-Fr wird die Temperatur um 05:20Uhr auf 21&deg;C, und um 05:25Uhr auf <b>comfort</b> gesetzt.
  18165. Jeden Tag wird die Temperatur um 17:20Uhr auf 21&deg;C und 17:25Uhr auf <b>eco</b> gesetzt.<p>
  18166. <code>define HCW Heating_Control WZ_Heizung 07:00|16 Mo,Di,Mi|16:00|18.5 20:00|12
  18167. {fhem("set dummy on"); fhem("set $NAME desired-temp $EVENT");}</code><br>
  18168. Zu den definierten Schaltzeiten wird nur(!) der in {} angegebene Perl-Code ausgef&uumlhrt.<p>
  18169. <code>define HCW Heating_Control WZ_Heizung Sa-So,Mi|08:00|21 (ReadingsVal("WeAreThere", "state", "no") eq "yes")</code><br>
  18170. Die zu setzende Temperatur wird nur gesetzt, falls die Dummy Variable WeAreThere = "yes" ist.<p>
  18171. <code>define HCW Heating_Control WZ_Heizung en Su-Fr|{sunrise_abs()}|21 Mo-Fr|{sunset_abs()}|16</code><br>
  18172. Das Ger&aumlt wird bei Sonnenaufgang und Sonnenuntergang geschaltet. Sprache: Englisch.<p>
  18173. <code>define HCW Heating_Control WZ_Heizung en Mo-Fr|{myFunction}|night-temp:18 Mo-Fr|{myFunction()}|dayTemp:16</code><br>
  18174. Das Ger&aumlt wird bei myFunction() geschaltet. Es wird das Kommando "night-temp 18" bzw. "dayTemp 16" gesendet.<p>
  18175. Wenn du beispielsweise nach einer Temperaturabsenkungsphase erreichen willst, dass alle Heating_Controls ihren aktuellen Wert
  18176. einstellen sollen, kannst du die Funktion <b>Heating_Control_SetTemp("HC-device")</b> or <b>Heating_Control_SetAllTemps()</b> aufrufen.<p>
  18177. Dieser Aufruf kann per notify automatisch an ein dummy gekoppelt werden:<br>
  18178. <code>define HeizStatus2 notify Heizung:.* {Heating_Control_SetAllTemps()}</code>
  18179. <br><p>
  18180. Einige Definitionen ohne weitere Erkl&aumlrung:
  18181. <code><pre>
  18182. define hc Heating_Control HeizungKueche de 7|23:35|25 34|23:30|22 23:30|16 23:15|22 8|23:45|16
  18183. define hc Heating_Control HeizungKueche de fr,$we|23:35|25 34|23:30|22 23:30|16 23:15|22 12|23:45|16
  18184. define hc Heating_Control HeizungKueche de 20:35|25 34|14:30|22 21:30|16 21:15|22 12|23:00|16
  18185. define hw Heating_Control HeizungKueche de mo-so, $we|{sunrise_abs_dat($date)}|18 mo-so, $we|{sunset_abs_dat($date)}|22
  18186. define ht Heating_Control HeizungKueche de mo-so,!$we|{sunrise_abs_dat($date)}|18 mo-so,!$we|{sunset_abs_dat($date)}|22
  18187. define hh Heating_Control HeizungKueche de {sunrise_abs_dat($date)}|19 {sunset_abs_dat($date)}|21
  18188. define hx Heating_Control HeizungKueche de 22:35|25 23:00|16
  18189. </code></pre>
  18190. Die Tagesliste kann global f&uumlr das ganze Heating_Control angegeben werden:<p>
  18191. <code><pre>
  18192. define HeizungWohnen_an_wt Heating_Control HeizungWohnen de !$we 09:00|19 (heizungAnAus("Ein"))
  18193. define HeizungWohnen_an_we Heating_Control HeizungWohnen de $we 09:00|19 (heizungAnAus("Ein"))
  18194. define HeizungWohnen_an_we Heating_Control HeizungWohnen de 78 09:00|19 (heizungAnAus("Ein"))
  18195. define HeizungWohnen_an_we Heating_Control HeizungWohnen de 57 09:00|19 (heizungAnAus("Ein"))
  18196. define HeizungWohnen_an_we Heating_Control HeizungWohnen de fr,$we 09:00|19 (heizungAnAus("Ein"))
  18197. </code></pre>
  18198. es ist mĂśglich den Parameter als Perlcode zu spezifizieren:<p>
  18199. <code><pre>
  18200. ... 7|23:35|{getParameter(13,"this")} 7|23:36|{getParameter(14,"that")}
  18201. </code></pre>
  18202. ein detailiertes Beispiel ist in Heating_Control(EN) beschrieben<p>
  18203. </ul>
  18204. </ul>
  18205. <a name="Heating_Controlset"></a>
  18206. <b>Set</b>
  18207. <code><b><font size="+1">set &lt;name&gt; &lt;value&gt;</font></b></code>
  18208. <br><br>
  18209. where <code>value</code> is one of:<br>
  18210. <pre>
  18211. <b>enable</b> # enables the Heating_Control
  18212. <b>disable</b> # disables the Heating_Control
  18213. </pre>
  18214. <b><font size="+1">Examples</font></b>:
  18215. <ul>
  18216. <code>set hc disable</code><br>
  18217. <code>set hc enable</code><br>
  18218. </ul>
  18219. </ul>
  18220. <a name="Heating_Controlget"></a>
  18221. <b>Get</b> <ul>N/A</ul><br>
  18222. <a name="Heating_ControlLogattr"></a>
  18223. <b>Attributes</b>
  18224. <ul>
  18225. <li>delayedExecutionCond <br>
  18226. definiert eine Veroegerungsfunktion. Wenn die Funktion wahr liefert, wird die Schaltung des Geraets solage verzoegert, bis die Funktion wieder falsch liefert. Das Verhalten entspricht einem Fensterkontakt.
  18227. <br><br>
  18228. <b>Beispiel:</b>
  18229. <pre>
  18230. attr wd delayedExecutionCond isDelayed("$HEATING_CONTROL","$WEEKDAYTIMER","$TIME","$NAME","$EVENT")
  18231. </pre>
  18232. Die Parameter $HEATING_CONTROL(timer Name) $TIME $NAME(device Name) $EVENT werden zur Laufzeit durch die echten Werte ersetzt.
  18233. <br><br>
  18234. <b>Beispielfunktion:</b>
  18235. <pre>
  18236. sub isDelayed($$$$$) {
  18237. my($hc, $wdt, $tim, $nam, $event ) = @_;
  18238. my $theSunIsStillshining = ...
  18239. return ($tim eq "16:30" && $theSunIsStillshining) ;
  18240. }
  18241. </pre>
  18242. </li>
  18243. <li>switchInThePast<br>
  18244. Definiert, dass ein abh&aumlngiges Ger&aumlt in der Start- oder Definitionsphase mit einem Wert aus der Vergangheit geschaltet wird auch wenn das Ger&aumlt nicht als Heizung erkannt wurde.
  18245. Heizungen werden immer mit einem Wert aus der Vergangenheit geschaltet.
  18246. </li>
  18247. <li><a href="#disable">disable</a></li>
  18248. <li><a href="#event-on-update-reading">event-on-update-reading</a></li>
  18249. <li><a href="#event-on-change-reading">event-on-change-reading</a></li>
  18250. <li><a href="#stateFormat">stateFormat</a></li>
  18251. <li>windowSensor<br>Definiert eine Liste mit Fensterkontakten. Wenn das Reading window state eines Fensterkontakts <b>open</b> ist, wird der aktuelle Schaltvorgang verz&oumlgert.</li>
  18252. </ul><br>
  18253. <p><a name="Hideki"></a>
  18254. <h3>Hideki</h3>
  18255. <div class='langLinks'>[<a href='commandref.html#Hideki'>EN</a> DE]</div>
  18256. <ul>
  18257. Das Hideki module dekodiert empfangene Nachrichten von Wettersensoren, welche das Hideki Protokoll verwenden.
  18258. <br><br>
  18259. <a name="Hideki_define"></a>
  18260. <b>Unterstuetzte Hersteller</b>
  18261. <ul>
  18262. <li>Hama</li>
  18263. <li>Bresser</li>
  18264. <li>TFA Dostman</li>
  18265. <li>Arduinos with remote Sensor lib from Randy Simons</li>
  18266. <li>Cresta</li>
  18267. <li>Hideki (Anemometer | UV sensor | Rain level meter | Thermo/hygro-sensor)</li>
  18268. <li>Alle anderen, welche das Hideki Protokoll verwenden</li>
  18269. </ul>
  18270. Hinweis, Aktuell sind nur temp/feuchte Sensoren implementiert. Bitte sendet uns Daten zu anderen Sensoren.
  18271. <a name="Hideki_define"></a>
  18272. <b>Define</b>
  18273. <ul>
  18274. <li><code>define &lt;name&gt; Hideki &lt;code&gt; </code></li>
  18275. <li>
  18276. <br>
  18277. &lt;code&gt; besteht aus dem Sensortyp und der Kanalnummer (1..5) oder wenn das Attribut longid im IO Device gesetzt ist aus einer Zufallsadresse, die durch den Sensor beim einlegen der
  18278. Batterie generiert wird (Die Adresse aendert sich bei jedem Batteriewechsel).<br>
  18279. </li>
  18280. <li>Wenn autocreate aktiv ist, dann wird der Sensor automatisch in FHEM angelegt. Das ist der empfohlene Weg, neue Sensoren hinzuzuf&uuml;gen.</li>
  18281. </ul>
  18282. <br>
  18283. <a name="Hideki_readings"></a>
  18284. <b>Generated Readings</b>
  18285. <ul>
  18286. <li>state (T:x H:y B:z)</li>
  18287. <li>temperature (&deg;C)</li>
  18288. <li>humidity (0-100)</li>
  18289. <li>battery (ok oder low)</li>
  18290. <li>channel (Der Sensor Kanal)</li>
  18291. <br><i>- Hideki spezifisch -</i>
  18292. <li>comfort_level (Status: Humidity OK... , Wet gr&ouml;&szlig;er 69% RH, Dry weiniger als 40% RH, Temperature and humidity comfortable)</li>
  18293. <li>package_number (Paketnummer in der letzten Signalfolge, startet bei 1)</li><br>
  18294. </ul>
  18295. <a name="Hideki_unset"></a>
  18296. <b>Set</b> <ul>N/A</ul><br>
  18297. <a name="Hideki_unget"></a>
  18298. <b>Get</b> <ul>N/A</ul><br>
  18299. <a name="Hideki_attr"></a>
  18300. <b>Attribute</b>
  18301. <ul>
  18302. <li><a href="#do_not_notify">do_not_notify</a></li>
  18303. <li><a href="#eventMap">eventMap</a></li>
  18304. <li><a href="#ignore">ignore</a></li>
  18305. <li><a href="#showtime">showtime</a></li>
  18306. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  18307. </ul>
  18308. <br>
  18309. </ul>
  18310. <p><a name="HourCounter"></a>
  18311. <h3>HourCounter</h3>
  18312. <ul>
  18313. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18314. hier: <a href='commandref.html#HourCounter'>HourCounter</a><br/>
  18315. </ul>
  18316. <a name="HusqvarnaAutomower"></a>
  18317. <h3>Husqvarna Automower mit Connect Modul</h3>
  18318. <div class='langLinks'>[<a href='commandref.html#HusqvarnaAutomower'>EN</a> DE]</div>
  18319. <ul>
  18320. <u><b>Voraussetzungen</b></u>
  18321. <br><br>
  18322. <ul>
  18323. <li>Dieses Modul ermĂśglicht die Kommunikation zwischen der Husqvarna Cloud und FHEM.</li>
  18324. <li>Es kann damit jeder Automower, der Ăźber ein original Husqvarna Connect Modul (SIM) verfĂźgt, Ăźberwacht und gesteuert werden.</li>
  18325. <li>Der Automower muss vorab in der Husqvarna App eingerichtet sein.</li>
  18326. </ul>
  18327. <br>
  18328. <a name="HusqvarnaAutomowerdefine"></a>
  18329. <b>Define</b>
  18330. <ul>
  18331. <br>
  18332. <code>define &lt;name&gt; HusqvarnaAutomower</code>
  18333. <br><br>
  18334. Beispiel:
  18335. <ul><br>
  18336. <code>define myMower HusqvarnaAutomower<br>
  18337. attr myMower username YOUR_USERNAME<br>
  18338. attr myMower password YOUR_PASSWORD
  18339. </code><br>
  18340. </ul>
  18341. <br><br>
  18342. Es mĂźssen die beiden Attribute <b>username</b> und <b>password</b> gesetzt werden. Diese sind identisch mit den Logindaten der Husqvarna App.
  18343. </ul>
  18344. <br>
  18345. <a name="HusqvarnaAutomowerattributes"></a>
  18346. <b>Attributes</b>
  18347. <ul>
  18348. <li>username - Email, die in der Husqvarna App verwendet wird</li>
  18349. <li>password - Passwort, das in der Husqvarna App verwendet wird</li>
  18350. </ul>
  18351. <br>
  18352. <b>Optionale Attribute</b>
  18353. <ul>
  18354. <li>mower - ID des Automowers, sofern mehrere registriert sind. Standard: 0</li>
  18355. <li>interval - Zeit in Sekunden nach denen neue Daten aus der Husqvarna Cloud abgerufen werden. Standard: 300</li>
  18356. <li>language - Spracheinstellungen, EN = original Meldungen, DE = deutsche �bersetzung. Standard: DE</li>
  18357. </ul>
  18358. <br>
  18359. <a name="HusqvarnaAutomowerreadings"></a>
  18360. <b>Readings</b>
  18361. <ul>
  18362. <li>expires - Datum wann die Session der Husqvarna Cloud abläuft</li>
  18363. <li>mower_id - ID des Automowers</li>
  18364. <li>mower_lastLatitude - letzte bekannte Position (Breitengrad)</li>
  18365. <li>mower_lastLongitude - letzte bekannte Position (Längengrad)</li>
  18366. <li>mower_mode - aktueller Arbeitsmodus (e. g. AUTO)</li>
  18367. <li>mower_name - Name des Automowers</li>
  18368. <li>mower_nextStart - nächste Startzeit</li>
  18369. <li>mower_status - aktueller Status (e. g. OFF_HATCH_CLOSED_DISABLED, PARKED_IN_CS)</li>
  18370. <li>mower_cuttingMode - Angabe welcher Bereich gemäht wird (e. g. MAIN_AREA)</li>
  18371. <li>mower_nextStartSource - detaillierter Status (e. g. COMPLETED_CUTTING_TODAY_AUTO)</li>
  18372. <li>mower_restrictedReason - Grund fĂźr Parken (e. g. SENSOR)</li>
  18373. <li>provider - Sollte immer Husqvarna sein</li>
  18374. <li>state - Status der Verbindung zur Husqvarna Cloud (e. g. connected)</li>
  18375. <li>token - aktueller Sitzungstoken fĂźr die Husqvarna Cloud</li>
  18376. <li>user_id - Nutzer-ID in der Husqvarna Cloud</li>
  18377. </ul>
  18378. </ul>
  18379. <p><a name="Hyperion"></a>
  18380. <h3>Hyperion</h3>
  18381. <div class='langLinks'>[<a href='commandref.html#Hyperion'>EN</a> DE]</div>
  18382. <ul>
  18383. Mit <i>Hyperion</i> ist es m&ouml;glich auf einem Hyperion Server die Farbe oder den Effekt einzustellen.<br>
  18384. Es ist auch m&ouml;glich eine komplette Farbkalibrierung vorzunehmen (&Auml;nderungen sind tempor&auml;r und werden nicht in die Konfigurationsdatei geschrieben).<br>
  18385. Der Hyperion Server muss dem JSON Server aktiviert haben.<br>
  18386. Es ist auch m&ouml;glich Hyperion mit verschiedenen Konfigurationsdateien zu starten (z.B. mit anderem Eingang/Grabber)<br>
  18387. <br>
  18388. <a name="Hyperion_define"></a>
  18389. <p><b>Define</b></p>
  18390. <ul>
  18391. <code>define &lt;name&gt; Hyperion &lt;IP oder HOSTNAME&gt; &lt;PORT&gt; [&lt;INTERVAL&gt;]</code><br>
  18392. </ul>
  18393. <br>
  18394. &lt;INTERVAL&gt; ist optional f&uuml;r automatisches Abfragen.<br>
  18395. <br>
  18396. <i>Nach dem Definieren des Ger&auml;tes wird einmalig und automatisch "get &lt;name&gt; statusRequest" aufgerufen um den aktuellen Status und die verf&uuml;gbaren Effekte vom Hyperion Server zu holen.</i><br>
  18397. <br>
  18398. Beispiel f&uuml;r Hyperion auf dem lokalen System:
  18399. <br><br>
  18400. <ul>
  18401. <code>define Ambilight Hyperion localhost 19444 10</code><br>
  18402. </ul>
  18403. <br>
  18404. Beispiel f&uuml;r Hyperion auf einem entfernten System:
  18405. <br><br>
  18406. <ul>
  18407. <code>define Ambilight Hyperion 192.168.1.4 19444 10</code><br>
  18408. </ul>
  18409. <br>
  18410. <a name="Hyperion_set"></a>
  18411. <p><b>set &lt;ben&ouml;tigt&gt; [optional]</b></p>
  18412. <ul>
  18413. <li>
  18414. <i>addEffect &lt;eigener_name&gt;</i><br>
  18415. f&uuml;gt den aktuellen Effekt mit dem &uuml;bergebenen Namen den eigenen Effekten hinzu<br>
  18416. kann nachtr&auml;glich im Attribut hyperionCustomEffects ge&auml;ndert werden<br>
  18417. Ger&auml;t muss dazu im Effekt Modus in einen nicht-eigenen Effekt sein und der &uuml;bergebene Name muss ein einmaliger Effektname sein
  18418. </li>
  18419. <li>
  18420. <i>adjustBlue &lt;0,0,255&gt;</i><br>
  18421. Justiert jede Farbe von Blau separat (Komma separiert) (R,G,B)<br>
  18422. Werte von 0 bis 255 in Schritten von 1
  18423. </li>
  18424. <li>
  18425. <i>adjustGreen &lt;0,255,0&gt;</i><br>
  18426. Justiere jede Farbe von Gr&uuml;n separat (Komma separiert) (R,G,B)<br>
  18427. Werte von 0 bis 255 in Schritten von 1
  18428. </li>
  18429. <li>
  18430. <i>adjustRed &lt;255,0,0&gt;</i><br>
  18431. Justiert jede Farbe von Rot separat (Komma separiert) (R,G,B)<br>
  18432. Werte von 0 bis 255 in Schritten von 1
  18433. </li>
  18434. <li>
  18435. <i>blacklevel &lt;0.00,0.00,0.00&gt;</i><br>
  18436. Justiert den Schwarzwert von jeder Farbe separat (Komma separiert) (R,G,B)<br>
  18437. Werte von 0.00 bis 1.00 in Schritten von 0.01
  18438. </li>
  18439. <li>
  18440. <i>clear &lt;1000&gt;</i><br>
  18441. einen bestimmten Priorit&auml;tskanal l&ouml;schen
  18442. </li>
  18443. <li>
  18444. <i>clearall</i><br>
  18445. alle Priorit&auml;tskan&auml;le l&ouml;schen / Umschaltung auf Ambilight
  18446. </li>
  18447. <li>
  18448. <i>colorTemperature &lt;255,255,255&gt;</i><br>
  18449. Justiert die Temperatur von jeder Farbe separat (Komma separiert) (R,G,B)<br>
  18450. Werte von 0 bis 255 in Schritten von 1
  18451. </li>
  18452. <li>
  18453. <i>configFile &lt;Dateiname&gt;</i><br>
  18454. Neustart des Hyperion Servers mit der angegebenen Konfigurationsdatei (Dateien werden automatisch aufgelistet aus Verzeichnis welches im Attribut hyperionConfigDir angegeben ist)<br>
  18455. Bitte die doppelte Endung weglassen (.config.json)<br>
  18456. Nur verf&uuml;gbar nach erfolgreichem "get &lt;name&gt; configFiles"
  18457. </li>
  18458. <li>
  18459. <i>correction &lt;255,255,255&gt;</i><br>
  18460. Justiert die Korrektur von jeder Farbe separat (Komma separiert) (R,G,B)<br>
  18461. Werte von 0 bis 255 in Schritten von 1
  18462. </li>
  18463. <li>
  18464. <i>dim &lt;Prozent&gt; [Dauer] [Priorit&auml;t]</i><br>
  18465. Dimmt das RGB Licht auf angegebenen Prozentwert, mit optionaler Dauer in Sekunden und optionaler Priorit&auml;t
  18466. </li>
  18467. <li>
  18468. <i>dimDown [delta]</i><br>
  18469. Abdunkeln des RGB Lichts um angegebenen Prozentwert oder um Prozentwert der im Attribut hyperionDimStep eingestellt ist (Voreinstellung: 10)
  18470. </li>
  18471. <li>
  18472. <i>dimUp [delta]</i><br>
  18473. Aufhellen des RGB Lichts um angegebenen Prozentwert oder um Prozentwert der im Attribut hyperionDimStep eingestellt ist (Voreinstellung: 10)
  18474. </li>
  18475. <li>
  18476. <i>effect &lt;effect&gt; [Dauer] [Priorit&auml;t] [effectargs]</i><br>
  18477. Stellt gew&auml;hlten Effekt ein (ersetzte Leerzeichen mit Unterstrichen) mit optionaler Dauer in Sekunden und optionaler Priorit&auml;t<br>
  18478. effectargs k&ouml;nnen ebenfalls &uuml;bermittelt werden - muss ein JSON String ohne Leerzeichen sein
  18479. </li>
  18480. <li>
  18481. <i>gamma &lt;1.90,1.90,1.90&gt;</i><br>
  18482. Justiert Gamma von jeder Farbe separat (Komma separiert) (R,G,B)<br>
  18483. Werte von 0.00 bis 5.00 in Schritten von 0.01
  18484. </li>
  18485. <li>
  18486. <i>luminanceGain &lt;1.00&gt;</i><br>
  18487. Justiert Helligkeit<br>
  18488. Werte von 0.00 bis 5.00 in Schritten von 0.01
  18489. </li>
  18490. <li>
  18491. <i>luminanceMinimum &lt;0.00&gt;</i><br>
  18492. Justiert Hintergrundbeleuchtung<br>
  18493. Werte von 0.00 bis 5.00 in Schritten von 0.01
  18494. </li>
  18495. <li>
  18496. <i>mode &lt;clearall|effect|off|rgb&gt;</i><br>
  18497. Setzt das Licht im gew&auml;hlten Modus mit dem zuletzt f&uuml;r diesen Modus eingestellten Wert
  18498. </li>
  18499. <li>
  18500. <i>off</i><br>
  18501. Schaltet aus mit Farbe schwarz
  18502. </li>
  18503. <li>
  18504. <i>on</i><br>
  18505. Schaltet mit letztem Modus und letztem Wert ein
  18506. </li>
  18507. <li>
  18508. <i>rgb &lt;RRGGBB&gt; [Dauer] [Priorit&auml;t]</i><br>
  18509. Setzt Farbe im RGB Hex Format mit optionaler Dauer in Sekunden und optionaler Priorit&auml;t
  18510. </li>
  18511. <li>
  18512. <i>saturationGain &lt;1.10&gt;</i><br>
  18513. Justiert S&auml;ttigung<br>
  18514. Werte von 0.00 bis 5.00 in Schritten von 0.01
  18515. </li>
  18516. <li>
  18517. <i>saturationLGain &lt;1.00&gt;</i><br>
  18518. Justiert minimale S&auml;ttigung<br>
  18519. Werte von 0.00 bis 5.00 in Schritten von 0.01
  18520. </li>
  18521. <li>
  18522. <i>threshold &lt;0.16,0.16,0.16&gt;</i><br>
  18523. Justiert den Schwellenwert von jeder Farbe separat (Komma separiert) (R,G,B)<br>
  18524. Werte von 0.00 bis 1.00 in Schritten von 0.01
  18525. </li>
  18526. <li>
  18527. <i>toggle</i><br>
  18528. Schaltet zwischen an und aus hin und her
  18529. </li>
  18530. <li>
  18531. <i>toggleMode</i><br>
  18532. Schaltet alle Modi durch
  18533. </li>
  18534. <li>
  18535. <i>valueGain &lt;1.70&gt;</i><br>
  18536. Justiert Helligkeit vom Ambilight<br>
  18537. Werte von 0.00 bis 5.00 in Schritten von 0.01
  18538. </li>
  18539. <li>
  18540. <i>whitelevel &lt;0.70,0.80,0.90&gt;</i><br>
  18541. Justiert den Wei&szlig;wert von jeder Farbe separat (Komma separiert) (R,G,B)<br>
  18542. Werte von 0.00 bis 1.00 in Schritten von 0.01
  18543. </li>
  18544. </ul>
  18545. <br>
  18546. <a name="Hyperion_get"></a>
  18547. <p><b>Get</b></p>
  18548. <ul>
  18549. <li>
  18550. <i>configFiles</i><br>
  18551. Holt die verf&uuml;gbaren Konfigurationsdateien aus dem Verzeichnis vom Attribut hyperionConfigDir<br>
  18552. Es m&uuml;ssen mindestens zwei Konfigurationsdateien im Verzeichnis vorhanden sein. Die Dateien d&uuml;rfen keine Leerzeichen enthalten und m&uuml;ssen mit .config.json enden!
  18553. </li>
  18554. <li>
  18555. <i>devStateIcon</i><br>
  18556. Zeigt den Wert des aktuellen devStateIcon
  18557. </li>
  18558. <li>
  18559. <i>statusRequest</i><br>
  18560. Holt den aktuellen Status vom Hyperion Server,<br>
  18561. holt auch die Internals vom Hyperion Server inklusive verf&uuml;gbarer Effekte
  18562. </li>
  18563. </ul>
  18564. <br>
  18565. <a name="Hyperion_attr"></a>
  18566. <p><b>Attribute</b></p>
  18567. <ul>
  18568. <li>
  18569. <i>disable</i><br>
  18570. Abfragen beenden und Verbindung trennen<br>
  18571. Voreinstellung: 0
  18572. </li>
  18573. <li>
  18574. <i>hyperionBin</i><br>
  18575. Pfad zum Hyperion Daemon<br>
  18576. OpenELEC Benutzer m&uuml;ssen eventuell hyperiond.sh als Daemon einstellen<br>
  18577. Voreinstellung: /usr/bin/hyperiond
  18578. </li>
  18579. <li>
  18580. <i>hyperionConfigDir</i><br>
  18581. Pfad zu den Hyperion Konfigurationsdateien<br>
  18582. Voreinstellung: /etc/hyperion/
  18583. </li>
  18584. <li>
  18585. <i>hyperionCustomEffects</i><br>
  18586. Leerzeichen separierte Liste von JSON Strings (ohne Leerzeichen - bitte Leerzeichen in Effektnamen durch Unterstriche ersetzen)<br>
  18587. muss name (als Anzeigename), oname (Name des basierenden Effekts) und args (die eigentlichen unterschiedlichen Effekt Argumente) beinhalten (auch genau in dieser Reihenfolge, sonst kommt beim &Uuml;bernehmen des Attributs ein Fehler und das Attribut wird nicht gespeichert)<br>
  18588. Beispiel: {"name":"Knight_Rider_speed_2","oname":"Knight_rider","args":{"color":[255,0,255],"speed":2}} {"name":"Knight_Rider_speed_4","oname":"Knight_rider","args":{"color":[0,0,255],"speed":4}}
  18589. </li>
  18590. <li>
  18591. <i>hyperionDefaultDuration</i><br>
  18592. Voreinstellung f&uuml;r Dauer<br>
  18593. Voreinstellung: 0 = unendlich
  18594. </li>
  18595. <li>
  18596. <i>hyperionDefaultPriority</i><br>
  18597. Voreinstellung f&uuml;r Priorit&auml;t<br>
  18598. Voreinstellung: 0 = h&ouml;chste Priorit&auml;t
  18599. </li>
  18600. <li>
  18601. <i>hyperionDimStep</i><br>
  18602. Dimmstufen f&uuml;r dimDown/dimUp<br>
  18603. Voreinstellung: 10 (Prozent)
  18604. </li>
  18605. <li>
  18606. <i>hyperionGainStep</i><br>
  18607. valueGain Dimmstufen f&uuml;r valueGainDown/valueGainUp<br>
  18608. Voreinstellung: 0.1
  18609. </li>
  18610. <li>
  18611. <i>hyperionNoSudo</i><br>
  18612. Deaktiviert sudo f&uuml;r nicht root SSH Benutzer<br>
  18613. Voreinstellung: 0
  18614. </li>
  18615. <li>
  18616. <i>hyperionSshUser</i><br>
  18617. Benutzername mit dem SSH Befehle ausgef&uuml;hrt werden sollen<br>
  18618. Voreinstellung: pi
  18619. </li>
  18620. <li>
  18621. <i>hyperionToggleModes</i><br>
  18622. Modi und Reihenfolge von toggleMode als kommaseparierte Liste (min. 2 Werte, max. 4 Werte, jeder Mode nur 1x)<br>
  18623. Voreinstellung: clearall,rgb,effect,off
  18624. </li>
  18625. <li>
  18626. <i>hyperionVersionCheck</i><br>
  18627. Deaktiviert Hyperion Version&uuml;berpr&uuml;fung um (eventuell) &auml;ltere Hyperion Versionen zu unterst&uuml;tzen<br>
  18628. DAS GESCHIEHT AUF EIGENE VERANTWORTUNG! FHEM K&Ouml;NNTE UNERWARTET ABST&Uuml;RTZEN!<br>
  18629. Voreinstellung: 1
  18630. </li>
  18631. <li>
  18632. <i>queryAfterSet</i><br>
  18633. Wenn gesetzt auf 0 wird der Status des Hyperion Server nach einem set Befehl nicht abgerufen, stattdessen wird der Status zum n&auml;chsten eingestellten Interval abgerufen.<br>
  18634. Das wird nur verwendet wenn das priodische Abfragen aktiviert ist, ohne dieses Abfragen wird der Status automatisch nach dem set Befehl abgerufen.<br>
  18635. Voreinstellung: 1
  18636. </li>
  18637. </ul>
  18638. <br>
  18639. <a name="Hyperion_read"></a>
  18640. <p><b>Readings</b></p>
  18641. <ul>
  18642. <li>
  18643. <i>adjustBlue</i><br>
  18644. jede Farbe von Blau separat (Komma separiert) (R,G,B)
  18645. </li>
  18646. <li>
  18647. <i>adjustGreen</i><br>
  18648. jede Farbe von Gr&uuml;n separat (Komma separiert) (R,G,B)
  18649. </li>
  18650. <li>
  18651. <i>adjustRed</i><br>
  18652. jede Farbe von Rot separat (Komma separiert) (R,G,B)
  18653. </li>
  18654. <li>
  18655. <i>blacklevel</i><br>
  18656. Schwarzwert von jeder Farbe separat (Komma separiert) (R,G,B)
  18657. </li>
  18658. <li>
  18659. <i>colorTemperature</i><br>
  18660. Temperatur von jeder Farbe separat (Komma separiert) (R,G,B)
  18661. </li>
  18662. <li>
  18663. <i>configFile</i><br>
  18664. aktive/zuletzt geladene Konfigurationsdatei, doppelte Endung (.config.json) wird weggelassen
  18665. </li>
  18666. <li>
  18667. <i>correction</i><br>
  18668. Korrektur von jeder Farbe separat (Komma separiert) (R,G,B)
  18669. </li>
  18670. <li>
  18671. <i>dim</i><br>
  18672. aktive/letzte Dimmstufe (RGB Licht)
  18673. </li>
  18674. <li>
  18675. <i>duration</i><br>
  18676. aktive/letzte/verbleibende prim&auml;re Dauer in Sekunden oder infinite f&uuml;r unendlich
  18677. </li>
  18678. <li>
  18679. <i>effect</i><br>
  18680. aktiver/letzter Effekt
  18681. </li>
  18682. <li>
  18683. <i>effectArgs</i><br>
  18684. aktive/letzte Effekt Argumente als JSON
  18685. </li>
  18686. <li>
  18687. <i>gamma</i><br>
  18688. Gamma von jeder Farbe separat (Komma separiert) (R,G,B)
  18689. </li>
  18690. <li>
  18691. <i>id</i><br>
  18692. ID vom Hyperion Server
  18693. </li>
  18694. <li>
  18695. <i>lastError</i><br>
  18696. letzter aufgetretener Fehler w&auml;hrend der Kommunikation mit dem Hyperion Server
  18697. </li>
  18698. <li>
  18699. <i>luminanceGain</i><br>
  18700. aktive Helligkeit
  18701. </li>
  18702. <li>
  18703. <i>luminanceMinimum</i><br>
  18704. aktive Hintergrundbeleuchtung
  18705. </li>
  18706. <li>
  18707. <i>mode</i><br>
  18708. aktiver Modus
  18709. </li>
  18710. <li>
  18711. <i>mode_before_off</i><br>
  18712. letzter Modus vor aus
  18713. </li>
  18714. <li>
  18715. <i>priority</i><br>
  18716. aktive/letzte Priorit&auml;t
  18717. </li>
  18718. <li>
  18719. <i>rgb</i><br>
  18720. aktive/letzte RGB Farbe
  18721. </li>
  18722. <li>
  18723. <i>saturationGain</i><br>
  18724. aktive S&auml;ttigung
  18725. </li>
  18726. <li>
  18727. <i>saturationLGain</i><br>
  18728. aktive minimale S&auml;ttigung
  18729. </li>
  18730. <li>
  18731. <i>serverResponse</i><br>
  18732. letzte Hyperion Server Antwort (success/ERROR)
  18733. </li>
  18734. <li>
  18735. <i>state</i><br>
  18736. aktiver Status
  18737. </li>
  18738. <li>
  18739. <i>threshold</i><br>
  18740. Schwellenwert von jeder Farbe separat (Komma separiert) (R,G,B)
  18741. </li>
  18742. <li>
  18743. <i>valueGain</i><br>
  18744. aktive Helligkeit vom Ambilight
  18745. </li>
  18746. <li>
  18747. <i>whitelevel</i><br>
  18748. Wei&szlig;wert von jeder Farbe separat (Komma separiert) (R,G,B)
  18749. </li>
  18750. </ul>
  18751. </ul>
  18752. <p><a name="I2C_BH1750"></a>
  18753. <h3>I2C_BH1750</h3>
  18754. <ul>
  18755. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18756. hier: <a href='commandref.html#I2C_BH1750'>I2C_BH1750</a><br/>
  18757. </ul>
  18758. <a name="I2C_BME280"></a>
  18759. <h3>I2C_BME280</h3>
  18760. <div class='langLinks'>[<a href='commandref.html#I2C_BME280'>EN</a> DE]</div>
  18761. (<a href="commandref.html#I2C_BME280">en</a> | de)
  18762. <ul>
  18763. <a name="I2C_BME280"></a>
  18764. Erm&ouml;glicht die Verwendung eines digitalen (Luft)druck/feuchtesensors BME280 &uuml;ber den I2C Bus des Raspberry Pi.<br><br>
  18765. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  18766. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  18767. <b>Das Attribut IODev muss definiert sein.</b><br>
  18768. <b>Define</b>
  18769. <ul>
  18770. <code>define BME280 &lt;BME280_name&gt; [&lt;I2C Addresse&gt;]</code><br><br>
  18771. Fehlt <code>&lt;I2C Address&gt;</code> wird 0x76 verwendet<br>
  18772. <br>
  18773. Beispiel:
  18774. <pre>
  18775. define BME280 I2C_BME280 0x77
  18776. attr BME280 poll_interval 5
  18777. </pre>
  18778. </ul>
  18779. <a name="I2C_BME280set"></a>
  18780. <b>Set</b>
  18781. <ul>
  18782. <code>set BME280 readValues</code>
  18783. <br><br>
  18784. <code>set &lt;name&gt; readValues</code><br>
  18785. Aktuelle Temperatur, Feuchte und Luftdruck Werte vom Sensor lesen.<br><br>
  18786. </ul>
  18787. <a name="I2C_BME280attr"></a>
  18788. <b>Attribute</b>
  18789. <ul>
  18790. <li>oversampling_t,oversampling_h,oversampling_p<br>
  18791. Steuert das jeweils das Oversampling der Temperatur-, Feuchte-, oder Druckmessung im Sensor.<br>
  18792. Standard: 1, g&uuml;ltige Werte: 0, 1, 2, 3, 4, 5<br>
  18793. 0 deaktiviert die jeweilige Messung<br>
  18794. 1 to 5 entspricht einem Oversampling von 2^zahl/2<br><br>
  18795. </li>
  18796. <li>poll_interval<br>
  18797. Definiert das Poll Intervall in Minuten f&uuml;r das Auslesen einer neuen Messung.<br>
  18798. Default: 5, g&uuml;ltige Werte: 1, 2, 5, 10, 20, 30<br><br>
  18799. </li>
  18800. <li>roundTemperatureDecimal, roundHumidityDecimal, roundPressureDecimal<br>
  18801. Rundet jeweils den Temperatur-, Feuchte-, oder Druckwert mit den angegebenen Nachkommastellen.<br>
  18802. Standard: 1, g&uuml;ltige Werte: 0, 1, 2<br><br>
  18803. </li>
  18804. <li>altitude<br>
  18805. Wenn dieser Wert definiert ist, wird diese Angabe zus&auml; f&uuml;r die Berechnung des
  18806. Luftdrucks bezogen auf Meeresh&ouml;he (Normalnull) NN herangezogen.<br>
  18807. Bemerkung: Dies ist ein globales Attribut.<br><br>
  18808. <code>attr global altitude 220</code>
  18809. </li>
  18810. <li><a href="#IODev">IODev</a></li>
  18811. <li><a href="#do_not_notify">do_not_notify</a></li>
  18812. <li><a href="#showtime">showtime</a></li>
  18813. </ul><br>
  18814. </ul>
  18815. <p><a name="I2C_BMP180"></a>
  18816. <h3>I2C_BMP180</h3>
  18817. <div class='langLinks'>[<a href='commandref.html#I2C_BMP180'>EN</a> DE]</div>
  18818. <ul>
  18819. <a name="I2C_BMP180"></a>
  18820. <p>
  18821. Dieses Modul erm&ouml;glicht das Auslesen der digitalen (Luft)drucksensoren
  18822. BMP085 und BMP180 &uuml;ber den I2C Bus des Raspberry Pi.<br><br>
  18823. <b>Es gibt zwei M&ouml;glichkeiten das Modul mit dem I2C Bus zu verbinden:</b><br>
  18824. <ul>
  18825. <li><b>&Uuml;ber das RPII2C Modul</b><br>
  18826. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  18827. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  18828. <b>Das Attribut IODev muss definiert sein.</b><br><br>
  18829. </li>
  18830. <li><b>&Uuml;ber die HiPi Bibliothek</b><br>
  18831. Diese beiden Zeilen m&uuml;ssen in die Datei <b>/etc/modules</b> angef&uuml;gt werden,
  18832. um die Kernel Module automatisch beim Booten des Raspberry Pis zu laden.<br>
  18833. <code><pre>i2c-bcm2708
  18834. i2c-dev</pre></code>
  18835. Installation des HiPi Perl Moduls:<br>
  18836. <code><pre>wget http://raspberry.znix.com/hipifiles/hipi-install
  18837. perl hipi-install</pre></code>
  18838. Um die Rechte f&uuml;r die I2C Devices anzupassen, folgende Datei:<br>
  18839. <code><pre> /etc/udev/rules.d/98_i2c.rules</pre></code>
  18840. mit diesem Inhalt anlegen:<br>
  18841. <code><pre>SUBSYSTEM=="i2c-dev", MODE="0666"</pre></code>
  18842. <b>Reboot</b><br><br>
  18843. Falls der Sensor am zweiten I2C Bus am Stecker P5 (nur in Version 2 des
  18844. Raspberry Pi) verwendet werden soll, muss die fett gedruckte Zeile
  18845. des folgenden Codes in das FHEM Start Skript aufgenommen werden:
  18846. <code><pre> case "$1" in
  18847. 'start')
  18848. <b>sudo hipi-i2c e 0 1</b>
  18849. ...</pre></code>
  18850. </li></ul>
  18851. <p>
  18852. <b>Define</b>
  18853. <ul>
  18854. <code>define BMP180 &lt;BMP180_name&gt; &lt;I2C_device&gt;</code><br><br>
  18855. &lt;I2C device&gt; darf nicht verwendet werden, wenn der I2C Bus &uuml;ber das RPII2C Modul angesprochen wird. F&uuml;r HiPi ist es allerdings notwendig. <br>
  18856. <br>
  18857. Beispiel:
  18858. <pre>
  18859. define BMP180 I2C_BMP180 /dev/i2c-0
  18860. attr BMP180 oversampling_settings 3
  18861. attr BMP180 poll_interval 5
  18862. </pre>
  18863. <pre>
  18864. define BMP180 I2C_BMP180
  18865. attr BMP180 IODev RPiI2CMod
  18866. attr BMP180 oversampling_settings 3
  18867. attr BMP180 poll_interval 5
  18868. </pre>
  18869. </ul>
  18870. <a name="I2C_BMP180set"></a>
  18871. <b>Set</b>
  18872. <ul>
  18873. <code>set BMP180 readValues</code>
  18874. <br><br>
  18875. Liest die aktuelle Temperatur und den Luftdruck des Sensors aus.<br>
  18876. Dies wird automatisch nach Ablauf des definierten Intervalls ausgef&uuml;hrt.
  18877. Wenn der aktuelle Wert gelesen werden soll, kann dieser Befehl auch manuell
  18878. ausgef&uuml;hrt werden.
  18879. <br><br>
  18880. </ul>
  18881. <a name="I2C_BMP180get"></a>
  18882. <b>Get</b>
  18883. <ul>
  18884. N/A
  18885. </ul>
  18886. <br>
  18887. <a name="I2C_BMP180attr"></a>
  18888. <b>Attribute</b>
  18889. <ul>
  18890. <li>oversampling_settings<br>
  18891. Steuert das Oversampling der Druckmessung im Sensor.<br>
  18892. Default: 3, g&uuml;ltige Werte: 0, 1, 2, 3<br><br>
  18893. </li>
  18894. <li>poll_interval<br>
  18895. Definiert das Poll Intervall in Minuten f&uuml;r das Auslesen einer neuen Messung.<br>
  18896. Default: 5, g&uuml;ltige Werte: 1, 2, 5, 10, 20, 30<br><br>
  18897. </li>
  18898. <li>roundTemperatureDecimal<br>
  18899. Rundet den Temperaturwert mit den angegebenen Nachkommastellen.<br>
  18900. Default: 1, g&uuml;ltige Werte: 0, 1, 2<br><br>
  18901. </li>
  18902. <li>roundPressureDecimal<br>
  18903. Rundet die Drucksensorwerte mit den angegebenen Nachkommastellen.<br>
  18904. Default: 1, valid values: 0, 1, 2<br><br>
  18905. </li>
  18906. <li>altitude<br>
  18907. Wenn dieser Wert definiert ist, wird diese Angabe zus&auml;tzlich f&uuml;r die Berechnung des
  18908. Luftdrucks bezogen auf Meeresh&ouml;he (Normalnull) NN herangezogen.<br>
  18909. Bemerkung: Dies ist ein globales Attribut.<br><br>
  18910. <code>attr global altitude 220</code>
  18911. </li>
  18912. </ul>
  18913. <br>
  18914. <b>Hinweise</b>
  18915. <ul>
  18916. <li>I2C-Bustiming<br>
  18917. Zur Abfrage des Sensors wird von einer I2C-Schnittstelle mit blockierendem IO-Zugriff (z.B. RPII2C) ausgegangen.
  18918. Bei I2C-Schnittstellen, die nicht-blockierend arbeiten (z.B. FRM mit Ethernet), kann es zu Verarbeitungsfehlern kommen,
  18919. insbesondere wenn das Attribut oversampling_settings auf einen Wert gr&ouml;&szlig;er 1 eingestellt wird.
  18920. Dies l&auml;sst sich je nach I2C-Schnittstelle kompensieren. Bei Firmata empfiehlt es sich,
  18921. das Attribut i2c-config im Modul FRM auf einen Wert von ca. 30000 Mikrosekunden einzustellen.<br><br>
  18922. </li>
  18923. </ul>
  18924. <br>
  18925. </ul>
  18926. <p><a name="I2C_DS1307"></a>
  18927. <h3>I2C_DS1307</h3>
  18928. <ul>
  18929. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  18930. hier: <a href='commandref.html#I2C_DS1307'>I2C_DS1307</a><br/>
  18931. </ul>
  18932. <a name="I2C_EEPROM"></a>
  18933. <h3>I2C_EEPROM</h3>
  18934. <div class='langLinks'>[<a href='commandref.html#I2C_EEPROM'>EN</a> DE]</div>
  18935. <ul>
  18936. <a name="I2C_EEPROM"></a>
  18937. Erm&ouml;glicht die Verwendung I2C EEPROM.
  18938. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  18939. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  18940. <b>Das Attribut IODev muss definiert sein.</b><br>
  18941. <a name="I2C_EEPROMDefine"></a><br>
  18942. <b>Define</b>
  18943. <ul>
  18944. <code>define &lt;name&gt; I2C_EEPROM &lt;I2C Address&gt;</code><br>
  18945. Der Wert <code>&lt;I2C Address&gt;</code> ist ohne das Richtungsbit
  18946. </ul>
  18947. <a name="I2C_EEPROMSet"></a>
  18948. <b>Set</b>
  18949. <ul>
  18950. <code>set &lt;name&gt; &lt;byte address&gt; &lt;value&gt;</code><br><br>
  18951. <code>&lt;byte address&gt;</code> ist die Registeradresse (0..IC abh&auml;ngig) und <code>&lt;value&gt;</code> der Registerinhalt (0..255)<br>
  18952. Beide Zahlen k&ouml;nnen sowohl eine Dezimal- als auch eine Hexadezimalzahl sein.<br>
  18953. <br>
  18954. Beispiel:
  18955. <ul>
  18956. <code>set eeprom1 0x02 0xAA</code><br>
  18957. <code>set eeprom1 2 170</code><br>
  18958. </ul><br>
  18959. </ul>
  18960. <a name="I2C_EEPROMGet"></a>
  18961. <b>Get</b>
  18962. <ul>
  18963. <code>get &lt;name&gt;</code>
  18964. <br><br>
  18965. Aktualisierung aller Werte
  18966. </ul><br>
  18967. <ul>
  18968. <code>get &lt;name&gt; &lt;byte address&gt; [Bit&lt;bitnumber(0..7)&gt;]</code>
  18969. <br><br>
  18970. Gibt den Inhalt des in &lt;byte address&gt; angegebenen Registers zur&uuml;ck, bzw. ein einzelnes Bit davon.<br>
  18971. Achtung mit diesem Befehl werden nur die Werte aus den Readings angezeigt und nicht der Registerinhalt selbst!
  18972. </ul><br>
  18973. <a name="I2C_EEPROMAttr"></a>
  18974. <b>Attribute</b>
  18975. <ul>
  18976. <li>poll_interval<br>
  18977. Aktualisierungsintervall aller Werte in Minuten.<br>
  18978. Standard: -, g&uuml;ltige Werte: Dezimalzahl<br><br>
  18979. </li>
  18980. <li>EEPROM_size<br>
  18981. Speichergröße des EEPROM<br>
  18982. Standard: 128, g&uuml;ltige Werte: 128 (128bit), 2k (2048bit)<br><br>
  18983. </li>
  18984. <li><a href="#IODev">IODev</a></li>
  18985. <li><a href="#ignore">ignore</a></li>
  18986. <li><a href="#do_not_notify">do_not_notify</a></li>
  18987. <li><a href="#showtime">showtime</a></li>
  18988. </ul>
  18989. <br>
  18990. </ul>
  18991. <p><a name="I2C_EMC1001"></a>
  18992. <h3>I2C_EMC1001</h3>
  18993. <div class='langLinks'>[<a href='commandref.html#I2C_EMC1001'>EN</a> DE]</div>
  18994. (<a href="commandref.html#I2C_EMC1001">en</a> | de)
  18995. <ul>
  18996. <a name="I2C_EMC1001"></a>
  18997. Erm&ouml;glicht die Verwendung eines digitalen Temperatur EMC1001 &uuml;ber den I2C Bus des Raspberry Pi.<br><br>
  18998. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  18999. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19000. <b>Das Attribut IODev muss definiert sein.</b><br>
  19001. <b>Define</b>
  19002. <ul>
  19003. <code>define EMC1001 &lt;EMC1001_name&gt; [&lt;I2C Addresse&gt;]</code><br><br>
  19004. Fehlt <code>&lt;I2C Address&gt;</code> wird 0x48 verwendet<br>
  19005. <br>
  19006. Beispiel:
  19007. <pre>
  19008. define EMC1001 I2C_EMC1001 0x48
  19009. attr EMC1001 poll_interval 5
  19010. attr roundTemperatureDecimal 2
  19011. </pre>
  19012. </ul>
  19013. <a name="I2C_EMC1001set"></a>
  19014. <b>Set</b>
  19015. <ul>
  19016. <code>set EMC1001 readValues</code>
  19017. <br><br>
  19018. <code>set &lt;name&gt; readValues</code><br>
  19019. Aktuelle Temperatur Werte vom Sensor lesen.<br><br>
  19020. </ul>
  19021. <a name="I2C_EMC1001attr"></a>
  19022. <b>Attribute</b>
  19023. <ul>
  19024. <li>poll_interval<br>
  19025. Definiert das Poll Intervall in Minuten f&uuml;r das Auslesen einer neuen Messung.<br>
  19026. Default: 5, g&uuml;ltige Werte: 1, 2, 5, 10, 20, 30<br><br>
  19027. </li>
  19028. <li>roundTemperatureDecimal<br>
  19029. Rundet jeweils den Temperaturwert mit den angegebenen Nachkommastellen.<br>
  19030. Standard: 1, g&uuml;ltige Werte: 0, 1, 2<br><br>
  19031. </li>
  19032. <li><a href="#IODev">IODev</a></li>
  19033. <li><a href="#do_not_notify">do_not_notify</a></li>
  19034. <li><a href="#showtime">showtime</a></li>
  19035. </ul><br>
  19036. </ul>
  19037. <p><a name="I2C_HDC1008"></a>
  19038. <h3>I2C_HDC1008</h3>
  19039. <div class='langLinks'>[<a href='commandref.html#I2C_HDC1008'>EN</a> DE]</div>
  19040. <ul>
  19041. <a name="I2C_HDC1008"></a>
  19042. Erm&ouml;glicht die Verwendung eines I2C_HDC1008 I2C Feuchtesensors von <a href=" http://www.ti.com">Texas Instruments</a>.
  19043. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19044. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19045. <b>Das Attribut IODev muss definiert sein.</b><br>
  19046. <a name="I2C_HDC1008Define"></a><br>
  19047. <b>Define</b>
  19048. <ul>
  19049. <code>define &lt;name&gt; I2C_HDC1008 [&lt;I2C Address&gt;]</code><br>
  19050. Der Wert <code>&lt;I2C Address&gt;</code> ist ein zweistelliger Hex-Wert<br>
  19051. </ul>
  19052. <a name="I2C_HDC1008Set"></a>
  19053. <b>Set</b>
  19054. <ul>
  19055. <code>set &lt;name&gt; Update</code><br>
  19056. Aktuelle Temperatur und Feuchte Werte vom Sensor lesen.<br><br>
  19057. <code>set &lt;name&gt; Reset</code><br>
  19058. Setzt den Sensor zur&uuml;ck
  19059. <code>set &lt;name&gt; Heater {on|off}</code><br>
  19060. Schaltet das Heizelement des Sensors an oder aus
  19061. </ul>
  19062. <a name="I2C_HDC1008Attr"></a>
  19063. <b>Attribute</b>
  19064. <ul>
  19065. <li>interval<br>
  19066. Aktualisierungsintervall aller Werte in Minuten.<br>
  19067. Standard: 5, g&uuml;ltige Werte: 1,2,5,10,20,30<br><br>
  19068. </li>
  19069. <li>Resolution_Temperature<br>
  19070. Genauigkeit mit der die Temperatur gemessen werden soll.<br>
  19071. Standard: 14Bit, g&uuml;ltige Werte: 11Bit, 14Bit<br><br>
  19072. </li>
  19073. <li>Resolution_Humidity<br>
  19074. Genauigkeit mit der die Feuchtigkeit gemessen werden soll.<br>
  19075. Standard: 14Bit, g&uuml;ltige Werte: 8Bit, 11Bit, 14Bit<br><br>
  19076. </li>
  19077. <li>roundHumidityDecimal<br>
  19078. Anzahl Dezimalstellen f&uuml;r den Feuchtewert<br>
  19079. Standard: 1, g&uuml;ltige Werte: 0 1 2<br><br>
  19080. </li>
  19081. <li>roundTemperatureDecimal<br>
  19082. Anzahl Dezimalstellen f&uuml;r den Temperaturwert<br>
  19083. Standard: 1, g&uuml;ltige Werte: 0,1,2<br><br>
  19084. </li>
  19085. <li><a href="#IODev">IODev</a></li>
  19086. </ul><br>
  19087. </ul>
  19088. =end html
  19089. =cut
  19090. <a name="I2C_K30"></a>
  19091. <h3>I2C_K30</h3>
  19092. <div class='langLinks'>[<a href='commandref.html#I2C_K30'>EN</a> DE]</div>
  19093. (<a href="commandref.html#I2C_K30">en</a> | de)
  19094. <ul>
  19095. <a name="I2C_K30"></a>
  19096. Erm&ouml;glicht die Verwendung eines K30 CO2 Sensors von <a href="www.senseair.com">SenseAir</a>. Der Sensor
  19097. muss &uuml;ber I2C angeschlossen sein (siehe z.B.
  19098. <a href="http://co2meters.com/Documentation/AppNotes/AN142-RaspberryPi-K_series.pdf">Application Note 142 "K-30/K-33 I2C on Raspberry Pi"</a>
  19099. von co2meters.com).
  19100. Auf meinem Raspberry Pi 2 musste ich die I2C-Frequenz auf 90 kHz reduzieren, sonst sind die meisten I2C-Zugriffe fehlgeschlagen
  19101. ("options i2c_bcm2708 baudrate=90000", z.B. in /etc/modprobe.d/i2c-options.conf eintragen). Nach wie vor gehen ca. 5 % der Zugriffe schief,
  19102. aber das scheint normal zu sein - zumindest warnt das Datenblatt, dass I2C-Zugriffe fehlschlagen k&ouml;nnen, wenn der Microcontroller auf dem
  19103. Sensor gerade mit einer CO2-Messung besch&auml;ftigt ist.
  19104. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19105. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19106. <b>Das Attribut IODev muss definiert sein.</b><br>
  19107. <a name="I2C_K30Define"></a><br>
  19108. <b>Define</b>
  19109. <ul>
  19110. <code>define &lt;name&gt; I2C_K30 [&lt;I2C Address&gt;]</code><br>
  19111. Der Wert <code>&lt;I2C Address&gt;</code> ist die konfigurierte I2C-Adresse des Sensors (Standard: 104 bzw. 0x68)<br>
  19112. </ul>
  19113. <a name="I2C_K30Set"></a>
  19114. <b>Set</b>
  19115. <ul>
  19116. <code>set &lt;name&gt; readValues</code><br>
  19117. Aktuellen CO2 Wert vom Sensor lesen.<br><br>
  19118. </ul>
  19119. <a name="I2C_K30Attr"></a>
  19120. <b>Attribute</b>
  19121. <ul>
  19122. <li>poll_interval<br>
  19123. Aktualisierungsintervall aller Werte in Minuten.<br>
  19124. Standard: 5, g&uuml;ltige Werte: 1,2,5,10,20,30<br><br>
  19125. </li>
  19126. <li><a href="#IODev">IODev</a></li>
  19127. <li><a href="#do_not_notify">do_not_notify</a></li>
  19128. <li><a href="#showtime">showtime</a></li>
  19129. </ul><br>
  19130. </ul>
  19131. <p><a name="I2C_LCD"></a>
  19132. <h3>I2C_LCD</h3>
  19133. <ul>
  19134. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  19135. hier: <a href='commandref.html#I2C_LCD'>I2C_LCD</a><br/>
  19136. </ul>
  19137. <a name="I2C_LM75A"></a>
  19138. <h3>I2C_LM75A</h3>
  19139. <div class='langLinks'>[<a href='commandref.html#I2C_LM75A'>EN</a> DE]</div>
  19140. (<a href="commandref.html#I2C_LM75A">en</a> | de)
  19141. <ul>
  19142. <a name="I2C_LM75A"></a>
  19143. Erm&ouml;glicht die Verwendung eines LM75A I2C Temperatursensors.</a>.
  19144. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19145. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19146. <b>Das Attribut IODev muss definiert sein.</b><br>
  19147. <a name="I2C_LM75ADefine"></a><br>
  19148. <b>Define</b>
  19149. <ul>
  19150. <code>define &lt;name&gt; I2C_LM75A [&lt;I2C Address&gt;]</code><br>
  19151. Der Wert <code>&lt;I2C Address&gt;</code> ist ein zweistelliger Hex-Wert<br>
  19152. </ul>
  19153. <a name="I2C_LM75ASet"></a>
  19154. <b>Set</b>
  19155. <ul>
  19156. <code>set &lt;name&gt; readValues</code><br>
  19157. Aktuelle Temperatur Werte vom Sensor lesen.<br><br>
  19158. </ul>
  19159. <a name="I2C_LM75AAttr"></a>
  19160. <b>Attribute</b>
  19161. <ul>
  19162. <li>poll_interval<br>
  19163. Aktualisierungsintervall aller Werte in Minuten.<br>
  19164. Standard: 5, g&uuml;ltige Werte: 1,2,5,10,20,30<br><br>
  19165. </li>
  19166. <li>roundTemperatureDecimal<br>
  19167. Anzahl Dezimalstellen f&uuml;r den Temperaturwert<br>
  19168. Standard: 1, g&uuml;ltige Werte: 0 1 2<br><br>
  19169. </li>
  19170. <li><a href="#IODev">IODev</a></li>
  19171. <li><a href="#do_not_notify">do_not_notify</a></li>
  19172. <li><a href="#showtime">showtime</a></li>
  19173. </ul><br>
  19174. </ul>
  19175. <p><a name="I2C_MCP23008"></a>
  19176. <h3>I2C_MCP23008</h3>
  19177. <div class='langLinks'>[<a href='commandref.html#I2C_MCP23008'>EN</a> DE]</div>
  19178. (<a href="commandref.html#I2C_MCP23008">en</a> | de)
  19179. <ul>
  19180. <a name="I2C_MCP23008"></a>
  19181. Erm&ouml;glicht die Verwendung eines MCP23008 I2C 8 Bit Portexenders.
  19182. Auf einem Raspberry Pi kann der Interrupt Pin des MCP23008 mit einem GPIO verbunden werden und &uuml;ber die Interrupt Funktionen von <a href="#RPI_GPIO">RPI_GPIO</a> l&auml;sst sich dann ein get f&uuml;r den MCP23008 bei Pegel&auml;nderung ausl&ouml;sen.<br>
  19183. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19184. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19185. <b>Das Attribut IODev muss definiert sein.</b><br>
  19186. <a name="I2C_MCP23008Define"></a><br>
  19187. <b>Define</b>
  19188. <ul>
  19189. <code>define &lt;name&gt; I2C_MCP23008 &lt;I2C Address&gt;</code><br>
  19190. Der Wert <code>&lt;I2C Address&gt;</code> ist ohne das Richtungsbit<br>
  19191. </ul>
  19192. <a name="I2C_MCP23008Set"></a>
  19193. <b>Set</b>
  19194. <ul>
  19195. <code>set &lt;name&gt; &lt;port[,port[...]]&gt; &lt;value&gt;</code><br><br>
  19196. <code>&lt;port&gt;</code> kann PortA0 bis PortA7 annehmen und <code>&lt;value&gt;</code> folgende Werte:<br>
  19197. <ul>
  19198. <code>
  19199. off<br>
  19200. on<br>
  19201. </code>
  19202. </ul>
  19203. <br>
  19204. Beispiel:
  19205. <ul>
  19206. <code>set mod1 PortA4 on</code><br>
  19207. <code>set mod1 PortA4,PortA6 off</code><br>
  19208. <code>set mod1 PortA4,A6 on</code><br>
  19209. </ul><br>
  19210. </ul>
  19211. <a name="I2C_MCP23008Get"></a>
  19212. <b>Get</b>
  19213. <ul>
  19214. <code>get &lt;name&gt;</code>
  19215. <br><br>
  19216. Aktualisierung aller Werte
  19217. </ul><br>
  19218. <a name="I2C_MCP23008Attr"></a>
  19219. <b>Attribute</b>
  19220. <ul>
  19221. <li>poll_interval<br>
  19222. Aktualisierungsintervall aller Werte in Minuten.<br>
  19223. Standard: -, g&uuml;ltige Werte: Dezimalzahl<br><br>
  19224. </li>
  19225. <li>OutputPorts<br>
  19226. Durch Komma getrennte Ports die als Ausg&auml;nge genutzt werden sollen.<br>
  19227. Nur Ports in dieser Liste k&ouml;nnen gesetzt werden.<br>
  19228. Standard: -, g&uuml;ltige Werte: A0-A7<br><br>
  19229. </li>
  19230. <li>OnStartup<br>
  19231. Durch Komma getrennte Output Ports und ihr gew&uuml;nschter Status nach dem Start.<br>
  19232. Ohne dieses Attribut werden alle Ausg&auml;nge nach dem Start auf den letzten Status gesetzt.<br>
  19233. Standard: -, g&uuml;ltige Werte: &lt;port&gt;=on|off|last wobei &lt;port&gt; = A0-A7<br><br>
  19234. </li>
  19235. <li>Pullup<br>
  19236. Durch Komma getrennte Input Ports, bei denen der interne 100k pullup aktiviert werden soll.<br>
  19237. Standard: -, g&uuml;ltige Werte: A0-A7<br><br>
  19238. </li>
  19239. <li>Interrupt<br>
  19240. Durch Komma getrennte Input Ports, die einen Interrupt auf IntA/B ausl&ouml;sen.<br>
  19241. Standard: -, g&uuml;ltige Werte: A0-A7<br><br>
  19242. </li>
  19243. <li>invert_input<br>
  19244. Durch Komma getrennte Input Ports, die reverse Logik nutzen.<br>
  19245. Standard: -, g&uuml;ltige Werte: A0-A7<br><br>
  19246. </li>
  19247. <li>InterruptOut<br>
  19248. Einstellungen f&uuml;r den INT Pin<br>
  19249. g&uuml;ltige Werte:<br>
  19250. <ul>
  19251. <li>
  19252. active-low (INT ist active low)
  19253. </li>
  19254. <li>
  19255. active-high (INT ist active high)
  19256. </li>
  19257. <li>
  19258. open-drain (INT ist open drain)
  19259. </li><br>
  19260. </ul>
  19261. </li>
  19262. <li><a href="#IODev">IODev</a></li>
  19263. <li><a href="#ignore">ignore</a></li>
  19264. <li><a href="#do_not_notify">do_not_notify</a></li>
  19265. <li><a href="#showtime">showtime</a></li>
  19266. </ul>
  19267. <br>
  19268. </ul>
  19269. <p><a name="I2C_MCP23017"></a>
  19270. <h3>I2C_MCP23017</h3>
  19271. <div class='langLinks'>[<a href='commandref.html#I2C_MCP23017'>EN</a> DE]</div>
  19272. (<a href="commandref.html#I2C_MCP23017">en</a> | de)
  19273. <ul>
  19274. <a name="I2C_MCP23017"></a>
  19275. Erm&ouml;glicht die Verwendung eines MCP23017 I2C 16 Bit Portexenders.
  19276. Auf einem Raspberry Pi kann der Interrupt Pin des MCP23017 mit einem GPIO verbunden werden und &uuml;ber die Interrupt Funktionen von <a href="#RPI_GPIO">RPI_GPIO</a> l&auml;sst sich dann ein get f&uuml;r den MCP23017 bei Pegel&auml;nderung ausl&ouml;sen.<br>
  19277. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19278. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19279. <b>Das Attribut IODev muss definiert sein.</b><br>
  19280. <a name="I2C_MCP23017Define"></a><br>
  19281. <b>Define</b>
  19282. <ul>
  19283. <code>define &lt;name&gt; I2C_MCP23017 &lt;I2C Address&gt;</code><br>
  19284. Der Wert <code>&lt;I2C Address&gt;</code> ist ohne das Richtungsbit<br>
  19285. </ul>
  19286. <a name="I2C_MCP23017Set"></a>
  19287. <b>Set</b>
  19288. <ul>
  19289. <code>set &lt;name&gt; &lt;port[,port[...]]&gt; &lt;value&gt;</code><br><br>
  19290. <code>&lt;port&gt;</code> kann PortA0 bis PortA7 / PortB0 bis PortB7 annehmen und <code>&lt;value&gt;</code> folgende Werte:<br>
  19291. <ul>
  19292. <code>
  19293. off<br>
  19294. on<br>
  19295. </code>
  19296. </ul>
  19297. <br>
  19298. Beispiel:
  19299. <ul>
  19300. <code>set mod1 PortA4 on</code><br>
  19301. <code>set mod1 PortA4,PortB6 off</code><br>
  19302. <code>set mod1 PortA4,B6 on</code><br>
  19303. </ul><br>
  19304. </ul>
  19305. <a name="I2C_MCP23017Get"></a>
  19306. <b>Get</b>
  19307. <ul>
  19308. <code>get &lt;name&gt;</code>
  19309. <br><br>
  19310. Aktualisierung aller Werte
  19311. </ul><br>
  19312. <a name="I2C_MCP23017Attr"></a>
  19313. <b>Attribute</b>
  19314. <ul>
  19315. <li>poll_interval<br>
  19316. Aktualisierungsintervall aller Werte in Minuten.<br>
  19317. Standard: -, g&uuml;ltige Werte: Dezimalzahl<br><br>
  19318. </li>
  19319. <li>OutputPorts<br>
  19320. Durch Komma getrennte Ports die als Ausg&auml;nge genutzt werden sollen.<br>
  19321. Nur Ports in dieser Liste k&ouml;nnen gesetzt werden.<br>
  19322. Standard: -, g&uuml;ltige Werte: A0-A7, B0-B7<br><br>
  19323. </li>
  19324. <li>OnStartup<br>
  19325. Durch Komma getrennte Output Ports und ihr gew&uuml;nschter Status nach dem Start.<br>
  19326. Ohne dieses Attribut werden alle Ausg&auml;nge nach dem Start auf den letzten Status gesetzt.<br>
  19327. Standard: -, g&uuml;ltige Werte: &lt;port&gt;=on|off|last wobei &lt;port&gt; = A0-A7, B0-B7<br><br>
  19328. </li>
  19329. <li>Pullup<br>
  19330. Durch Komma getrennte Input Ports, bei denen der interne 100k pullup aktiviert werden soll.<br>
  19331. Standard: -, g&uuml;ltige Werte: A0-A7, B0-B7<br><br>
  19332. </li>
  19333. <li>Interrupt<br>
  19334. Durch Komma getrennte Input Ports, die einen Interrupt auf IntA/B ausl&ouml;sen.<br>
  19335. Standard: -, g&uuml;ltige Werte: A0-A7, B0-B7<br><br>
  19336. </li>
  19337. <li>invert_input<br>
  19338. Durch Komma getrennte Input Ports, die reverse Logik nutzen.<br>
  19339. Standard: -, g&uuml;ltige Werte: A0-A7, B0-B7<br><br>
  19340. </li>
  19341. <li>InterruptOut<br>
  19342. Einstellungen f&uuml;r die INTA/INTB Pins<br>
  19343. g&uuml;ltige Werte:<br>
  19344. <ul>
  19345. <li>
  19346. separate_active-low (INTA/INTB sind f&uuml;r PortA/PortB getrennt und mit active low Logik)
  19347. </li>
  19348. <li>
  19349. separate_active-high (INTA/INTB sind f&uuml;r PortA/PortB getrennt und mit active high Logik)
  19350. </li>
  19351. <li>
  19352. separate_open-drain (INTA/INTB sind f&uuml;r PortA/PortB getrennt und arbeiten als open drain)
  19353. </li>
  19354. <li>
  19355. connected_active-low (INTA/INTB sind intern verbunden und mit active low Logik)
  19356. </li>
  19357. <li>
  19358. connected_active-high (INTA/INTB sind intern verbunden und mit active high Logik)
  19359. </li>
  19360. <li>
  19361. connected_open-drain (INTA/INTB sind intern verbunden und arbeiten als open drain)
  19362. </li><br>
  19363. </ul>
  19364. </li>
  19365. <li><a href="#IODev">IODev</a></li>
  19366. <li><a href="#ignore">ignore</a></li>
  19367. <li><a href="#do_not_notify">do_not_notify</a></li>
  19368. <li><a href="#showtime">showtime</a></li>
  19369. </ul>
  19370. <br>
  19371. </ul>
  19372. <p><a name="I2C_MCP342x"></a>
  19373. <h3>I2C_MCP342x</h3>
  19374. <div class='langLinks'>[<a href='commandref.html#I2C_MCP342x'>EN</a> DE]</div>
  19375. (<a href="commandref.html#I2C_MCP342x">en</a> | de)
  19376. <ul>
  19377. <a name="I2C_MCP342x"></a>
  19378. Erm&ouml;glicht die Verwendung eines MCP3422/3/4 I2C A/D Wandler.
  19379. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19380. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19381. <b>Das Attribut IODev muss definiert sein.</b><br>
  19382. <a name="I2C_MCP342xDefine"></a><br>
  19383. <b>Define</b>
  19384. <ul>
  19385. <code>define &lt;name&gt; I2C_MCP342x [[&lt;I2C Address&gt;] &lt;n channels&gt;]</code><br>
  19386. Der Wert <code>&lt;I2C Address&gt;</code> ist die I2C Adresse ohne Richtungsbit und &lt;n channels&gt; die Anzahl der A/D Kanäle.<br>
  19387. </ul>
  19388. <a name="I2C_MCP342xGet"></a>
  19389. <b>Get</b>
  19390. <ul>
  19391. <code>get &lt;name&gt; [[[&lt;channel&gt;] &lt;resolution&gt; ] &lt;gain&gt;]</code><br>
  19392. Aktuelle Werte vom entstrechenden &lt;channel&gt; lesen. &lt;resolution&gt; und &lt;gain&gt; &uuml;berschreiben die entsprechenden Attribute für diesen Lesevorgang<br><br>
  19393. </ul>
  19394. <a name="I2C_MCP342xAttr"></a>
  19395. <b>Attribute</b>
  19396. <ul>
  19397. <li>poll_interval<br>
  19398. Aktualisierungsintervall aller Werte in Minuten.<br>
  19399. Standard: 5, g&uuml;ltige Werte: 1,2,5,10,20,30<br><br>
  19400. </li>
  19401. Folgende Attribute existieren separat f&uuml;r alle Kan&auml;le.<br><br>
  19402. <li>ch1resolution<br>
  19403. Aufl&ouml;sung des Kanals<br>
  19404. Je gr&ouml;&szlig;er die Aufl&ouml;sung desto l&auml;nger die Lesezeit.<br>
  19405. Standard: 12, g&uuml;ltige Werte: 12,14,16,18<br><br>
  19406. </li>
  19407. <li>ch1gain<br>
  19408. Verst&auml;rkungsfaktor<br>
  19409. Wichtig: Der Verst&auml;rkungsfaktor verringert den Messbereich entsprechend und kann zu einem &Uuml;berlauf f&uuml;hren. In diesem Fall wird "overflow" an das reading angeh&auml;ngt.<br>
  19410. Standard: 1, g&uuml;ltige Werte: 1,2,4,8<br><br>
  19411. </li>
  19412. <li>ch1factor<br>
  19413. Korrekturfaktor (Wird zum Kanalwert multipliziert.)<br>
  19414. Standard: 1, g&uuml;ltige Werte: Zahl<br><br>
  19415. </li>
  19416. <li>ch1roundDecimal<br>
  19417. Anzahl Dezimalstellen f&uuml;r den Messwert<br>
  19418. Standard: 3, g&uuml;ltige Werte: 0,1,2,3<br><br>
  19419. </li>
  19420. <li><a href="#IODev">IODev</a></li>
  19421. <li><a href="#do_not_notify">do_not_notify</a></li>
  19422. <li><a href="#showtime">showtime</a></li>
  19423. </ul><br>
  19424. </ul>
  19425. <p><a name="I2C_MMA845X"></a>
  19426. <h3>I2C_MMA845X</h3>
  19427. <ul>
  19428. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  19429. hier: <a href='commandref.html#I2C_MMA845X'>I2C_MMA845X</a><br/>
  19430. </ul>
  19431. <a name="I2C_PCA9532"></a>
  19432. <h3>I2C_PCA9532</h3>
  19433. <div class='langLinks'>[<a href='commandref.html#I2C_PCA9532'>EN</a> DE]</div>
  19434. (<a href="commandref.html#I2C_PCA9532">en</a> | de)
  19435. <ul>
  19436. <a name="I2C_PCA9532"></a>
  19437. Erm&ouml;glicht die Verwendung eines PCA9532 I2C 16 Kanal PWM IC.
  19438. Das PCA9532 hat 2 unabh&auml;ngige PWM Stufen. Jeder Kanal kanne einer der Stufen zugeordnet werden oder direkt auf off/on gesetzt werden.
  19439. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19440. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19441. <b>Das Attribut IODev muss definiert sein.</b><br>
  19442. <a name="I2C_PCA9532Define"></a><br>
  19443. <b>Define</b>
  19444. <ul>
  19445. <code>define &lt;name&gt; I2C_PCA9532 &lt;I2C Address&gt;</code><br>
  19446. Der Wert <code>&lt;I2C Address&gt;</code> ist ein zweistelliger Hex-Wert<br>
  19447. </ul>
  19448. <a name="I2C_PCA9532Set"></a>
  19449. <b>Set</b>
  19450. <ul>
  19451. <code>set &lt;name&gt; &lt;port&gt; &lt;value&gt;</code><br><br>
  19452. <ul>
  19453. <li>wenn als <code>&lt;port&gt;</code> Port0 bis Port15 verwendet wird, dann ist <code>&lt;value&gt;</code> einer dieser Werte:<br>
  19454. <ul>
  19455. <code>
  19456. off<br>
  19457. on<br>
  19458. PWM0 (Port wird auf PWM0 Frequenz- und Pulsweiteneinstellung gesetzt)<br>
  19459. PWM1 (Port wird auf PWM1 Frequenz- und Pulsweiteneinstellung gesetzt)<br>
  19460. </code>
  19461. </ul>
  19462. </li>
  19463. <li>
  19464. wenn als <code>&lt;port&gt;</code> PWM0 oder PWM1 verwendet wird, ist <code>&lt;value&gt;</code> ein Wert zwischen 0 und 255 ensprechend der Pulsweite der PWM Stufe.
  19465. </li>
  19466. </ul>
  19467. <br>
  19468. Beispiele:
  19469. <ul>
  19470. <code>set mod1 Port4 PWM1</code><br>
  19471. <code>set mod1 PWM1 128</code><br>
  19472. </ul><br>
  19473. </ul>
  19474. <a name="I2C_PCA9532Get"></a>
  19475. <b>Get</b>
  19476. <ul>
  19477. <code>get &lt;name&gt;</code>
  19478. <br><br>
  19479. Aktualisierung aller Werte
  19480. </ul><br>
  19481. <a name="I2C_PCA9532Attr"></a>
  19482. <b>Attribute</b>
  19483. <ul>
  19484. <li>poll_interval<br>
  19485. Aktualisierungsintervall aller Werte in Minuten.<br>
  19486. Standard: -, g&uuml;ltige Werte: Dezimalzahl<br><br>
  19487. </li>
  19488. <li>OutputPorts<br>
  19489. Durch Komma getrennte Portnummern die als Outputs genutzt werden.<br>
  19490. Nur Ports in dieser Liste k&ouml;nnen geschrieben werden.<br>
  19491. Standard: no, g&uuml;ltige Werte: 0 1 2 .. 15<br><br>
  19492. </li>
  19493. <li>OnStartup<br>
  19494. Durch Komma getrennte Output Ports/PWM Register und ihr gew&uuml;nschter Status nach dem Start.<br>
  19495. Ohne dieses Attribut werden alle Ausg&auml;nge nach dem Start auf den letzten Status gesetzt.<br>
  19496. Standard: -, g&uuml;ltige Werte: &lt;port&gt;=on|off|PWM0|PWM1|last oder PWM0|PWM1=0..255|last wobei &lt;port&gt; = 0 - 15<br><br>
  19497. </li>
  19498. <li>T0/T1<br>
  19499. &Auml;nderung der Frequenzwerte von PWM0/PWM1 nach der Formel: Fx = 152/(Tx + 1). Der entsprechende Frequenzwert wird unter Internals angezeigt.<br>
  19500. Standard: 0 (152Hz), g&uuml;ltige Werte: 0-255<br><br>
  19501. </li>
  19502. <li><a href="#IODev">IODev</a></li>
  19503. <li><a href="#ignore">ignore</a></li>
  19504. <li><a href="#do_not_notify">do_not_notify</a></li>
  19505. <li><a href="#showtime">showtime</a></li>
  19506. </ul>
  19507. <br>
  19508. </ul>
  19509. <p><a name="I2C_PCA9685"></a>
  19510. <h3>I2C_PCA9685</h3>
  19511. <div class='langLinks'>[<a href='commandref.html#I2C_PCA9685'>EN</a> DE]</div>
  19512. (<a href="commandref.html#I2C_PCA9685">en</a> | de)
  19513. <ul>
  19514. <a name="I2C_PCA9685"></a>
  19515. Erm&ouml;glicht die Verwendung eines PCA9685 I2C 16 Kanal PWM IC.
  19516. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19517. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19518. <b>Das Attribut IODev muss definiert sein.</b><br>
  19519. <a name="I2C_PCA9685Define"></a><br>
  19520. <b>Define</b>
  19521. <ul>
  19522. <code>define &lt;name&gt; I2C_PCA9685 &lt;I2C Address&gt; [&lt;I2C Buffer Size&gt;]</code><br>
  19523. Der Wert <code>&lt;I2C Address&gt;</code> ist ein zweistelliger Hex-Wert im Format 0xnn oder eine Dezimalzahl<br>
  19524. <code>&lt;I2C Buffer Size&gt;</code> gibt die maximale Anzahl von Datenbytes pro I2C Datenpaket an. Nicht angegeben, wird der Wert 30 verwendet
  19525. ( entspricht 32 Bytes incl. Adresse und Registernummer). RPII2C kann mit beliebig gro&szlig;en Paketl&auml;ngen umgehen, daher ist diese Option dort inaktiv.<br>
  19526. </ul>
  19527. <a name="I2C_PCA9685Set"></a>
  19528. <b>Set</b>
  19529. <ul>
  19530. <code>set &lt;name&gt; &lt;port&gt; &lt;dimvalue&gt; [&lt;delay&gt;]</code><br><br>
  19531. <li>Als <code>&lt;port&gt;</code> kann Port00 bis Port15 verwendet werden<br>
  19532. <code>&lt;dimvalue&gt;</code> kann folgende Werte annehmen:<br>
  19533. <ul>
  19534. <code>
  19535. off<br>
  19536. on<br>
  19537. 0..4095<br>
  19538. </code>
  19539. </ul>
  19540. <code>&lt;delay&gt;</code> gibt den Wert innerhalb der Z&auml;hlschleife an, an dem der Ausgang eingeschaltet wird.
  19541. Damit lassen sich die 16 Ausg&auml;nge zu unterschiedlichen Zeiten einschalten um Stromspitzen zu minimieren.
  19542. Dieser Wert hat keinerlei Einfluss auf die Pulsbreite. Stardartwert ist 0, m&ouml;gliche Werte sind 0..4095<br>
  19543. </li>
  19544. <li>
  19545. Um mehrer Ports mit einem Befehl zu &auml;ndern k&ouml;nnen mehrere Befehle per Komma getrennt eingegeben werden.
  19546. Dabei kann jeder Port auf einen separaten, oder alle Ports auf den selben Wert gesettz werden.
  19547. F&auml;r letzteres darf nur der letzte Befehl dimvalue (und delay) enthalten.
  19548. Aufeinanerfolgene Ports werden mit einem Befehl geschrieben. So k&ouml;nnen beispielsweise multicolor LED's ohne flackern geschaltet werden.<br>
  19549. Anstelle von Port kann auch einfach ein P verwendet werden.
  19550. </li>
  19551. <br>
  19552. Examples:
  19553. <ul>
  19554. <code>set mod1 Port04 543</code><br>
  19555. <code>set mod1 Port4 434 765</code><br>
  19556. <code>set mod1 Port1, Port2, Port14 434 765</code><br>
  19557. <code>set mod1 Port1 on, P14 434 765</code><br>
  19558. </ul><br>
  19559. </ul>
  19560. <a name="I2C_PCA9685Get"></a>
  19561. <b>Get</b>
  19562. <ul>
  19563. <code>get &lt;name&gt;</code>
  19564. <br><br>
  19565. Aktualisierung aller Werte
  19566. </ul><br>
  19567. <a name="I2C_PCA9685Attr"></a>
  19568. <b>Attribute</b>
  19569. <ul>
  19570. <li>SUBADR1,SUBADR2,SUBADR3,ALLCALLADR<br>
  19571. Alternative slave Adressen, zum kontrollieren mehrerer PCA9685 mit einem define
  19572. Zus&auml;tzlich zu diesen Registern m&uuml;ssen die Passenden Bits in modereg1 gesetzt werden.<br>
  19573. Standard: SUBADR1=113,SUBADR2=114,SUBADR3=116,ALLCALLADR=112, g&uuml;ltige Werte: I2C Adresse <br><br>
  19574. </li>
  19575. <li>OnStartup<br>
  19576. Kommagetrennte Liste der Ports mit den gew&uuml;nschten Startwerten.<br>
  19577. Nicht gelistete Ports werden auf en letzte state wiederhergestellt.<br>
  19578. Standard: last, g&uuml;ltige Werte: &lt;port&gt;=on|off|0..4095|last wobei &lt;port&gt; = 0 - 15<br><br>
  19579. </li>
  19580. <li>prescale<br>
  19581. PWM Frequenz setzen. Formel: Fx = 25MHz/(4096 * (prescale + 1)).
  19582. Die eingestellte Frequenz wird in den Internals angezeigt.
  19583. Wenn das Attribut extclock angegeben ist, wird dieses zur Frequenzberechnung verwendet. Andernfalls 25MHz.<br>
  19584. Standard: 30 (200Hz f&uuml;r 25MHz clock), g&uuml;ltige Werte: 0-255<br><br>
  19585. </li>
  19586. <li>modereg1<br>
  19587. Durch Komma getrennte Liste von:
  19588. <ul>
  19589. <li>EXTCLK<br>
  19590. Anstelle des internen 25MHz Oszillators wird ein extern Angeschlossener verwendet.
  19591. Die Frequenz des externen Oszillators kann &uuml;ber das Attribut extclock angegeben werden.
  19592. </li>
  19593. <li>SUBADR1<br>
  19594. Wenn gesetzt, antwortet der PCA9685 auf I2C-bus Subadresse 1.
  19595. </li>
  19596. <li>SUBADR2<br>
  19597. Wenn gesetzt, antwortet der PCA9685 auf I2C-bus Subadresse 2.
  19598. </li>
  19599. <li>SUBADR3<br>
  19600. Wenn gesetzt, antwortet der PCA9685 auf I2C-bus Subadresse 3.
  19601. </li>
  19602. <li>ALLCALLADR<br>
  19603. Wenn gesetzt, antwortet der PCA9685 auf I2C-bus ALLCALLADR Adresse.
  19604. </li>
  19605. </ul>
  19606. </li>
  19607. <li>modereg2<br>
  19608. Durch Komma getrennte Liste von:
  19609. <ul>
  19610. <li>INVRT<br>
  19611. Wenn gesetzt, werden die Ausg&auml;nge invertiert.<br>
  19612. </li>
  19613. <li>OCH<br>
  19614. Wenn gesetzt, werden die Ports nach jedem ACK gesetzt (also nach jedem gesendeten Byte).<br>
  19615. Andernfalls werden sie nach einem STOP Kommando gesetzt (Bus Schreibaktion fertig, also nach einem Datenpaket)<br>
  19616. </li>
  19617. <li>OUTDRV<br>
  19618. Wenn gesetzt, werden die Ausg&auml;nge als totem pole konfiguriert.<br>
  19619. Andernfalls sind sie open-drain.<br>
  19620. </li>
  19621. Verhalten bei OE = 1 (wenn OE = 0 verhalten sich die Ausg&auml;nge wie in OUTDRV eingestellt):
  19622. <li>OUTNE0<br>
  19623. Wenn gesetzt:<br>
  19624. LEDn = 1 wenn OUTDRV = 1<br>
  19625. LEDn = hochohmig wenn OUTDRV = 0<br>
  19626. Wenn nicht gesetzt:
  19627. LEDn = 0.<br>
  19628. </li>
  19629. <li>OUTNE1<br>
  19630. LEDn = hochohmig.<br>
  19631. Wenn OUTNE1 gesetzt wird OUTNE0 ignoriert.<br><br>
  19632. </li>
  19633. </ul>
  19634. </li>
  19635. <li><a href="#IODev">IODev</a></li>
  19636. <li><a href="#ignore">ignore</a></li>
  19637. <li><a href="#do_not_notify">do_not_notify</a></li>
  19638. <li><a href="#showtime">showtime</a></li>
  19639. </ul>
  19640. <br>
  19641. </ul>
  19642. <p><a name="I2C_PCF8574"></a>
  19643. <h3>I2C_PCF8574</h3>
  19644. <div class='langLinks'>[<a href='commandref.html#I2C_PCF8574'>EN</a> DE]</div>
  19645. (<a href="commandref.html#I2C_PCF8574">en</a> | de)
  19646. <ul>
  19647. <a name="I2C_PCF8574"></a>
  19648. Erm&ouml;glicht die Verwendung eines PCF8574 I2C 8 Bit Portexenders.
  19649. Auf einem Raspberry Pi kann der Interrupt Pin des PCF8574 mit einem GPIO verbunden werden und &uml;ber die Interrupt Funktionen von <a href="#RPI_GPIO">RPI_GPIO</a> l&aml;sst sich dann ein get f&uuml;r den PCF8574 bei Pegel&aml;nderung ausl&oml;sen.<br>
  19650. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19651. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19652. <b>Das Attribut IODev muss definiert sein.</b><br>
  19653. <a name="I2C_PCF8574Define"></a><br>
  19654. <b>Define</b>
  19655. <ul>
  19656. <code>define &lt;name&gt; I2C_PCF8574 &lt;I2C Address&gt;</code><br>
  19657. Der Wert <code>&lt;I2C Address&gt;</code> ist ohne das Richtungsbit<br>
  19658. </ul>
  19659. <a name="I2C_PCF8574Set"></a>
  19660. <b>Set</b>
  19661. <ul>
  19662. <code>set &lt;name&gt; &lt;port[,port[...]]&gt; &lt;value&gt;</code><br><br>
  19663. <ul>
  19664. <li><code>&lt;port&gt;</code> kann Port0 bis Port7 annehmen und <code>&lt;value&gt;</code> folgende Werte:<br>
  19665. <ul>
  19666. <code>
  19667. off<br>
  19668. on<br>
  19669. </code>
  19670. </ul>
  19671. </li>
  19672. </ul>
  19673. <br>
  19674. Beispiel:
  19675. <ul>
  19676. <code>set mod1 Port4 on</code><br>
  19677. <code>set mod1 Port4,Port6 off</code><br>
  19678. <code>set mod1 Port4,6 on</code><br>
  19679. </ul><br>
  19680. </ul>
  19681. <a name="I2C_PCF8574Get"></a>
  19682. <b>Get</b>
  19683. <ul>
  19684. <code>get &lt;name&gt;</code>
  19685. <br><br>
  19686. Aktualisierung aller Werte
  19687. </ul><br>
  19688. <a name="I2C_PCF8574Attr"></a>
  19689. <b>Attribute</b>
  19690. <ul>
  19691. <li>poll_interval<br>
  19692. Aktualisierungsintervall aller Werte in Minuten.<br>
  19693. Standard: -, g&uuml;ltige Werte: Dezimalzahl<br><br>
  19694. </li>
  19695. <li>InputPorts<br>
  19696. Durch Komma getrennte Portnummern die als Inputs genutzt werden.<br>
  19697. Ports in dieser Liste k&ouml;nnen nicht geschrieben werden.<br>
  19698. Standard: -, g&uuml;ltige Werte: 0 - 7<br><br>
  19699. </li>
  19700. <li>InvrtPorts<br>
  19701. Durch Komma getrennte Portnummern die invertiert werden.<br>
  19702. Standard: -, g&uuml;ltige Werte: 0 - 7<br><br>
  19703. </li>
  19704. <li>OnStartup<br>
  19705. Durch Komma getrennte Output Ports und ihr gew&uuml;nschter Status nach dem Start.<br>
  19706. Ohne dieses Attribut werden alle Ausg&auml;nge nach dem Start auf den letzten Status gesetzt.<br>
  19707. Standard: -, g&uuml;ltige Werte: &lt;port&gt;=on|off|last wobei &lt;port&gt; = 0 - 7<br><br>
  19708. </li>
  19709. <li><a href="#IODev">IODev</a></li>
  19710. <li><a href="#ignore">ignore</a></li>
  19711. <li><a href="#do_not_notify">do_not_notify</a></li>
  19712. <li><a href="#showtime">showtime</a></li>
  19713. </ul>
  19714. <br>
  19715. </ul>
  19716. <p><a name="I2C_SHT21"></a>
  19717. <h3>I2C_SHT21</h3>
  19718. <div class='langLinks'>[<a href='commandref.html#I2C_SHT21'>EN</a> DE]</div>
  19719. (<a href="commandref.html#I2C_SHT21">en</a> | de)
  19720. <ul>
  19721. <a name="I2C_SHT21"></a>
  19722. Erm&ouml;glicht die Verwendung eines SHT21 I2C Feuchtesensors von <a href="www.sensirion.com">Sensirion</a>.
  19723. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19724. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19725. <b>Das Attribut IODev muss definiert sein.</b><br>
  19726. <a name="I2C_SHT21Define"></a><br>
  19727. <b>Define</b>
  19728. <ul>
  19729. <code>define &lt;name&gt; I2C_SHT21 [&lt;I2C Address&gt;]</code><br>
  19730. Der Wert <code>&lt;I2C Address&gt;</code> ist ein zweistelliger Hex-Wert<br>
  19731. </ul>
  19732. <a name="I2C_SHT21Set"></a>
  19733. <b>Set</b>
  19734. <ul>
  19735. <code>set &lt;name&gt; readValues</code><br>
  19736. Aktuelle Temperatur und Feuchte Werte vom Sensor lesen.<br><br>
  19737. </ul>
  19738. <a name="I2C_SHT21Attr"></a>
  19739. <b>Attribute</b>
  19740. <ul>
  19741. <li>poll_interval<br>
  19742. Aktualisierungsintervall aller Werte in Minuten.<br>
  19743. Standard: 5, g&uuml;ltige Werte: 1,2,5,10,20,30<br><br>
  19744. </li>
  19745. <li>roundHumidityDecimal, roundTemperatureDecimal<br>
  19746. Anzahl Dezimalstellen f&uuml;r den Feuchte-, oder Temperaturwert<br>
  19747. Standard: 1, g&uuml;ltige Werte: 0 1 2<br><br>
  19748. </li>
  19749. <li><a href="#IODev">IODev</a></li>
  19750. <li><a href="#do_not_notify">do_not_notify</a></li>
  19751. <li><a href="#showtime">showtime</a></li>
  19752. </ul><br>
  19753. </ul>
  19754. <p><a name="I2C_SHT3x"></a>
  19755. <h3>I2C_SHT3x</h3>
  19756. <div class='langLinks'>[<a href='commandref.html#I2C_SHT3x'>EN</a> DE]</div>
  19757. (<a href="commandref.html#I2C_SHT3x">en</a> | de)
  19758. <ul>
  19759. <a name="I2C_SHT3x"></a>
  19760. Erm&ouml;glicht die Verwendung eines SHT30/SHT31 I2C Feuchtesensors von <a href="http:\\www.sensirion.com">Sensirion</a>.
  19761. I2C-Botschaften werden &uuml;ber ein I2C Interface Modul wie beispielsweise das <a href="#RPII2C">RPII2C</a>, <a href="#FRM">FRM</a>
  19762. oder <a href="#NetzerI2C">NetzerI2C</a> gesendet. Daher muss dieses vorher definiert werden.<br>
  19763. <b>Das Attribut IODev muss definiert sein.</b><br>
  19764. <a name="I2C_SHT3xDefine"></a><br>
  19765. <b>Define</b>
  19766. <ul>
  19767. <code>define &lt;name&gt; I2C_SHT3x [&lt;I2C Address&gt;]</code><br>
  19768. <br>
  19769. Der Wert <code>&lt;I2C Address&gt;</code> ist ein zweistelliger Hex-Wert:<br>
  19770. ADDR (Pin 2) verbunden mit VSS (Versorgungsspannung): 0x44 (Standardwert, wenn <code>&lt;I2C Address&gt;</code> nicht angegeben)<br>
  19771. ADDR (pin 2) verbunden mit VDD (Masse): 0x45<br>
  19772. F&uuml;r kompatible Sensoren k&ouml;nnen auch andere Werte als 0x44 oder 0x45 angegeben werden.<br>
  19773. <br>
  19774. </ul>
  19775. <a name="I2C_SHT3xSet"></a>
  19776. <b>Set</b>
  19777. <ul>
  19778. <code>set &lt;name&gt; readValues</code><br>
  19779. Aktuelle Temperatur und Feuchte Werte vom Sensor lesen.<br><br>
  19780. </ul>
  19781. <a name="I2C_SHT3xAttr"></a>
  19782. <b>Attribute</b>
  19783. <ul>
  19784. <li>poll_interval<br>
  19785. Aktualisierungsintervall aller Werte in Minuten.<br>
  19786. Standard: 5, g&uuml;ltige Werte: 1,2,5,10,20,30<br><br>
  19787. </li>
  19788. <li>roundHumidityDecimal, roundTemperatureDecimal<br>
  19789. Anzahl Dezimalstellen f&uuml;r den Feuchte- oder Temperaturwert<br>
  19790. Standard: 1, g&uuml;ltige Werte: 0 1 2<br><br>
  19791. </li>
  19792. <li><a href="#IODev">IODev</a></li>
  19793. <li><a href="#do_not_notify">do_not_notify</a></li>
  19794. <li><a href="#showtime">showtime</a></li>
  19795. </ul><br>
  19796. </ul>
  19797. <p><a name="I2C_TSL2561"></a>
  19798. <h3>I2C_TSL2561</h3>
  19799. <ul>
  19800. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  19801. hier: <a href='commandref.html#I2C_TSL2561'>I2C_TSL2561</a><br/>
  19802. </ul>
  19803. <a name="IF"></a>
  19804. <h3>IF</h3>
  19805. <div class='langLinks'>[<a href='commandref.html#IF'>EN</a> DE]</div>
  19806. <ul>
  19807. <code>IF (&lt;Bedingung&gt;) (&lt;FHEM-Kommandos1&gt;) ELSE (&lt;FHEM-Kommandos2&gt;)</code><br>
  19808. <br>
  19809. Es werden <code>&lt;FHEM-Kommandos1&gt;</code> ausgefĂźhrt, wenn <code>&lt;Bedingung&gt;</code> erfĂźllt ist, sonst werden <code>&lt;FHEM-Kommanodos2&gt;</code> ausgefĂźhrt.<br>
  19810. <br>
  19811. Beim IF-Befehl (IF in Gro�buchstaben) handelt es sich um einen FHEM-Befehl. Der Befehl kann ßberall dort genutzt werden, wo FHEM-Befehle vorkommen dßrfen.
  19812. Im Gegensatz zu Perl-if (if in Kleinbuchstaben) bleibt man auf der FHEM-Ebene und muss nicht auf die Perl-Ebene, um FHEM-Befehle mit Hilfe der fhem-Funktion auszufĂźhren.<br>
  19813. <br>
  19814. IF ist kein eigenständig arbeitendes Modul, sondern ein FHEM-Befehl, der nur in Kombination mit anderen Modulen, wie z. B. notify oder at, sinnvoll eingesetzt werden kann.
  19815. Es gibt inzwischen ein neueres <a href="http://fhem.de/commandref_DE.html#DOIF">DOIF</a>-Modul, welches auf der Syntax vom IF-Befehl aufbaut.
  19816. Es arbeitet im Gegensatz zu IF als Modul selbstständig ereignis- und zeitgesteuert ohne notify bzw. at. Damit lassen sich viele ProblemlÜsungen eleganter, jeweils mit einem einzigen Modul, realisieren.<br>
  19817. <br>
  19818. In der Bedingung des IF-Befehls wird die vollständige Syntax des Perl-if unterstßtzt. Stati und Readings von Devices werden in eckigen Klammern angegeben.<br>
  19819. <br>
  19820. <br>
  19821. <b>Beispiele:</b><br>
  19822. <br>
  19823. IF in Kombination mit at-Modul, Readingangabe [&lt;Device&gt;:&lt;Reading&gt;] in der Bedingung:<br>
  19824. <br>
  19825. <code>define check at +00:10 IF ([outdoor:humidity] > 70) (set switch1 off) ELSE (set switch1 on)<br></code>
  19826. <br>
  19827. IF Statusabfrage des Devices "outdoor" in der Bedingung:<br>
  19828. <br>
  19829. <code>define check at +00:10 IF ([outdoor] eq "open") (set switch1 on)<br></code>
  19830. <br>
  19831. entspricht mit Angabe des Internals mit &:<br>
  19832. <br>
  19833. <code>define check at +00:10 IF ([outdoor:&STATE] eq "open") (set switch1 on)<br></code>
  19834. <br>
  19835. Wenn der Reading "state" abgefragt werden soll, dann wird der Readingname ohne & angegeben:<br>
  19836. <br>
  19837. <code>define check at +00:10 IF ([outdoor:state] eq "open") (set switch1 on)<br></code>
  19838. <br>
  19839. Geschachtelte Angabe von mehreren IF-Befehlen kann in mehreren Zeilen mit EinrĂźckungen zwecks Ăźbersichtlicher
  19840. Darstellung ßber FHEM-Weboberfläche in der DEF-Eingabe eingegeben werden.<br>
  19841. Die erste Zeile "define test notify lamp " muss mit einem Leerzeichen enden, bevor die Zeile mit Enter umgebrochen wird - das ist eine Eigenschaft von notify und nicht von IF:<br>
  19842. <br>
  19843. <code>define test notify lamp <br>
  19844. IF ([lamp] eq "on") (<br>
  19845. <ol>
  19846. IF ([outdoor:humidity] < 70)<br>
  19847. <ol>
  19848. (set lamp off)<br>
  19849. </ol>
  19850. ELSE<br>
  19851. <ol>
  19852. (set lamp on)<br>
  19853. </ol>
  19854. </ol>
  19855. ) ELSE<br>
  19856. <ol>
  19857. (set switch on)<br>
  19858. </ol>
  19859. <br></code>
  19860. Mehrzeilige Eingaben in der cfg-Datei mĂźssen dagegen jeweils am Zeilenende mit \ verknĂźpft werden (das ist eine Eigenschaft von FHEM und nicht von IF):<br>
  19861. <br>
  19862. <code>define test notify lamp \<br>
  19863. IF ([lamp] eq "on") (\<br>
  19864. <ol>
  19865. IF ([outdoor:humidity] < 70)\<br>
  19866. <ol>
  19867. (set lamp off)\<br>
  19868. </ol>
  19869. ELSE\<br>
  19870. <ol>
  19871. (set lamp on)\<br>
  19872. </ol>
  19873. </ol>
  19874. ) ELSE\<br>
  19875. <ol>
  19876. (set switch on)<br>
  19877. </ol>
  19878. <br></code>
  19879. Filtern nach Zahlen im Reading "temperature":<br>
  19880. <br>
  19881. <code>define settemp at 22:00 IF ([tempsens:temperature:d] >= 10) (set heating on)<br></code>
  19882. <br>
  19883. Filtern nach "on" und "off" im Status des Devices "move":<br>
  19884. <br>
  19885. <code>define activity notify move IF ([move:&STATE:[(on|off)]] eq "on" and $we) (set lamp off)<br></code>
  19886. <br>
  19887. Beispiel fĂźr die Nutzung des Status eines Devices im AusfĂźhrungsteil. Hier: "lamp1" wird mit dem Status von "lamp2" geschaltet:<br>
  19888. <br>
  19889. <code>define temp at 18:00 IF ([outdoor:temperature] > 10) (set lamp1 [lamp2])<br></code>
  19890. <br>
  19891. Falls bei einem FHEM-Befehl ein Perl-Ausdruck mit Readings zuvor ausgewertet werden soll, so muss er in geschweifte und runde Klammern gesetzt werden.<br>
  19892. Beispiel: Wenn um 18:00 Uhr die Au�entemperatur hÜher ist als 10 Grad, dann wird die Solltemperatur um 1 Grad erhÜht.<br>
  19893. <br>
  19894. <code>define temp at 18:00 IF ([outdoor:temperature] > 10) (set thermostat desired-temp {([thermostat:desired-temp:d]+1)})<br></code>
  19895. <br>
  19896. Mehrerer Befehle werden durch ein Komma statt durch ein Semikolon getrennt, dadurch entfällt das Doppeln, Vervierfachen usw. des Semikolons:<br>
  19897. <br>
  19898. <code>define check at +00:10 IF ([outdoor:humidity] > 10) (set switch1 off,set switch2 on) ELSE (set switch1 on,set switch2 off)<br></code>
  19899. <br>
  19900. Falls ein Komma im FHEM-Ausdruck vorkommt, muss dieser zusätzlich geklammert werden, damit das Komma nicht als Trennzeichen erkannt wird:<br>
  19901. <br>
  19902. <code>define check at +00:10 IF ([outdoor:humidity] > 10) ((set switch1,switch2 off))<br></code>
  19903. <br>
  19904. IF in Kombination mit einem define at mit mehreren set-Befehlen (Eingabe muss wegen der Semikolons im DEF-Editor erfolgen,
  19905. einfaches Semikolon ist nicht erlaubt - es wĂźrde vom FHEM-Parser "geschluckt" werden und beim IF nicht mehr ankommen):<br>
  19906. <br>
  19907. <code>define check at *10:00 IF ([indoor] eq "on") (define a_test at +00:10 set lampe1 on;;set lampe2 off;;set temp desired 20)<br></code>
  19908. <br>
  19909. Man kann die Problematik des Doppelns von Semikolons wie folgt umgehen:<br>
  19910. <br>
  19911. <code>define check at *10:00 IF ([indoor] eq "on") (define a_test at +00:10 IF (1) (set lampe1 on,set lampe2 off,set temp desired 20))<br></code>
  19912. <br>
  19913. Das Komma als Trennzeichen zwischen den FHEM-Befehlen lässt sich mit ;; kombinieren, z. B.:<br>
  19914. <br>
  19915. <code>define check at *10:00 IF ([indoor] eq "on") (set lamp1 on,define a_test at +00:10 set lampe2 on;;set lampe3 off;;set temp desired 20)<br></code>
  19916. <br>
  19917. sleep kann mit Komma verwendet werden, dabei wirkt das sleep nicht blockierend:<br>
  19918. <br>
  19919. <code>define check at *10:00 IF ([indoor] eq "on") (sleep 2,set lampe1 on,sleep 3,set lampe2 on)</code><br>
  19920. <br>
  19921. Zeitabhängig schalten: In der Zeit zwischen 20:00 und 22:00 Uhr soll das Licht ausgehen, wenn es an war und ich den Raum verlasse:<br>
  19922. <br>
  19923. <code>define n_lamp_off notify sensor IF ($hms gt "20:00" and $hms lt "22:00" and [sensor] eq "absent") (set lamp:FILTER=STATE!=off off)<br></code>
  19924. <br>
  19925. Kombination von Perl und FHEM-Befehlen ($NAME sowie $EVENT kĂśnnen ebenso benutzt werden):<br>
  19926. <br>
  19927. <code>define mail notify door:open IF ([alarm] eq "on")({system("wmail $NAME:$EVENT")},set alarm_signal on)<br></code>
  19928. <br>
  19929. Der IF-Befehl dient in erster Linie zur Vereinfachung der Schreibweise in Kombination mit anderen FHEM-Modulen wie at, notify oder DOIF.
  19930. Intern wird der IF-Befehl zur AusfĂźhrung in einen Perl if-Befehl umgesetzt. Das soll anhand von Beispielen verdeutlicht werden:<br>
  19931. <br>
  19932. <code>IF ([switch] eq "off") (set lamp on)</code><br>
  19933. <br>
  19934. entspricht:<br>
  19935. <br>
  19936. <code>{if (Value('switch') eq "off"){fhem('set lamp on')}}</code><br>
  19937. <br>
  19938. <br>
  19939. <code>IF ([living_room:temperature] > 12) (set lamp on, set lamp2 off)</code><br>
  19940. <br>
  19941. entspricht:<br>
  19942. <br>
  19943. <code>{if (ReadingVal('living_room','temperature','') > 12) {fhem('set lamp on');;fhem('set lamp2 off')}}</code><br>
  19944. <br>
  19945. <br>
  19946. <code>IF ([bathroom:humidity] > 70) (set led red) ELSE (set led green)</code><br>
  19947. <br>
  19948. entspricht:<br>
  19949. <br>
  19950. <code>{if (ReadingsVal('bathroom','humidity','') > 70) {fhem('set led red')} else {fhem('set led green')}}</code><br>
  19951. <br>
  19952. <br>
  19953. </ul>
  19954. <p><a name="IOhomecontrol"></a>
  19955. <h3>IOhomecontrol</h3>
  19956. <ul>
  19957. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  19958. hier: <a href='commandref.html#IOhomecontrol'>IOhomecontrol</a><br/>
  19959. </ul>
  19960. <a name="IOhomecontrolDevice"></a>
  19961. <h3>IOhomecontrolDevice</h3>
  19962. <ul>
  19963. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  19964. hier: <a href='commandref.html#IOhomecontrolDevice'>IOhomecontrolDevice</a><br/>
  19965. </ul>
  19966. <a name="IPCAM"></a>
  19967. <h3>IPCAM</h3>
  19968. <ul>
  19969. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  19970. hier: <a href='commandref.html#IPCAM'>IPCAM</a><br/>
  19971. </ul>
  19972. <a name="IPWE"></a>
  19973. <h3>IPWE</h3>
  19974. <ul>
  19975. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  19976. hier: <a href='commandref.html#IPWE'>IPWE</a><br/>
  19977. </ul>
  19978. <a name="IT"></a>
  19979. <h3>IT - InterTechno</h3>
  19980. <div class='langLinks'>[<a href='commandref.html#IT'>EN</a> DE]</div>
  19981. <ul>
  19982. Das InterTechno 433MHZ Protokoll wird von einer Vielzahl von Ger&auml;ten
  19983. benutzt. Diese geh&ouml;ren entweder zur Kategorie Sender/Sensoren oder zur
  19984. Kategorie Empf&auml;nger/Aktoren. Es ist das Senden sowie das Empfangen von InterTechno
  19985. Befehlen m&ouml;glich. Ger&auml;ten k&ouml;tnnen z.B.
  19986. Schalter, Dimmer usw. sein.
  19987. Von diesem Modul wird sowohl das Protolkoll 1 sowie das Protokoll 3 unterst&uuml;tzt.
  19988. Neu empfangene Pakete werden per autocreate in Fhem unter der Kategorie IT angelegt.
  19989. Hinweis: F&uuml;r ein AutoCreate muss die Taste innerhalb von 30 Sek 2 mal gedr&uuml;ckt werden.
  19990. <br>
  19991. <br>
  19992. <a name="ITdefine"></a>
  19993. <b>Define</b>
  19994. <ul>
  19995. <code>define &lt;name&gt; IT &lt;housecode&gt; &lt;on-code&gt; &lt;off-code&gt;
  19996. [&lt;dimup-code&gt;] [&lt;dimdown-code&gt;] </code>
  19997. <br>oder<br>
  19998. <code>define &lt;name&gt; IT &lt;ITRotarySwitches|FLS100RotarySwitches&gt; </code>
  19999. <br>oder<br>
  20000. <code>define &lt;name&gt; IT &lt;Adresse 26 Bit&gt; &lt;Group bit&gt; &lt;Unit Code&gt;</code>
  20001. <br>oder<br>
  20002. <code>define &lt;name&gt; IT HE800 &lt;Transmitter ID&gt; &lt;Receiver ID&gt;</code>
  20003. <br><br>
  20004. Der Wert von Hauscode ist abh&auml;ngig vom verwendeten Ger&auml;t und besteht aus zehn Ziffern InterTechno-Code Protokoll 1.
  20005. Da dieser ein tri-State-Protokoll ist, k&ouml;nnen die Ziffern jeweils die Werte 0/1/F annehmen.
  20006. <br>
  20007. Bit 11/12 werden f&uuml;r Schalten oder Dimmen verwendet. Da die Hersteller verschiedene Codes verwenden, k&ouml;nnen hier die
  20008. (2-stelligen) Codes f&uuml;r an, aus, heller und dunkler (on/off/dimup/dimdown) als tri-State-Ziffern (0/1/F) festgelegt werden.
  20009. <br>
  20010. Der Wert des ITRotary-Schalters setzt sich aus dem Wert des Buchstaben-Schalters A-P und dem numerischen Schalter 1-16
  20011. des InterTechno-Ger&auml;tes zusammen, z.B. A1 oder G12.
  20012. <br>
  20013. Der Wert des FLS100Rotary-Schalters setzt sich aus dem Wert des Schalters I,II,II,IV und dem numerischen Schalter 1-4
  20014. des InterTechno-Ger&auml;tes zusammen, z.B. I2 oder IV4.
  20015. <br>
  20016. Die Werte der ITRotary-Schalter und FLS100Rotary-Schalter werden intern in Hauscode-Werte umgewandelt.
  20017. <br>
  20018. F&uuml;r Intertechno Protokoll 3 besteht der Hauscode aus 26 Ziffern. Zus&auml;tzlich werden noch 4 Ziffern als Unit Code sowie eine Ziffer als Group code ben&ouml;tigt.
  20019. <br>
  20020. Neues IT Element in FHEM anlegen: define IT myITSwitch IT <Adresse 26 Bit> <Group bit> <Unit Code>
  20021. <br><br>
  20022. <b>Intertechno Protokoll 1 (ITv1)</b>
  20023. <ul>
  20024. <li><code>&lt;housecode&gt;</code> 10 Ziffern lange tri-State-Zahl (0/1/F) abh&auml;ngig vom benutzten Ger&auml;t.</li>
  20025. <li><code>&lt;on-code&gt; &lt;off-code&gt;</code> jeweils 2 Ziffern lange quad-State-Zahl (0/1/F/D), die den Einschaltbefehl enth&auml;lt;
  20026. die Zahl wird an den &lt;housecode&gt; angef&uuml;gt, um den 12-stelligen IT-Sendebefehl zu bilden.</li>
  20027. <li>optional <code>&lt;dimup-code&gt; &lt;dimdown-code&gt;</code> jeweils 2 Ziffern lange quad-State-Zahl (0/1/F/D),
  20028. die den Befehl zum Herauf- und Herunterregeln enth&auml;lt;
  20029. die Zahl wird an den &lt;housecode&gt; angef&uuml;gt, um den 12-stelligen IT-Sendebefehl zu bilden.</li>
  20030. <li>Hinweis: orginal ITv1 devices werden nur beim on Befehl angelegt.</li>
  20031. <li>Die nicht orginal ITv1 devices k&ouml;nnen wie folgt angelegt werden:</li><br>
  20032. Zum anlegen mit autocreate 2 mal auf "on" dr&uuml;cken:<br>
  20033. <code>2016.11.27 11:47:37.753 4: sduinoD IT: 001F001000 not defined (Switch code: <b>11</b>)</code><br>
  20034. <code>2016.11.27 11:47:37.755 2: autocreate: define IT_001F001000 IT 001F001000 0F F0</code><br><br>
  20035. Nun auf "off" oder eine andere Taste dr&uuml;cken:<br>
  20036. <code>2016.11.27 11:48:32.004 3: sduinoD IT: Code <b>1D</b> not supported by IT_001F001000.</code><br><br>
  20037. Da dies keine orginal Intertechno Steckdose ist, passt der on/off code im define nicht und muss angepasst werden<br>
  20038. <code>DEF 001F001000 <b>11 1D</b></code><br><br>
  20039. <li> <b>EV1527</b></li>
  20040. Wenn im housecode ein nicht g&uuml;ltiger (10) ITv1 Tristatecode enthalten ist, dann wird es per autocreate als EV1527 angelegt.<br>
  20041. <code>&lt;housecode&gt;</code> 1527xabcde , abcde ist der empfangene housecode im Hex Format<br>
  20042. <code>&lt;on-code&gt; &lt;off-code&gt;</code> jeweils 4 Ziffern lange Bin Zahl (0/1), die den Einschaltbefehl enth&auml;lt;
  20043. die Zahl wird an den housecode angef&uuml;gt, um den 12-stelligen IT-Sendebefehl zu bilden.<br>
  20044. optional <code>&lt;dimup-code&gt; &lt;dimdown-code&gt;</code> jeweils 4 Ziffern lange Bin Zahl (0/1),
  20045. die den Befehl zum Herauf- und Herunterregeln enth&auml;lt;
  20046. die Zahl wird an den housecode angef&uuml;gt, um den 12-stelligen IT-Sendebefehl zu bilden.<br><br>
  20047. Nach dem anlegen per autocreate muss noch der on/off- und optional der dimcode beim define (DEF) angepasst werden.<br>
  20048. </ul>
  20049. <br>
  20050. <b>SBC_FreeTec</b><br>
  20051. <ul>
  20052. <li><code>&lt;housecode&gt;</code> 8 Ziffern lange tri-State-Zahl (0/1/F) abh&auml;ngig vom benutzten Ger&auml;t.</li>
  20053. <li><code>&lt;on-code&gt;</code> 4 Ziffern lange tri-State-Zahl, die den Einschaltbefehl enth&auml;lt;
  20054. die Zahl wird an den housecode angef&uuml;gt, um den 12-stelligen IT-Sendebefehl zu bilden.</li>
  20055. <li><code>&lt;off-code&gt;</code> 4 Ziffern lange tri-State-Zahl, die den Ausschaltbefehl enth&auml;lt;
  20056. die Zahl wird an den housecode angef&uuml;gt, um den 12-stelligen IT-Sendebefehl zu bilden.</li>
  20057. </ul>
  20058. <br>
  20059. <b>HE800</b><br>
  20060. <ul>
  20061. <li><code>&lt;Transmitter ID&gt;</code> Eindeutige Transmitter-ID (1..65535)</li>
  20062. <li><code>&lt;Receiver ID&gt;</code> Receiver-ID [0]1..15, 0=Broadcast 1-15 (HE844A button# 1-4 & MASTER=0, HE850 UNIT# 1-15, HE853 = 1)</li>
  20063. </ul>
  20064. <br>
  20065. Beispiele:
  20066. <ul>
  20067. <code>define lamp IT 01FF010101 11 00 01 10</code><br>
  20068. <code>define roll1 IT 111111111F 11 00 01 10</code><br>
  20069. <code>define otherlamp IT 000000000F 11 10 00 00</code><br>
  20070. <code>define otherroll1 IT FFFFFFF00F 11 10</code><br>
  20071. <code>define IT_1527xe0fec IT 1527xe0fec 1001 0000</code><br>
  20072. <code>define SBC_FreeTec_Steck1 IT FFF00FFF 000F 0000</code><br>
  20073. <code>define itswitch1 IT A1</code><br>
  20074. <code>define lamp IT J10</code><br>
  20075. <code>define flsswitch1 IT IV1</code><br>
  20076. <code>define lamp IT II2</code><br>
  20077. <code>define HE800_TID1_SW1 IT HE800 1 1</code><br>
  20078. </ul>
  20079. <br>
  20080. F&uuml;r <b>Intertechno Protokoll 3 (ITv3)</b> ist der &lt;housecode&gt; eine 26-stellige Zahl. Zus&auml;tzlich wird noch ein 1 stelliger Gruppen-Code, sowie
  20081. ein 4-stelliger &lt;unit code&gt; verwendet.
  20082. <ul>
  20083. <li><code>&lt;address&gt;</code> ist eine 26-stellige Nummer (0/1)</li>
  20084. <li><code>&lt;group&gt;</code> ist eine 1-stellige Nummer (0/1)</li>
  20085. <li><code>&lt;unit&gt;</code> ist eine 4-stellige Nummer (0/1)</li>
  20086. </ul>
  20087. <br>
  20088. Beispiele:
  20089. <ul>
  20090. <code>define myITSwitch IT 00111100110101010110011111 0 0000</code>
  20091. </ul>
  20092. </ul>
  20093. <br>
  20094. <a name="ITset"></a>
  20095. <b>Set </b>
  20096. <ul>
  20097. <code>set &lt;name&gt; &lt;value&gt; [&lt;time&gt]</code>
  20098. <br><br>
  20099. wobei <code>value</code> eines der folgenden Schl&uuml;sselw&ouml;rter ist:<br>
  20100. <pre>
  20101. dimdown
  20102. dimup
  20103. off
  20104. on
  20105. on-till # siehe Anmerkungen
  20106. <li>Die <a href="#setExtensions">set extensions</a> werden unterst&uuml;tzt.</li>
  20107. </pre>
  20108. Beispiele:
  20109. <ul>
  20110. <code>set lamp on</code><br>
  20111. <code>set lamp1,lamp2,lamp3 on</code><br>
  20112. <code>set lamp1-lamp3 on</code><br>
  20113. <code>set lamp off</code><br>
  20114. </ul>
  20115. <br>
  20116. Anmerkungen:
  20117. <ul>
  20118. <li>on-till erfordert eine Zeitangabe im "at"-Format (HH:MM:SS, HH:MM
  20119. oder { &lt;perl code&gt; }, wobei dieser Perl-Code eine Zeitangabe zur&uuml;ckgibt).
  20120. Ist die aktuelle Zeit gr&ouml;&szlig;er als die Zeitangabe, wird der Befehl verworfen,
  20121. andernfalls wird ein Einschaltbefehl gesendet und f&uuml;r die Zeitangabe ein
  20122. Ausschaltbefehl mittels "at"-Befehl angelegt.
  20123. </li>
  20124. </ul>
  20125. </ul>
  20126. <br>
  20127. <b>Get</b> <ul>N/A (nicht vorhanden)</ul><br>
  20128. <a name="ITattr"></a>
  20129. <b>Attributes</b>
  20130. <ul>
  20131. <a name="IODev"></a>
  20132. <li>IODev<br>
  20133. Spezifiziert das physische Ger&auml;t, das die Ausstrahlung der Befehle f&uuml;r das
  20134. "logische" Ger&auml;t ausf&uuml;hrt. Ein Beispiel f&uuml;r ein physisches Ger&auml;t ist ein CUL oder ein SIGNALduino.<br>
  20135. Anmerkung: Beim Start weist fhem einem InterTechno-Ger&auml;t kein IO-Ger&auml;t zu.
  20136. Das Attribut IODev ist daher IMMER zu setzen.</li><br>
  20137. <a name="eventMap"></a>
  20138. <li>eventMap<br>
  20139. Ersetzt Namen von Ereignissen (wie on und off) und set-Parametern. Die Liste besteht dabei
  20140. aus mit Doppelpunkt verbundenen Wertepaaren, die durch Leerzeichen getrennt
  20141. sind. Der erste Teil des Wertepaares ist der zu ersetzende Wert, der zweite der neue/gew&uuml;nschte Wert.
  20142. Man kann Leerzeichen innerhalb der neuen/gewßnschten Werte verwenden, muss dann aber Fhem signalisieren, dass das die Werte nicht mehr durch Leerzeichen getrennt werden. Die geschieht, indem das erste Zeichen der Werteliste ein Komma (,) oder ein Schr&auml;gsstrich (/) wird. Dieses Komma bzw der Schrägstrich werden dann als Listenzeichen verwendet. Beispiele:
  20143. <ul><code>
  20144. attr store eventMap on:open off:closed<br>
  20145. attr store eventMap /on-for-timer 10:open/off:closed/<br>
  20146. set store open
  20147. </code></ul>
  20148. </li><br>
  20149. <li><a href="#do_not_notify">do_not_notify</a></li><br>
  20150. <a name="attrdummy"></a>
  20151. <li>dummy<br>
  20152. Mit der Eigenschaft dummy lassen sich Ger&auml;te definieren, die keine physikalischen Befehle
  20153. senden sollen. Verkn&uuml;pfte notifys werden trotzdem ausgef&uuml;hrt. Damit kann z.B. auf Sendebefehle
  20154. reagiert werden, die &uuml;ber die Weboberfl&auml;che ausgel&ouml;st wurden, ohne dass der Befehl physikalisch
  20155. gesendet wurde.
  20156. </li><br>
  20157. <li><a href="#loglevel">loglevel</a></li><br>
  20158. <li><a href="#showtime">showtime</a></li><br>
  20159. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  20160. <a name="model"></a>
  20161. <li>model<br>
  20162. Hiermit kann das Modell des IT-Ger&auml;ts n&auml;her beschrieben werden. Diese
  20163. Eigenschaft wird (im Moment) nicht von Fhem ausgewertet.
  20164. Mit Hilfe dieser Information k&ouml;nnen externe Programme oder Web-Interfaces
  20165. Ger&auml;teklassen unterscheiden, um geeignete Kommandos zu senden (z.B. "on"
  20166. oder "off" an Schalter, aber "dim..%" an Dimmer usw.). Die Schreibweise
  20167. der Modellbezeichnung sollten der dem Ger&auml;t mitgelieferten Dokumentation
  20168. in Kleinbuchstaben ohne Leerzeichen entsprechen.
  20169. Andere Zeichen als <code>a-z 0-9</code> und <code>-</code> (Bindestrich)
  20170. sollten vermieden werden. Dies ist die Liste der "offiziellen" Modelltypen:<br>
  20171. <b>Sender/Sensor</b>: itremote<br>
  20172. <b>Dimmer</b>: itdimmer<br>
  20173. <b>Empf&auml;nger/Actor</b>: itswitch<br>
  20174. <b>EV1527</b>: ev1527
  20175. </li><br>
  20176. <a name="ignore"></a>
  20177. <li>ignore<br>
  20178. Durch das Setzen dieser Eigenschaft wird das Ger&auml;t nicht durch Fhem beachtet,
  20179. z.B. weil es einem Nachbarn geh&ouml;rt. Aktivit&auml;ten dieses Ger&auml;tes erzeugen weder
  20180. Log-Eintr&auml;ge noch reagieren notifys darauf, erzeugte Kommandos werden ignoriert
  20181. (wie bei Verwendung des Attributes <a href="#attrdummy">dummy</a> werden keine
  20182. Signale gesendet). Das Ger&auml;t ist weder in der Ausgabe des list-Befehls enthalten
  20183. (au&szlig;er es wird explizit aufgerufen), noch wird es bei Befehlen ber&uuml;cksichtigt,
  20184. die mit Platzhaltern in Namensangaben arbeiten (siehe <a href="#devspec">devspec</a>).
  20185. Sie werden weiterhin mit der speziellen devspec (Ger&auml;tebeschreibung) "ignored=1" gefunden.
  20186. </li><br>
  20187. <a name="ITclock"></a>
  20188. <li>ITclock<br>
  20189. ITclock ist die kleinste Basispulsl&auml;nge beim Senden des Intertechno V1 Protokolls.<br>
  20190. Ein Signal beim IT-Protokoll besteht immer aus einer Sequenz von HIGH und LOW, die mit einer bestimmten Pulsl&auml;nge gesendet werden. Typischerweise stehen die Pulsl&auml;ngen dabei im Verh&auml;ltnis 1:3 (also z.B. LOW=Basispulsl&auml;nge und HIGH=3*Basispulsl&auml;nge).<br>
  20191. Voreingestellt ist 250 fĂźr Original-IT-Ger&auml;te. Andere Hersteller verwenden manchmal andere Werte, dennoch sollte ITclock nur dann ver&auml;ndert werden, wenn es Probleme beim Schalten mit Fhem gibt. Achten Sie in dem Fall auch darauf, ob nicht vielleicht das Signal zu schwach ist oder gest&ouml;rt wird, um regelm&auml;ssig empfangen zu werden.<br>
  20192. - Hier ist eine Beschreibung fĂźr die Ermittlung des ITclock beim Signalduino: Nach Dr&uuml;cken einer Taste an der Fernbedienung steht die empfangene raw Nachricht im log und in der device-Ansicht des IT-device, also etwa<br>
  20193. MS;P0=357;P2=-1128;P3=1155;P4=-428;P5=-11420;D=05023402020202020202020202020202020202023402340234;CP=0;SP=5;<br>
  20194. Die Ziffer hinter "CP=" gibt die Pattern-Nr des clock an, also z.B. folgt aus CP=0 --> P0, das am Anfang der Nachricht definiert ist, hier ist also die clock 357.<br>
  20195. - Beim CUL kann die ITclock aus den raw Daten (X31) ermittelt werden.
  20196. </li><br>
  20197. <a name="ITfrequency"></a>
  20198. <li>ITfrequency<br>
  20199. Setzt die Sendefrequenz.
  20200. </li><br>
  20201. <a name="ITrepetition"></a>
  20202. <li>ITrepetition<br>
  20203. Setzt die Sendewiederholungen (Default=6).
  20204. </li><br>
  20205. <a name="userV1setCodes"></a>
  20206. <li>userV1setCodes<br>
  20207. Damit k&ouml;nnen beim ITv1 Protokoll eigene setcodes zugef&uuml;gt werden. Beispiele:
  20208. <ul><code>
  20209. attr lamp userV1setCodes rot:FD blau:1F<br>
  20210. attr lamp userV1setCodes hoch:1001 runter:1000 stop:1011
  20211. </code></ul>
  20212. </li><br>
  20213. <a name="SIGNALduinoProtocolId"></a>
  20214. <li>SIGNALduinoProtocolId<br>
  20215. Damit kann beim Senden mit dem SIGNALduino eine Protocol-Id gew&auml;hlt werden.
  20216. </li><br>
  20217. </ul>
  20218. <br>
  20219. <a name="ITevents"></a>
  20220. <b>Erzeugte Ereignisse (Events):</b>
  20221. <ul>
  20222. Ein IT-Ger&auml;t kann folgende Ereignisse generieren:
  20223. <li>on</li>
  20224. <li>off</li>
  20225. <li>dimdown</li>
  20226. <li>dimup<br></li>
  20227. Welche Ereignisse erzeugt werden ist ger&auml;teabh&auml;ngig und kann evtl. eingestellt werden.
  20228. </ul>
  20229. </ul>
  20230. <p><a name="Iluminize"></a>
  20231. <h3>Iluminize</h3>
  20232. <div class='langLinks'>[<a href='commandref.html#Iluminize'>EN</a> DE]</div>
  20233. <br>
  20234. <a name="Iluminize"></a>
  20235. <b>Define</b>
  20236. <code>define &lt;name&gt; Iluminize &lt;ip/hostname&gt;</code><br>
  20237. <br>
  20238. Definiert ein Iluminize LED Wifi-Licht
  20239. <p><a name="InfoPanel"></a>
  20240. <h3>InfoPanel</h3>
  20241. <ul>
  20242. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20243. hier: <a href='commandref.html#InfoPanel'>InfoPanel</a><br/>
  20244. </ul>
  20245. <a name="Itach_IR"></a>
  20246. <h3>Itach_IR</h3>
  20247. <ul>
  20248. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20249. hier: <a href='commandref.html#Itach_IR'>Itach_IR</a><br/>
  20250. </ul>
  20251. <a name="Itach_IRDevice"></a>
  20252. <h3>Itach_IRDevice</h3>
  20253. <ul>
  20254. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20255. hier: <a href='commandref.html#Itach_IRDevice'>Itach_IRDevice</a><br/>
  20256. </ul>
  20257. <a name="Itach_Relay"></a>
  20258. <h3>Itach_Relay</h3>
  20259. <ul>
  20260. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20261. hier: <a href='commandref.html#Itach_Relay'>Itach_Relay</a><br/>
  20262. </ul>
  20263. <a name="JSONMETER"></a>
  20264. <h3>JSONMETER</h3>
  20265. <div class='langLinks'>[<a href='commandref.html#JSONMETER'>EN</a> DE]</div>
  20266. <div>
  20267. <ul>
  20268. Dieses Modul liest Daten von Messgeräten (z.B. Stromzähler, Gaszähler oder Wärmezähler, so genannte Smartmeter),
  20269. welche <a href="http://de.wikipedia.org/wiki/OBIS-Kennzahlen">OBIS</a> kompatible Daten im JSON-Format auf einem Webserver oder auf dem FHEM-Dateisystem zur VerfĂźgung stellen.
  20270. <br>
  20271. Fßr detaillierte Anleitungen bitte die <a href="http://www.fhemwiki.de/wiki/JSONMETER"><b>FHEM-Wiki</b></a> konsultieren und ergänzen.
  20272. <br>
  20273. &nbsp;
  20274. <br>
  20275. <b>Define</b>
  20276. <ul>
  20277. <code>define &lt;name&gt; JSONMETER &lt;Gerätetyp&gt; [&lt;IP-Adresse&gt;] [Abfrageinterval]</code>
  20278. <br>
  20279. Beispiel: <code>define Stromzaehler JSONMETER ITF 192.168.178.20 300</code>
  20280. <br>&nbsp;
  20281. <li><code>[Abfrageintervall]</code>
  20282. <br>
  20283. Optional. Standardmä�ig 300 Sekunden. Der kleinste mÜgliche Wert ist 30.
  20284. <br>
  20285. Bei 0 kann die Geräteabfrage nur manuell gestartet werden.
  20286. </li><br>
  20287. <li><code>&lt;Gerätetyp&gt;</code>
  20288. <br>
  20289. Definiert den Pfad und den Port, um die JSON-Datei einzulesen.
  20290. <br>
  20291. Mit dem Attribute 'pathString' kÜnnen Login Information an den URL-Pfad von vordefinierten Geräte angehangen werden.
  20292. <ul>
  20293. <li><b>ITF</b> - FROETEC Simplex ME Eintarifzähler (N-ENERGY) (<a href="http://www.itf-froeschl.de">ITF FrÜschl</a>)</li>
  20294. <li><b>EFR</b> - <a href="http://www.efr.de">EFR</a> Smart Grid Hub fßr Stromzähler (EON, N-ENERGY, EnBW)
  20295. <br>
  20296. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Die Login-Information wird Ăźber das Attribute 'pathstring' angegeben.
  20297. <br>
  20298. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>?LogName=<i>Benutzer</i>&LogPSWD=<i>Passwort</i></code></li>
  20299. <li><b>LS110</b> - <a href="http://www.youless.nl/downloads-ls110.html">YouLess LS110</a> Netzwerkfähiger Sensor fßr elektromechanische Stromzähler</li>
  20300. <li><b>LS120</b> - <a href="http://www.youless.nl/winkel/product/ls120.html">YouLess LS120</a> Neues Modell</li>
  20301. <li><b>url</b> - benutzt die URL, welche durch das Attribut 'pathString' und 'port' definiert wird.</li>
  20302. <li><b>file</b> - benutzt die Datei, welche durch das Attribut 'pathString' definiert wird (im FHEM Dateisystem)</li>
  20303. </ul>
  20304. </li>
  20305. </ul>
  20306. <br>
  20307. <b>Set</b>
  20308. <ul>
  20309. <li><code>activeTariff &lt; 0 - 9 &gt;</code>
  20310. <br>
  20311. Erlaubt die gezielte, separate Erfassung der statistischen Verbrauchswerte (doStatistics = 1) fßr verschiedene Tarife (Doppelstromzähler), wenn der Stromzähler dies selbst nicht unterscheiden kann (z.B. LS110) oder wenn geprßft werden soll, ob ein zeitabhängiger Tarif preiswerter wäre. Dieser Wert muss entsprechend des vorhandenen oder geplanten Tarifes zum jeweiligen Zeitpunkt z.B. durch den FHEM-Befehl "at" gesetzt werden.<br>
  20312. 0 = tariflos
  20313. </li><br>
  20314. <li><code>INTERVAL &lt;Abfrageinterval&gt;</code>
  20315. <br>
  20316. Abfrageinterval in Sekunden
  20317. </li><br>
  20318. <li><code>resetStatistics &lt;statWerte&gt;</code>
  20319. <br>
  20320. LÜscht die ausgewählten statisischen Werte: <i>all, statElectricityConsumed..., statElectricityConsumedTariff..., statElectricityPower...</i>
  20321. </li><br>
  20322. <li><code>restartJsonAnalysis</code>
  20323. <br>
  20324. Neustart der Analyse der json-Datei zum Auffinden bekannter Gerätewerte (kompatibel zum OBIS Standard).
  20325. Diese Analysie wird normaler Weise nur einmalig durchgefßhrt, nachdem Gerätewerte gefunden wurden.
  20326. </li><br>
  20327. <li><code>statusRequest</code>
  20328. <br>
  20329. Aktualisieren der Gerätewerte</li>
  20330. </ul>
  20331. <br>
  20332. <b>Get</b>
  20333. <ul>
  20334. <li><code>jsonFile</code>
  20335. <br>
  20336. Liest die JSON-Datei ein und zeigt sie an.
  20337. </li><br>
  20338. <li><code>jsonAnalysis</code>
  20339. <br>
  20340. Extrahiert die JSON-Daten und zeigt das Resultat der JSON-Analyse.</li>
  20341. </ul>
  20342. <br>
  20343. <a name="JSONMETERattr"></a>
  20344. <b>Attributes</b>
  20345. <ul>
  20346. <li><code>alwaysAnalyse &lt; 0 | 1 &gt;</code>
  20347. <br>
  20348. Fßhrt bei jeder Abfrage der Gerätewerte eine Analyse der JSON-Datenstruktur durch.
  20349. <br>
  20350. Dies ist sinnvoll, wenn sich die JSON-Struktur ändert. Normalerweise wird die analysierte Struktur
  20351. zwischengespeichert, um die CPU-Last gering zu halten.
  20352. </li><br>
  20353. <li><code>doStatistics &lt; 0 | 1 &gt;</code>
  20354. <br>
  20355. Bildet tägliche, monatliche und jährliche Statistiken bestimmter Gerätewerte (Mittel/Min/Max oder kumulierte Werte).
  20356. FĂźr grafische Auswertungen kĂśnnen die Werte der Form 'stat<i>ReadingName</i><b>Last</b>' genutzt werden.
  20357. </li><br>
  20358. <li><code>pathString &lt;Zeichenkette&gt;</code>
  20359. <ul>
  20360. <li>Gerätetyp 'file': definiert den lokalen Dateinamen und -pfad
  20361. </li>
  20362. <li>Gerätetyp 'url': Definiert den URL-Pfad
  20363. </li>
  20364. <li>Andere: Kann benutzt werden um Login-Information zum URL Pfad von vordefinierten Geräten hinzuzufßgen
  20365. </li>
  20366. </ul>
  20367. </li><br>
  20368. <li><code>port &lt;Nummer&gt;</code>
  20369. <br>
  20370. Beim Gerätetyp 'url' kann hier der URL-Port festgelegt werden. (standardmä�ig 80)
  20371. </li><br>
  20372. <li><code>timeOut &lt;Sekunden&gt;</code>
  20373. <br>
  20374. Gibt an, nach wieviel Sekunden das Einlesen der Rohdaten abgebrochen werden soll. (standardmä�ig 10)
  20375. <br>
  20376. Die Laufzeit des Einlesevorganges wird bei "get &lt;device&gt; jsonFile" angezeigt.
  20377. </li><br>
  20378. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  20379. </ul>
  20380. </ul>
  20381. </div>
  20382. <p><a name="Jabber"></a>
  20383. <h3>Jabber</h3>
  20384. <div class='langLinks'>[<a href='commandref.html#Jabber'>EN</a> DE]</div>
  20385. <ul>
  20386. Dieses Modul verbindet sich mit dem Jabber Netzwerk, sendet und empf&auml;ngt Nachrichten von und zu einem Jabber Server.<br>
  20387. <br>
  20388. Jabber ist eine andere Beschreibung f&uuml;r "XMPP", ein Kommunikationsprotokoll f&uuml;r Nachrichtenorientierte "middleware", basierend
  20389. auf XML.<br>
  20390. Fester bestandteil des Protokolls ist die Verschl&uuml;sselung zwischen Client und Server.<br>
  20391. F&uuml;r den Benutzer ist es &auml;hnlich anderer Chat-Plattformen wie zum Beispiel dem facebook Chat, ICQ oder Google Hangouts -
  20392. jedoch frei Verf&uuml;gbar, open Source und normalerweise Verschl&uuml;sselt (was Serverabh&auml;ngig ist).<br>
  20393. <br>
  20394. F&uuml;r dieses Modul brauchst du einen Account auf einem Jabber Server. Kostenlose accounts und Server findet man unter <a href="http://www.jabber.org/">jabber.org</a><br>
  20395. Diskussionen zu diesem Modul findet man im <a href="http://forum.fhem.de/index.php/topic,18967.0.html">FHEM Forum hier</a>.<br>
  20396. <br>
  20397. Dieses Modul ben&ouml;tigt die folgenden Perl Module (inkl. SSL M&ouml;glichkeit)<br>
  20398. <ul>
  20399. <li>Net::Jabber</li>
  20400. <li>Net::XMPP</li>
  20401. <li>Authen::SASL</li>
  20402. <li>XML::Stream</li>
  20403. <li>Net::SSLeay</li>
  20404. </ul>
  20405. <br>
  20406. Seit Version 1.5 kann dieses Modul in Multi-User-Channel (sogenannte MUC) beitreten und Off-the-Record (OTR) Ende-zu-Ende Verschl&uuml;sselung benutzen.<br>
  20407. Wenn du OTR benutzen m&ouml;chtest musst du dir Crypt::OTR von CPAN selbst installieren.<br>
  20408. OTR ist nochmal ein zus&auml;tzlicher Sicherheitsrelevater Punkt, da die Kommunikation wirklich von Endger&auml;t zu FHEM verschl&uuml;sselt wird und man sich nicht auf die Jabber Server Transportverschl&uuml;sselung verlassen muss.<br>
  20409. <br>
  20410. <br>
  20411. <a name="JabberDefine"></a>
  20412. <b>Define</b>
  20413. <ul>
  20414. <code>define &lt;name&gt; Jabber &lt;server&gt; &lt;port&gt; &lt;username&gt; &lt;password&gt; &lt;TLS&gt; &lt;SSL&gt;</code><br>
  20415. <br>
  20416. Du ben&ouml;tigst nat&uuml;rlich echte Accountdaten.<br>
  20417. <br>
  20418. Beispiel:
  20419. <ul>
  20420. <code>define JabberClient1 Jabber jabber.org 5222 myusername mypassword 1 0</code>
  20421. </ul>
  20422. <br>
  20423. </ul>
  20424. <br>
  20425. <a name="JabberSet"></a>
  20426. <b>Set</b>
  20427. <ul>
  20428. <li>
  20429. <code>set &lt;name&gt; msg &lt;username&gt; &lt;msg&gt;</code>
  20430. <br>
  20431. Sendet eine Nachricht "msg" an den Jabberuser "username"
  20432. <br>
  20433. Beispiel:
  20434. <ul>
  20435. <code>set JabberClient1 msg myname@jabber.org It is working!</code><br>
  20436. </ul>
  20437. </li>
  20438. <br>
  20439. <li>
  20440. <code>set &lt;name&gt; msgmuc &lt;channel&gt; &lt;msg&gt;</code>
  20441. <br>
  20442. Sendet eine Nachricht "msg" an dieJabber-MUC-Gruppe "channel".<br>
  20443. Dabei wird ein eventuell mitgegebener Nickname von "channel" entfernt, so kann man direkt das Reading LastMessageJID benutzen.<br>
  20444. <br>
  20445. Beispiel:
  20446. <ul>
  20447. <code>set JabberClient1 msgmuc roomname@jabber.org Woot!</code><br>
  20448. </ul>
  20449. </li>
  20450. <br>
  20451. <li>
  20452. <code>set &lt;name&gt; msgotr &lt;username&gt; &lt;msg&gt;</code>
  20453. <br>
  20454. Sendet eine OTR verschl&uuml;sselte Nachricht an den "username", wenn keine aktive OTR Sitzung aufgebaut ist, wird versucht eine aufzubauen.<br>
  20455. Wenn der Empf&auml;nger OTR nicht versteht, wird die Nachricht verworfen, d.h. sie wird auf keinen Fall im Klartext &uuml;bertragen.
  20456. <br>
  20457. Beispiel:
  20458. <ul>
  20459. <code>set JabberClient1 msgotr myname@jabber.org Wir sehen uns heute um 18:00 Uhr :*</code><br>
  20460. </ul>
  20461. </li>
  20462. <br>
  20463. <li>
  20464. <code>set &lt;name&gt; subscribe &lt;username&gt;</code>
  20465. <br>
  20466. Fr&auml;gt eine Authorisierung beim "username" an (normalerweise wird das nicht ben&ouml;tigt)
  20467. <br>
  20468. Beispiel:
  20469. <ul>
  20470. <code>set JabberClient1 subscribe myname@jabber.org</code><br>
  20471. </ul>
  20472. </li>
  20473. </ul>
  20474. <br>
  20475. <b>Get</b> <ul>N/A</ul><br>
  20476. <a name="JabberAttr"></a>
  20477. <b>Attribute</b>
  20478. <ul>
  20479. <a name="OnlineStatus"></a>
  20480. <li><code>OnlineStatus available|unavailable</code><br>
  20481. Setzt den Online-status, ob der Client anderen gegen&uuml;ber Online ist (available) oder Offline erscheint (unavailable)<br>
  20482. Es ist m&ouml;glich dass einige Server eingehende Nachrichten trotzdem FHEM zustellen obwohl er "unavailable" ist<br>
  20483. <br>
  20484. Standard: <code>available</code>
  20485. </li><br>
  20486. <a name="ResourceName"></a>
  20487. <li><code>ResourceName &lt;name&gt;</code><br>
  20488. In der Jabber-Welt kann ein Client mit einem Usernamen &ouml;fter mit einem Server verbunden sein (z.b. Handy, Computer, FHEM). <br>
  20489. Der "resource name" ergibt die finale Jabber-ID und macht die verschiedenen Verbindungen einzigartig (z.B. bios@jabber.org/FHEM).<br>
  20490. Hier kannst du den "resource name" setzen.<br>
  20491. <br>
  20492. Standard: <code>FHEM</code>
  20493. </li><br>
  20494. <a name="PollTimer"></a>
  20495. <li><code>PollTimer &lt;seconds&gt;</code><br>
  20496. Dies ist der Intervall in der &uuml;berpr&uuml;ft wird ob neue Nachrichten zur Verarbeitung beim Jabber Server anstehen.<br>
  20497. Ebenfalls wird hiermit die Verbindung zum Server &uuml;berpr&uuml;ft (Timeouts, DSL Disconnects etc.).<br>
  20498. Setze es nicht &uuml;ber 10 Sekunden, die Verbindung kann sonst die ganze Zeit getrennt werden, Sie wird zwar wieder aufgebaut, aber nach 10 Sekunden brechen die meisten Server die Verbindung automatisch ab.<br>
  20499. <br>
  20500. Standard: <code>2</code>
  20501. </li><br>
  20502. <a name="RecvWhitelist"></a>
  20503. <li><code>RecvWhitelist &lt;Regex&gt;</code><br>
  20504. Nur wenn die Jabber-ID einer privaten empfangenen Nachricht auf diese Regex zutrifft, akzeptiert FHEM die Nachricht und gibt sie an Notifys weiter. Alles andere wird verworfen.<br>
  20505. <br>
  20506. Standard: <code>.*</code><br>
  20507. Beispiele:<br>
  20508. <ul>
  20509. <code>myname@jabber.org</code><br>
  20510. <code>(myname1@jabber.org|myname2@xmpp.de)</code><br>
  20511. </ul>
  20512. </li><br>
  20513. <a name="MucJoin"></a>
  20514. <li><code>MucJoin channel1@server.com/mynick[:passwort]</code><br>
  20515. Tritt dem MUC mit dem spezifizierten Nickname und dem optionalem Passwort bei.<br>
  20516. <br>
  20517. Standard: nicht definiert<br>
  20518. Beispiele:<br>
  20519. <ul>
  20520. Einen Raum betreten: <code>channel1@server.com/mynick</code><br>
  20521. Mehrere R&auml;ume betreten: <code>channel1@server.com/mynick,channel2@server.com/myothernick</code><br>
  20522. Einen Raum mit Passwort betreten: <code>channel1@server.com/mynick:password</code><br>
  20523. </ul>
  20524. </li><br>
  20525. <a name="MucRecvWhitelist"></a>
  20526. <li><code>MucRecvWhitelist &lt;Regex&gt;</code><br>
  20527. Selbe funktion wie RecvWhitelist, aber f&uuml;r Gruppenr&auml;ume: Nur wenn die Regex zutrifft, wird die Nachricht verarbeitet. Alles andere wird ignoriert.<br>
  20528. <br>
  20529. Standard: nicht definiert (keine Nachricht wird akzeptiert)<br>
  20530. Beispiele:<br>
  20531. <ul>
  20532. Alle Nachrichten aller betretenen R&auml;ume erlauben: <code>.*</code><br>
  20533. Alle Nachrichten bestimmter betretenen R&auml;ume erlauben: <code>mychannel@jabber.org</code><br>
  20534. Nur bestimmte User in bestimmten betretenen R&auml;umen erlauben: <code>mychannel@jabber.org/NickOfFriend</code><br>
  20535. </ul>
  20536. </li><br>
  20537. <a name="OTREnable"></a>
  20538. <li><code>OTREnable 1|0</code><br>
  20539. Schaltet die Verschl&uuml;sselungsfunktionen von Crypt::OTR f&uuml;r sichere Ende-zu-Ende Kummunikation in FHEM an oder aus.<br>
  20540. Es muss zwangsl&auml;ufig daf&uuml;r Crypt::OTR installiert sein.<br>
  20541. <i>Ein Privater Schl&uuml;ssel wird bei Erstbenutzung generiert, das kann mehr als 2 Stunden dauern!</i><br>
  20542. Daf&uuml;r ist das eine einmalige Sache und FHEM wird dadurch nicht blockiert. Im Device sieht man im OTR_STATE wenn der Private Schl&uuml;ssel fertig ist.<br>
  20543. Erst danach ist OTR aktiv.<br>
  20544. <br>
  20545. Default: nicht definiert (OTR deaktiviert)
  20546. </li><br>
  20547. <a name="OTRSharedSecret"></a>
  20548. <li><code>OTRSharedSecret aSecretKeyiOnlyKnow@@*</code><br>
  20549. Optionales geheimes Passwort, dass man vom Endger&auml;t an FHEM schicken kann um zu beweisen, dass es sich tats&auml;chlich um FHEM handelt und nicht um einen
  20550. Hacker der sich (z.b. bei dem Internetprovider) zwischengeschaltet hat.
  20551. Normalerweise bekommt das Endger&auml;t eine Warnung wenn sich an einer bereits verifizierten Verbindung etwas ge&auml;ndert hat.<br>
  20552. Diese Warnung sollte man dann sehr ernst nehmen.
  20553. <br>
  20554. Default: nicht definiert, setze hier dein geheimes Passwort.
  20555. </li><br>
  20556. </ul>
  20557. <br>
  20558. <a name="JabberReadings"></a>
  20559. <b>Generierte Readings/Events:</b>
  20560. <ul>
  20561. <li>Privat Nachrichten
  20562. <ul>
  20563. <li><b>Message</b> - Komplette Nachricht inkl. JID und Text</li>
  20564. <li><b>LastMessage</b> - Nur der Textteil der Nachricht</li>
  20565. <li><b>LastSenderJID</b> - Nur die Sender-JID der Nachricht</li>
  20566. </ul>
  20567. </li><br>
  20568. <li>Verschl&uuml;sselte Private Nachrichten (wenn OTREnable=1)
  20569. <ul>
  20570. <li><b>OTRMessage</b> - Komplette entschl&uuml;sselte Nachricht inkl. JID und Text</li>
  20571. <li><b>OTRLastMessage</b> - Nur der Textteil der Nachricht</li>
  20572. <li><b>OTRLastSenderJID</b> - Nur die Sender-JID der Nachricht</li>
  20573. </ul>
  20574. </li><br>
  20575. <li>MUC Raum Nachrichten (wenn MUCJoin gesetzt ist)
  20576. <ul>
  20577. <li><b>MucMessage</b> - Komplette Nachricht (Raumname/Nickname und Text)</li>
  20578. <li><b>MucLastMessage</b> - Nur der Textteil der Nachricht</li>
  20579. <li><b>MucLastSenderJID</b> - Nur die Sender-JID der Nachricht</li>
  20580. </ul>
  20581. </li>
  20582. </ul>
  20583. <br>
  20584. <a name="JabberNotes"></a>
  20585. <b>Notizen des Entwicklers:</b>
  20586. <ul>
  20587. <li>Mit folgendem Notify-Beispiel kannst du auf eingehende Nachrichten reagieren, dieses Beispiel schickt das Reading "Temperatur" des Sensors "BU_Temperatur" bei jeder ankommenden Nachricht an den Sender zur&uuml;ck:<br>
  20588. <pre><code>define Jabber_Notify notify JabberClient1:Message.* {
  20589. my $lastsender=ReadingsVal("JabberClient1","LastSenderJID","0");
  20590. my $lastmsg=ReadingsVal("JabberClient1","LastMessage","0");
  20591. my $temperature=ReadingsVal("BU_Temperatur","temperature","0");
  20592. fhem("set JabberClient1 msg ". $lastsender . " Temp: ".$temperature);
  20593. }
  20594. </code></pre>
  20595. </li>
  20596. <li>Auf MUC Nachrichten l&auml;sst sich folgend reagieren, Augenmerk darauf legen dass der Nickname aus $lastsender in der msgmuc Funktion entfernt wird, damit die Nachricht an den Raum geht<br>
  20597. <pre><code>define Jabber_Notify notify JabberClient1:MucMessage.* {
  20598. my $lastsender=ReadingsVal("JabberClient1","LastSenderJID","0");
  20599. my $lastmsg=ReadingsVal("JabberClient1","LastMessage","0");
  20600. my $temperature=ReadingsVal("BU_Temperatur","temperature","0");
  20601. fhem("set JabberClient1 msgmuc ". $lastsender . " Temp: ".$temperature);
  20602. }
  20603. </code></pre>
  20604. </li>
  20605. <li>Auf OTR Nachrichten wird reagiert, wie auf normale private Nachrichten auch, jedoch wird mit der msgotr Funktion geantwortet:<br>
  20606. <pre><code>define Jabber_Notify notify JabberClient1:OTRMessage.* {
  20607. my $lastsender=ReadingsVal("JabberClient1","LastSenderJID","0");
  20608. my $lastmsg=ReadingsVal("JabberClient1","LastMessage","0");
  20609. my $temperature=ReadingsVal("BU_Temperatur","temperature","0");
  20610. fhem("set JabberClient1 msgotr ". $lastsender . " Temp: ".$temperature);
  20611. }
  20612. </code></pre>
  20613. </li>
  20614. </ul>
  20615. </ul>
  20616. <p><a name="JawboneUp"></a>
  20617. <h3>JawboneUp</h3>
  20618. <ul>
  20619. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20620. hier: <a href='commandref.html#JawboneUp'>JawboneUp</a><br/>
  20621. </ul>
  20622. <a name="JeeLink"></a>
  20623. <h3>JeeLink</h3>
  20624. <ul>
  20625. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20626. hier: <a href='commandref.html#JeeLink'>JeeLink</a><br/>
  20627. </ul>
  20628. <a name="JsonList"></a>
  20629. <h3>JsonList</h3>
  20630. <ul>
  20631. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20632. hier: <a href='commandref.html#JsonList'>JsonList</a><br/>
  20633. </ul>
  20634. <a name="JsonList2"></a>
  20635. <h3>JsonList2</h3>
  20636. <div class='langLinks'>[<a href='commandref.html#JsonList2'>EN</a> DE]</div>
  20637. <ul>
  20638. <code>jsonlist2 [&lt;devspec&gt;] [&lt;value1&gt; &lt;value2&gt; ...]</code>
  20639. <br><br>
  20640. Dieses Befehl sollte in der FHEMWEB oder telnet Eingabezeile ausgef&uuml;hrt
  20641. werden, kann aber auch direkt &uuml;ber HTTP abgerufen werden &uuml;ber
  20642. <ul>
  20643. http://fhemhost:8083/fhem?cmd=jsonlist2&amp;XHR=1
  20644. </ul>
  20645. Es liefert die JSON Darstellung der internen Variablen, Readings und
  20646. Attribute zur&uuml;ck.<br>
  20647. Wenn valueX angegeben ist, dann wird nur der entsprechende Internal (DEF,
  20648. TYPE, usw), Reading (actuator, measured-temp) oder Attribut
  20649. zur&uuml;ckgeliefert f&uuml;r alle Ger&auml;te die in devspec angegeben sind.
  20650. <br><br>
  20651. <b>Achtung</b>: die alte Version dieses Befehls (jsonlist, ohne 2 am Ende) is
  20652. &uuml;berholt, und wird in der Zukunft entfernt.<br>
  20653. </ul>
  20654. <p><a name="KM271"></a>
  20655. <h3>KM271</h3>
  20656. <ul>
  20657. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20658. hier: <a href='commandref.html#KM271'>KM271</a><br/>
  20659. </ul>
  20660. <a name="KM273"></a>
  20661. <h3>KM273</h3>
  20662. <ul>
  20663. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20664. hier: <a href='commandref.html#KM273'>KM273</a><br/>
  20665. </ul>
  20666. <a name="KNX"></a>
  20667. <h3>KNX</h3>
  20668. <ul>
  20669. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20670. hier: <a href='commandref.html#KNX'>KNX</a><br/>
  20671. </ul>
  20672. <a name="KODI"></a>
  20673. <h3>KODI</h3>
  20674. <ul>
  20675. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20676. hier: <a href='commandref.html#KODI'>KODI</a><br/>
  20677. </ul>
  20678. <a name="KOPP_FC"></a>
  20679. <h3>KOPP_FC</h3>
  20680. <ul>
  20681. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20682. hier: <a href='commandref.html#KOPP_FC'>KOPP_FC</a><br/>
  20683. </ul>
  20684. <a name="KOSTALPIKO"></a>
  20685. <h3>KOSTALPIKO</h3>
  20686. <ul>
  20687. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20688. hier: <a href='commandref.html#KOSTALPIKO'>KOSTALPIKO</a><br/>
  20689. </ul>
  20690. <a name="KS300"></a>
  20691. <h3>KS300</h3>
  20692. <div class='langLinks'>[<a href='commandref.html#KS300'>EN</a> DE]</div>
  20693. <ul>
  20694. Fhem kann KS300 bzw. KS555 Funktelegramme mit einem <a href="#FHZ">FHZ</a>,
  20695. einem <a href="WS300">WS300</a> oder einem <a href="#CUL">CUL</a> empfangen.
  20696. Daher muss eines von diesen zuerst definiert sein.<br> Dieses Modul behandelt
  20697. Nachrichten die mittels CUL oder FHZ empfangen werden.<br>
  20698. <br>
  20699. <a name="KS300define"></a>
  20700. <b>Define</b>
  20701. <ul>
  20702. <code>define &lt;name&gt; KS300 &lt;housecode&gt; [ml/raincounter [wind-factor]]</code>
  20703. <br><br>
  20704. <code>&lt;housecode&gt;</code> ist ein vierstelliger HEX-Wert, der aus
  20705. historischen Gr&uuml;nden angegeben werden muss, es wird ignoriert. Der
  20706. ml/raincounter hat einen Default-Wert von 255ml, und muss angegeben sein
  20707. wenn man den Wind-Faktor setzen will. Dieser hat einen Default-Wert von
  20708. 1.0.<br>
  20709. Beispiele:
  20710. <ul>
  20711. <code>define ks1 KS300 1234</code><br>
  20712. </ul>
  20713. </ul>
  20714. <br>
  20715. <a name="KS300set"></a>
  20716. <b>Set </b>
  20717. <ul>
  20718. N/A
  20719. </ul>
  20720. <br>
  20721. <a name="KS300get"></a>
  20722. <b>Get</b>
  20723. <ul>
  20724. N/A
  20725. </ul>
  20726. <br>
  20727. <a name="KS300attr"></a>
  20728. <b>Attributes</b>
  20729. <ul>
  20730. <li><a href="#ignore">ignore</a></li>
  20731. <li><a href="#IODev">IODev</a></li>
  20732. <li><a href="#eventMap">eventMap</a></li><br>
  20733. <li><a href="#do_not_notify">do_not_notify</a></li>
  20734. <li><a href="#showtime">showtime</a></li>
  20735. <li><a href="#model">model</a> (ks300)</li>
  20736. <li>rainadjustment<br>
  20737. Wenn dieses Attribut gesetzt ist, Regenmesser resets werden automatisch
  20738. ber&uuml;cksichtigt. Resets treten beim Wechsel der Batterie und nach
  20739. Beobachtung einiger Benutzer auch nach zuf&auml;lligen Schaltzyklen
  20740. auf. Die Voreinstellung ist 0 (aus).</li>
  20741. </ul>
  20742. <br>
  20743. </ul>
  20744. <p><a name="KeyValueProtocol"></a>
  20745. <h3>KeyValueProtocol</h3>
  20746. <ul>
  20747. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20748. hier: <a href='commandref.html#KeyValueProtocol'>KeyValueProtocol</a><br/>
  20749. </ul>
  20750. <a name="LGTV"></a>
  20751. <h3>LGTV</h3>
  20752. <ul>
  20753. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20754. hier: <a href='commandref.html#LGTV'>LGTV</a><br/>
  20755. </ul>
  20756. <a name="LGTV_IP12"></a>
  20757. <h3>LGTV_IP12</h3>
  20758. <div class='langLinks'>[<a href='commandref.html#LGTV_IP12'>EN</a> DE]</div>
  20759. <ul>
  20760. Dieses Modul steuert SmartTV's des Herstellers LG welche zwischen 2012 und 2014 produziert wurden &uuml;ber die Netzwerkschnittstelle.
  20761. Es bietet die M&ouml;glichkeit den aktuellen TV Kanal zu steuern, sowie Apps zu starten, Fernbedienungsbefehle zu senden, sowie den aktuellen Status abzufragen.
  20762. <br><br>
  20763. Es werden alle TV Modelle unterst&uuml;tzt, welche mit der <a href="https://itunes.apple.com/de/app/lg-tv-remote/id509979485?mt=8" target="_new">LG TV Remote</a> Smartphone App steuerbar sind.
  20764. <br><br>
  20765. <a name="LGTV_IP12_define"></a>
  20766. <b>Definition</b>
  20767. <ul>
  20768. <code>define &lt;name&gt; LGTV_IP12 &lt;IP-Addresse&gt; [&lt;Status_Interval&gt;]
  20769. <br><br>
  20770. define &lt;name&gt; LGTV_IP12 &lt;IP-Addresse&gt; [&lt;Off_Interval&gt;] [&lt;On_Interval&gt;]
  20771. </code>
  20772. <br><br>
  20773. Bei der Definition eines LGTV_IP12-Moduls wird eine interne Routine in Gang gesetzt, welche regelm&auml;&szlig;ig
  20774. (einstellbar durch den optionalen Parameter <code>&lt;Status_Interval&gt;</code>; falls nicht gesetzt ist der Standardwert 30 Sekunden)
  20775. den Status des TV abfragt und entsprechende Notify-/FileLog-Definitionen triggert.
  20776. <br><br>
  20777. Sofern 2 Interval-Argumente &uuml;bergeben werden, wird der erste Parameter <code>&lt;Off_Interval&gt;</code> genutzt
  20778. sofern der TV ausgeschaltet ist. Der zweiter Parameter <code>&lt;On_Interval&gt;</code>
  20779. wird verwendet, sofern der TV eingeschaltet ist.
  20780. <br><br>
  20781. Beispiel:<br><br>
  20782. <ul><code>
  20783. define TV LGTV_IP12 192.168.0.10
  20784. <br><br>
  20785. # Mit modifiziertem Status Interval (60 Sekunden)<br>
  20786. define TV LGTV_IP12 192.168.0.10 60
  20787. <br><br>
  20788. # Mit gesetztem "Off"-Interval (60 Sekunden) und "On"-Interval (10 Sekunden)<br>
  20789. define TV LGTV_IP12 192.168.0.10 60 10
  20790. </code></ul>
  20791. </ul>
  20792. <br><br>
  20793. <a name="LGTV_IP12_set"></a>
  20794. <b>Set-Kommandos </b>
  20795. <ul>
  20796. <code>set &lt;Name&gt; &lt;Kommando&gt; [&lt;Parameter&gt;]</code>
  20797. <br><br>
  20798. Aktuell werden folgende Kommandos unterst&uuml;tzt.
  20799. <br><br>
  20800. <ul>
  20801. <li><b>channel</b> &lt;Nummer&gt;&nbsp;&nbsp;-&nbsp;&nbsp; w&auml;hlt den aktuellen TV-Kanal aus</li>
  20802. <li><b>channelUp</b> &nbsp;&nbsp;-&nbsp;&nbsp; schaltet auf den n&auml;chsten Kanal um </li>
  20803. <li><b>channelDown</b> &nbsp;&nbsp;-&nbsp;&nbsp; schaltet auf den vorherigen Kanal um </li>
  20804. <li><b>removePairing</b> &nbsp;&nbsp;-&nbsp;&nbsp; l&ouml;scht das Pairing zwischen FHEM und dem TV</li>
  20805. <li><b>showPairCode</b> &nbsp;&nbsp;-&nbsp;&nbsp; zeigt den Pair-Code auf dem TV-Bildschirm an. Dieser Code muss im Attribut <a href="#LGTV_IP12_pairingcode">pairingcode</a> gesetzt werden, damit FHEM mit dem TV kommunizieren kann.</li>
  20806. <li><b>startApp</b> &lt;Name&gt;&nbsp;&nbsp;-&nbsp;&nbsp; startet eine installierte App</li>
  20807. <li><b>stopApp</b> &lt;Name&gt;&nbsp;&nbsp;-&nbsp;&nbsp; stoppt eine laufende App</li>
  20808. <li><b>statusRequest</b> &nbsp;&nbsp;-&nbsp;&nbsp; fragt den aktuellen Status ab</li>
  20809. <li><b>remoteControl</b> up,down,... &nbsp;&nbsp;-&nbsp;&nbsp; sendet Fernbedienungsbefehle</li>
  20810. </ul>
  20811. </ul>
  20812. <br><br>
  20813. <a name="LGTV_IP12_get"></a>
  20814. <b>Get-Kommandos</b>
  20815. <ul>
  20816. <code>get &lt;Name&gt; &lt;Readingname&gt;</code>
  20817. <br><br>
  20818. Aktuell stehen via GET lediglich die Werte der Readings zur Verf&uuml;gung. Eine genaue Auflistung aller m&ouml;glichen Readings folgen unter "Generierte Readings/Events".
  20819. </ul>
  20820. <br><br>
  20821. <a name="LGTV_IP12_attr"></a>
  20822. <b>Attribute</b>
  20823. <ul>
  20824. <li><a href="#do_not_notify">do_not_notify</a></li>
  20825. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  20826. <li><a name="LGTV_IP12_disable">disable</a></li>
  20827. Optionales Attribut zur Deaktivierung des zyklischen Status-Updates. Ein manuelles Update via statusRequest-Befehl ist dennoch m&ouml;glich.
  20828. <br><br>
  20829. M&ouml;gliche Werte: 0 => zyklische Status-Updates, 1 => keine zyklischen Status-Updates.<br><br>
  20830. <li><a name="LGTV_IP12_disabledForIntervals">disabledForIntervals</a> HH:MM-HH:MM HH:MM-HH-MM...</li>
  20831. Optionales Attribut zur Deaktivierung der zyklischen Status-Updates innerhalb von bestimmten Zeitintervallen.
  20832. Das Argument ist eine Leerzeichen-getrennte Liste von Minuszeichen-getrennten HH:MM Paaren (Stunde : Minute).
  20833. Falls die aktuelle Uhrzeit zwischen diese Werte f&auml;llt, dann werden zyklische Status-Updates, wie bei <a href="#LGTV_IP12_disable">disable</a>, ausgesetzt.
  20834. Statt HH:MM kann man auch HH oder HH:MM:SS angeben.<br><br>
  20835. Um einen Intervall um Mitternacht zu spezifizieren, muss man zwei einzelne Intervalle angeben, z.Bsp.:
  20836. <pre>23:00-24:00 00:00-01:00</pre>
  20837. Standardwert ist <i>nicht gesetzt</i> (dauerhaft aktiv)<br><br>
  20838. <li><a name="LGTV_IP12_request-timeout">request-timeout</a></li>
  20839. Optionales Attribut. Maximale Dauer einer Anfrage in Sekunden zum TV.
  20840. <br><br>
  20841. M&ouml;gliche Werte: 1-5 Sekunden. Standartwert ist 4 Sekunden<br><br>
  20842. <li><a name="LGTV_IP12_pairingcode">pairingcode</a></li>
  20843. Dieses Attribut speichert den Pairing Code um sich gegen&uuml;ber dem TV als vertrauensw&uuml;rdigen Controller zu authentifizieren. Der Pairing-Code kann via Set-Kommando <a href="#LGTV_IP12_set">showPairCode</a> angezeigt werden.
  20844. </ul>
  20845. <br><br>
  20846. <b>Generierte Readings/Events:</b><br>
  20847. <ul>
  20848. <li><b>3D</b> - Status des 3D-Wiedergabemodus ("true" =&gt; 3D Wiedergabemodus aktiv, "false" =&gt; 3D Wiedergabemodus nicht aktiv)</li>
  20849. <li><b>channel</b> - Die Nummer des aktuellen TV-Kanals</li>
  20850. <li><b>channelName</b> - Der Name des aktuellen TV-Kanals</li>
  20851. <li><b>currentProgram</b> - Der Name der laufenden Sendung</li>
  20852. <li><b>input</b> - Die aktuelle Eingangsquelle (z.B. Antenna, Sattelite, HDMI1, ...)</li>
  20853. <li><b>inputLabel</b> - Die benutzerdefinierte Bezeichnung der aktuellen Eingangsquelle</li>
  20854. <li><b>mute</b> on,off - Der aktuelle Stumm-Status ("on" =&gt; Stumm, "off" =&gt; Laut)</li>
  20855. <li><b>power</b> on,off - Der aktuelle Power-Status ("on" =&gt; eingeschaltet, "off" =&gt; ausgeschaltet)</li>
  20856. <li><b>volume</b> - Der aktuelle Lautstärkepegel.</li>
  20857. </ul>
  20858. </ul>
  20859. <p><a name="LGTV_WebOS"></a>
  20860. <h3>LGTV_WebOS</h3>
  20861. <div class='langLinks'>[<a href='commandref.html#LGTV_WebOS'>EN</a> DE]</div>
  20862. <ul>
  20863. <ul>
  20864. Dieses Modul steuert SmartTV's des Herstellers LG mit dem Betriebssystem WebOS &uuml;ber die Netzwerkschnittstelle. Es bietet die M&ouml;glichkeit den aktuellen TV Kanal zu steuern, sowie Apps zu starten, Fernbedienungsbefehle zu senden, sowie den aktuellen Status abzufragen.
  20865. </ul>
  20866. <p><br /><br /><strong>Definition </strong><code>define &lt;name&gt; LGTV_WebOS &lt;IP-Addresse&gt;</code> <br /><br /></p>
  20867. <ul>
  20868. <ul>
  20869. <ul>Bei der Definition eines LGTV_WebOS-Moduls wird eine interne Routine in Gang gesetzt, welche regelm&auml;&szlig;ig alle 15s den Status des TV abfragt und entsprechende Notify-/FileLog-Definitionen triggert.</ul>
  20870. </ul>
  20871. </ul>
  20872. <ul>
  20873. <ul>
  20874. <ul>Beispiel: <code>define TV LGTV_WebOS 192.168.0.10 <br /></code><br /><br /></ul>
  20875. </ul>
  20876. </ul>
  20877. <strong>Set-Kommandos </strong><code>set &lt;Name&gt; &lt;Kommando&gt; [&lt;Parameter&gt;]</code>
  20878. <ul>
  20879. <ul>
  20880. <ul>Aktuell werden folgende Kommandos unterst&uuml;tzt.</ul>
  20881. </ul>
  20882. </ul>
  20883. <ul>
  20884. <ul>
  20885. <ul>
  20886. <ul>
  20887. <li><strong>connect&nbsp;</strong> -&nbsp; Verbindet sich zum Fernseher unter der IP wie definiert, f&uuml;hrt beim ersten mal automatisch ein pairing durch</li>
  20888. <li><strong>pairing&nbsp;</strong> -&nbsp;&nbsp; Berechtigungsanfrage an den Fernseher, hier muss die Anfrage mit der Fernbedienung best&auml;tigt werden</li>
  20889. <li><strong>screenMsg</strong> &lt;Text&gt;&nbsp;&nbsp;-&nbsp;&nbsp; zeigt f&uuml;r ca 3-5s eine Nachricht auf dem Fernseher oben rechts an</li>
  20890. <li><strong>mute</strong> on, off&nbsp; -&nbsp; Schaltet den Fernseher Stumm, je nach Anschluss des Audiosignals, muss dieses am Verst&auml;rker (AV Receiver) geschehen (siehe Volume)</li>
  20891. <li><strong>volume </strong>0-100, Schieberegler&nbsp; -&nbsp;&nbsp; Setzt die Lautst&auml;rke des Fernsehers, je nach Anschluss des Audiosignals, muss dieses am Verst&auml;rker (AV Receiver) geschehen (siehe mute)</li>
  20892. <li><strong>volumeUp</strong>&nbsp; -&nbsp;&nbsp; Erh&ouml;ht die Lautst&auml;rke um den Wert 1</li>
  20893. <li><strong>volumeDown</strong>&nbsp; -&nbsp;&nbsp; Verringert die Lautst&auml;rke um den Wert 1</li>
  20894. <li><strong>channelUp</strong> &nbsp;&nbsp;-&nbsp;&nbsp; Schaltet auf den n&auml;chsten Kanal um</li>
  20895. <li><strong>channelDown</strong> &nbsp;&nbsp;-&nbsp;&nbsp; Schaltet auf den vorherigen Kanal um</li>
  20896. <li><strong>getServiceList&nbsp;</strong> -&nbsp; Fragrt die Laufenden Dienste des Fernsehers an (derzeit noch in Beta-Phase)</li>
  20897. <li><strong>on</strong>&nbsp; -&nbsp;&nbsp; Schaltet den Fernseher ein, wenn WLAN oder LAN ebenfalls im Aus-Zustand aktiv ist (siehe Bedienungsanleitung da Typabh&auml;ngig)</li>
  20898. <li><strong>off</strong> - Schaltet den Fernseher aus, wenn eine Connection aktiv ist</li>
  20899. <li><strong>launchApp</strong> &lt;Anwendung&gt;&nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert eine Anwendung aus der Liste (Maxdome, AmazonVideo, YouTube, Netflix, TV, GooglePlay, Browser, Chili, TVCast, Smartshare, Scheduler, Miracast, TV)&nbsp; <br />Achtung: TV ist hier eine Anwendung, und kein Ger&auml;teeingang</li>
  20900. <li><strong>3D</strong> on,off&nbsp; -&nbsp; 3D Modus kann hier ein- und ausgeschaltet werden, je nach Fernseher k&ouml;nnen mehrere 3D Modi unterst&uuml;tzt werden (z.B. Side-by-Side, Top-Bottom)</li>
  20901. <li><strong>stop</strong>&nbsp; -&nbsp;&nbsp; Stop-Befehl (anwendungsabh&auml;ngig)</li>
  20902. <li><strong>play&nbsp; </strong>-&nbsp;&nbsp; Play-Befehl (anwendungsabh&auml;ngig)</li>
  20903. <li><strong>pause&nbsp; </strong>-&nbsp;&nbsp; Pause-Befehl (anwendungsabh&auml;ngig)</li>
  20904. <li><strong>rewind&nbsp; </strong>-&nbsp;&nbsp; Zur&uuml;ckspulen-Befehl (anwendungsabh&auml;ngig)</li>
  20905. <li><strong>fastForward&nbsp; </strong>-&nbsp;&nbsp; Schneller-Vorlauf-Befehl (anwendungsabh&auml;ngig)</li>
  20906. <li><strong>clearInputList&nbsp;</strong> -&nbsp;&nbsp; L&ouml;scht die Liste der Ger&auml;teeing&auml;nge</li>
  20907. <li><strong>input&nbsp;</strong> - W&auml;hlt den Ger&auml;teeingang aus (Abh&auml;ngig von Typ und angeschossenen Ger&auml;ten) <br />Beispiele: extInput_AV-1, extInput_HDMI-1, extInput_HDMI-2, extInput_HDMI-3)</li>
  20908. </ul>
  20909. </ul>
  20910. </ul>
  20911. </ul>
  20912. <p><strong>Get-Kommandos</strong> <code>get &lt;Name&gt; &lt;Readingname&gt;</code><br /><br /></p>
  20913. <ul>
  20914. <ul>
  20915. <ul>Aktuell stehen via GET lediglich die Werte der Readings zur Verf&uuml;gung. Eine genaue Auflistung aller m&ouml;glichen Readings folgen unter "Generierte Readings/Events".</ul>
  20916. </ul>
  20917. </ul>
  20918. <p><br /><br /><strong>Attribute</strong></p>
  20919. <ul>
  20920. <ul>
  20921. <ul>
  20922. <li>disable</li>
  20923. Optionales Attribut zur Deaktivierung des zyklischen Status-Updates. Ein manuelles Update via statusRequest-Befehl ist dennoch m&ouml;glich.
  20924. </ul>
  20925. </ul>
  20926. </ul>
  20927. <ul>
  20928. <ul>
  20929. <ul>M&ouml;gliche Werte: 0 =&gt; zyklische Status-Updates, 1 =&gt; keine zyklischen Status-Updates.</ul>
  20930. </ul>
  20931. </ul>
  20932. <ul>
  20933. <ul>
  20934. <ul>
  20935. <li>channelGuide</li>
  20936. Optionales Attribut zur Deaktivierung der zyklischen Updates des TV-Guides, dieses beansprucht je nach Hardware einigen Netzwerkverkehr und Prozessorlast
  20937. </ul>
  20938. </ul>
  20939. </ul>
  20940. <ul>
  20941. <ul>
  20942. <ul>M&ouml;gliche Werte: 0 =&gt; keine zyklischen TV-Guide-Updates, 1 =&gt; zyklische TV-Guide-Updates</ul>
  20943. </ul>
  20944. </ul>
  20945. <ul>
  20946. <ul>
  20947. <ul>
  20948. <li>wakeOnLanMAC</li>
  20949. MAC Addresse der Netzwerkkarte vom LG TV
  20950. </ul>
  20951. </ul>
  20952. </ul>
  20953. <ul>
  20954. <ul>
  20955. <ul>
  20956. <li>wakeOnLanBroadcast</li>
  20957. Broadcast Netzwerkadresse - wakeOnLanBroadcast &lt;netzwerk&gt;.255
  20958. </ul>
  20959. </ul>
  20960. </ul>
  20961. <p><br /><br /><strong>Generierte Readings/Events:</strong></p>
  20962. <ul>
  20963. <ul>
  20964. <li><strong>3D</strong> - Status des 3D-Wiedergabemodus ("on" =&gt; 3D Wiedergabemodus aktiv, "off" =&gt; 3D Wiedergabemodus nicht aktiv)</li>
  20965. <li><strong>3DMode</strong> - Anzeigemodus (2d, 2dto3d, side_side_half, line_interleave_half, column_interleave, check_board)</li>
  20966. <li><strong>channel</strong> - Die Nummer des aktuellen TV-Kanals</li>
  20967. <li><strong>channelName</strong> - Der Name des aktuellen TV-Kanals</li>
  20968. <li><strong>channelMedia</strong> - Senderinformation</li>
  20969. <li><strong>channelCurrentEndTime </strong>- Ende der laufenden Sendung (Beta)</li>
  20970. <li><strong>channelCurrentStartTime </strong>- Start der laufenden Sendung (Beta)</li>
  20971. <li><strong>channelCurrentTitle</strong> - Der Name der laufenden Sendung (Beta)</li>
  20972. <li><strong>channelNextEndTime </strong>- Ende der n&auml;chsten Sendung (Beta)</li>
  20973. <li><strong>channelNextStartTime </strong>- Start der n&auml;chsten Sendung (Beta)</li>
  20974. <li><strong>channelNextTitle</strong> - Der Name der n&auml;chsten Sendung (Beta)</li>
  20975. <li><strong>extInput_&lt;Ger&auml;teeingang</strong>&gt; - Status der Eingangsquelle (connect_true, connect_false)</li>
  20976. <li><strong>input</strong> - Derzeit aktiver Ger&auml;teeingang</li>
  20977. <li><strong>lastResponse </strong>- Status der letzten Anfrage (ok, error &lt;Fehlertext&gt;)</li>
  20978. <li><strong>launchApp</strong> &lt;Anwendung&gt; - Gegenw&auml;rtige aktive Anwendung</li>
  20979. <li><strong>lgKey</strong> - Der Client-Key, der f&uuml;r die Verbindung verwendet wird</li>
  20980. <li><strong>mute</strong> on,off - Der aktuelle Stumm-Status ("on" =&gt; Stumm, "off" =&gt; Laut)</li>
  20981. <li><strong>pairing</strong> paired, unpaired - Der Status des Pairing</li>
  20982. <li><strong>presence </strong>absent, present - Der aktuelle Power-Status ("present" =&gt; eingeschaltet, "absent" =&gt; ausgeschaltet)</li>
  20983. <li><strong>state</strong> on, off - Status des Fernsehers (&auml;hnlich presence)</li>
  20984. <li><strong>volume</strong> - Der aktuelle Lautst&auml;rkepegel -1, 0-100 (-1 invalider Wert)</li>
  20985. </ul>
  20986. </ul>
  20987. </ul>
  20988. <p><a name="LIGHTIFY"></a>
  20989. <h3>LIGHTIFY</h3>
  20990. <ul>
  20991. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20992. hier: <a href='commandref.html#LIGHTIFY'>LIGHTIFY</a><br/>
  20993. </ul>
  20994. <a name="LINDY_HDMI_SWITCH"></a>
  20995. <h3>LINDY_HDMI_SWITCH</h3>
  20996. <ul>
  20997. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  20998. hier: <a href='commandref.html#LINDY_HDMI_SWITCH'>LINDY_HDMI_SWITCH</a><br/>
  20999. </ul>
  21000. <a name="LIRC"></a>
  21001. <h3>LIRC</h3>
  21002. <ul>
  21003. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  21004. hier: <a href='commandref.html#LIRC'>LIRC</a><br/>
  21005. </ul>
  21006. <a name="LUXTRONIK2"></a>
  21007. <h3>LUXTRONIK2</h3>
  21008. <div class='langLinks'>[<a href='commandref.html#LUXTRONIK2'>EN</a> DE]</div>
  21009. <div>
  21010. <ul>
  21011. Die Luxtronik 2.0 and 2.1 ist eine Heizungssteuerung der Firma <a href="http://www.alpha-innotec.de">Alpha InnoTec AIT</a>, welche in Wärmepumpen von Alpha InnoTec, Buderus (Logamatic HMC20, HMC20 Z), CTA All-In-One (Aeroplus), Elco, Nibe (AP-AW10), Roth (ThermoAura&reg;, ThermoTerra), Novelan (WPR NET) und Wolf Heiztechnik (BWL/BWS) verbaut ist. Sie besitzt einen Ethernet (RJ45) Anschluss, so dass sie direkt in lokale Netzwerke (LAN) integriert werden kann.
  21012. <br>
  21013. <i>Das Modul wurde bisher mit folgender Steuerung-Firmware getestet: V1.51, V1.54C, V1.60, V1.64, V1.69, V1.70, V1.73, V1.77, V1.80, V1.81.</i>
  21014. <br>
  21015. Mehr Infos im entsprechenden <u><a href="http://www.fhemwiki.de/wiki/Luxtronik_2.0">Artikel der FHEM-Wiki</a></u>.
  21016. <br>&nbsp;
  21017. <br>
  21018. <a name="LUXTRONIK2define"></a>
  21019. <b>Define</b>
  21020. <ul>
  21021. <code>define &lt;name&gt; LUXTRONIK2 &lt;IP-Adresse[:Port]&gt; [Abfrageintervall]</code>
  21022. <br>
  21023. Wenn das Abfrage-Interval nicht angegeben ist, wird es auf 300 (Sekunden) gesetzt. Der kleinste mĂśgliche Wert ist 10.
  21024. <br>
  21025. Die Angabe des Portes kann gewĂśhnlich entfallen.
  21026. <br>
  21027. Beispiel: <code>define Heizung LUXTRONIK2 192.168.0.12 600</code>
  21028. </ul>
  21029. <br>
  21030. <a name="LUXTRONIK2set"></a>
  21031. <b>Set</b><br>
  21032. <ul>
  21033. Durch einen Firmware-Test wird vor jeder Set-Operation sichergestellt, dass Wärmepumpen mit ungetesteter Firmware nicht unabsichtlich beschädigt werden.
  21034. <br>&nbsp;
  21035. <li><code>activeTariff &lt; 0 - 9 &gt;</code>
  21036. <br>
  21037. Erlaubt die gezielte, separate Erfassung der statistischen Verbrauchswerte (doStatistics = 1) fßr verschiedene Tarife (Doppelstromzähler)<br>
  21038. Dieser Wert muss entsprechend des vorhandenen oder geplanten Tarifes zum jeweiligen Zeitpunkt z.B. durch den FHEM-Befehl "at" gesetzt werden.<br>
  21039. 0 = tariflos
  21040. </li><br>
  21041. <li><code>heatingCurveEndPoint &lt;Temperatur&gt;</code><br>
  21042. Einstellung des Heizkurven-Parameters. In 0.1er Schritten einstellbar.
  21043. </li><br>
  21044. <li><code>heatingCurveOffset &lt;Temperatur&gt;</code><br>
  21045. Einstellung des Heizkurven-Parameters. In 0.1er Schritten einstellbar.
  21046. </li><br>
  21047. <li><code>heatingSystemCircPumpDeaerate &lt;on | off&gt;</code><br>
  21048. Schaltet die Umwälzpumpe des Heizkreislaufes an oder aus. Damit werden auch im Sommer alle Heizkreise auf gleicher Temperatur gehalten und es findet eine geringfßgige Umverteilung von Wärme und Kßhle statt.
  21049. <br>
  21050. Achtung! Es wird die EntlĂźftungsfunktion der Steuerung genutzt. Dadurch taktet die Pumpe jeweils 5 Minuten ein und 5 Minuten aus.
  21051. </li><br>
  21052. <li><code>hotWaterCircPumpDeaerate &lt;on | off&gt;</code><br>
  21053. Schaltet die externe Warmwasser-Zirkulationspumpe an oder aus. Durch die Zirkulation wird das Abkßhlen des Warmwassers in den Hausleitungen verhindert. Der Wärmeverbrauch steigt jedoch drastisch.
  21054. <br>
  21055. Achtung! Es wird die EntlĂźftungsfunktion der Steuerung genutzt. Dadurch taktet die Pumpe jeweils 5 Minuten ein und 5 Minuten aus.
  21056. </li><br>
  21057. <li><code>hotWaterTemperatureTarget &lt;Temperatur&gt;</code>
  21058. <br>
  21059. Soll-Temperatur des Hei�wasserspeichers in °C
  21060. </li><br>
  21061. <li><code>opModeHotWater &lt;Betriebsmodus&gt;</code>
  21062. <br>
  21063. Betriebsmodus des Hei�wasserspeichers ( Auto | Party | Off )
  21064. </li><br>
  21065. <li><code>resetStatistics &lt;statWerte&gt;</code>
  21066. <br>
  21067. LÜscht die ausgewählten statistischen Werte: <i>all, statBoilerGradientCoolDownMin, statAmbientTemp..., statElectricity..., statHours..., statHeatQ...</i>
  21068. </li><br>
  21069. <li><code>returnTemperatureHyst &lt;Temperatur&gt;</code>
  21070. <br>
  21071. Sollwert-Hysterese der Heizungsregelung. 0.5 K bis 3 K. In 0.1er Schritten einstellbar.
  21072. </li><br>
  21073. <li><code>returnTemperatureSetBack &lt;Temperatur&gt;</code>
  21074. <br>
  21075. Absenkung oder Anhebung der RĂźcklauftemperatur von -5 K bis + 5K. In 0.1er Schritten einstellbar.
  21076. </li><br>
  21077. <li><code>INTERVAL &lt;Sekunden&gt;</code>
  21078. <br>
  21079. Abfrageintervall in Sekunden
  21080. </li><br>
  21081. <li><code>statusRequest</code>
  21082. <br>
  21083. Aktualisieren der Gerätewerte
  21084. </li><br>
  21085. <li><code>synchClockHeatPump</code>
  21086. <br>
  21087. Abgleich der Uhr der Steuerung mit der FHEM Zeit. <b>Diese �nderung geht verloren, sobald die Steuerung ausgeschaltet wird!!</b></li>
  21088. </ul>
  21089. <br>
  21090. <a name="LUXTRONIK2get"></a>
  21091. <b>Get</b>
  21092. <ul>
  21093. <li><code>heatingCurveParameter &lt;Aussentemp1 Solltemp1 Aussentemp2 Solltemp2&gt;</code>
  21094. <br>
  21095. Ermittelt rekursiv anhand zweier Punkte auf der Heizkurve die entsprechenden Heizkurven-Parameter <i>heatingCurveEndPoint</i> und <i>heatingCurveOffset</i>.<br>
  21096. Diese kĂśnnen dann Ăźber die entsprechenden set-Befehl einstellt werden.
  21097. </li>
  21098. <br>
  21099. <li><code>rawData</code>
  21100. <br>
  21101. Zeigt alle von der Steuerung auslesbaren Parameter und Betriebswerte an.<br>
  21102. Diese kÜnnen dann mit den Attributen <i>userHeatpumpParameters</i> und <i>userHeatpumpValues</i> einem Gerätewert zugeordnet werden.
  21103. </li><br>
  21104. </ul>
  21105. <br>
  21106. <a name="LUXTRONIK2attr"></a>
  21107. <b>Attribute</b>
  21108. <ul>
  21109. <li><code>allowSetParameter &lt; 0 | 1 &gt;</code>
  21110. <br>
  21111. Die internen <a href="#LUXTRONIK2set">Parameter</a> der Wärmepumpensteuerung kÜnnen
  21112. nur geändert werden, wenn dieses Attribut auf 1 gesetzt ist.
  21113. </li><br>
  21114. <li><code>autoSynchClock &lt;Zeitunterschied&gt;</code>
  21115. <br>
  21116. Die Uhr der Wärmepumpe wird automatisch korrigiert, wenn ein gewisser <i>Zeitunterschied</i> (10 s - 600 s)
  21117. gegenßber der FHEM Zeit erreicht ist. Zuvor wird die Kompatibilität der Firmware ßberprßft.<br>
  21118. <i>(Ein Gerätewert 'delayDeviceTimeCalc' &lt;= 2 s ist auf die internen Berechnungsintervalle der
  21119. Wärmepumpensteuerung zurßckzufßhren.)</i>
  21120. </li><br>
  21121. <li><code>compressor2ElectricalPowerWatt</code><br>
  21122. Betriebsleistung des zweiten Kompressors zur Berechnung der Arbeitszahl (erzeugte Wärme pro elektrische Energieeinheit)
  21123. und Abschätzung des elektrischen Verbrauches (Auswertungen noch nicht implementiert)
  21124. </li><br>
  21125. <li><code>doStatistics &lt; 0 | 1 | 2 &gt;</code>
  21126. <br>
  21127. Berechnet statistische Werte: <i>statBoilerGradientHeatUp, statBoilerGradientCoolDown,
  21128. statBoilerGradientCoolDownMin (Wärmeverlust des Boilers)</i>
  21129. <br>
  21130. Bildet tägliche, monatliche und jährliche Statistiken bestimmter Gerätewerte.<br>
  21131. FĂźr grafische Auswertungen kĂśnnen die Werte der Form 'stat<i>ReadingName</i><b>Last</b>' genutzt werden.
  21132. </li><br>
  21133. <li><code>heatPumpElectricalPowerWatt &lt;E-Leistung in Watt&gt;</code><br>
  21134. Elektrische Leistungsaufnahme der Wärmepumpe in Watt bei einer Vorlauftemperatur von 35°C zur Berechnung der Arbeitszahl (erzeugte Wärme pro elektrische Energieeinheit)
  21135. und Abschätzung des elektrischen Verbrauches
  21136. </li><br>
  21137. <li><code>heatPumpElectricalPowerFactor</code><br>
  21138. �nderung der elektrischen Leistungsaufnahme pro 1 K Vorlauf-Temperaturdifferenz zu 35°C
  21139. <br>
  21140. (z.B. 2% pro 1 K = 0,02)
  21141. </li><br>
  21142. <li><code>heatRodElectricalPowerWatt &lt;E-Leistung in Watt&gt;</code><br>
  21143. Elektrische Leistungsaufnahme der Heizstäbe in Watt zur Abschätzung des elektrischen Verbrauches
  21144. </li><br>
  21145. <li><code>ignoreFirmwareCheck &lt; 0 | 1 &gt;</code>
  21146. <br>
  21147. Durch einen Firmware-Test wird vor jeder Set-Operation sichergestellt, dass Wärmepumpen
  21148. mit ungetesteter Firmware nicht unabsichtlich beschädigt werden. Wenn dieses Attribute auf 1
  21149. gesetzt ist, dann wird der Firmware-Test ignoriert und neue Firmware kann getestet werden.
  21150. Dieses Attribut wird jedoch ignoriert, wenn die Steuerung-Firmware bereits als nicht kompatibel berichtet wurde.
  21151. </li><br>
  21152. <li><code>statusHTML</code>
  21153. <br>
  21154. Wenn gesetzt, dann wird ein HTML-formatierter Wert "floorplanHTML" erzeugt,
  21155. welcher vom Modul <a href="#FLOORPLAN">FLOORPLAN</a> genutzt werden kann.<br>
  21156. Momentan wird nur geprĂźft, ob der Wert dieses Attributes ungleich NULL ist,
  21157. der entsprechende Gerätewerte besteht aus dem aktuellen Wärmepumpenstatus und der Warmwassertemperatur.
  21158. </li><br>
  21159. <li><code>userHeatpumpParameters &lt;Index [Name][,Index2 [Name2],Index3 [Name3] ...]&gt;</code>
  21160. <br>
  21161. Erlaubt das Auslesen der Werte benutzerspezifischer Parameter. Die Indizes der verfĂźgbaren Parameterwerte kĂśnnen mit dem get-Befehl <i>rawData</i> ermittelt werden.<br>
  21162. In der Attributdefinition kann der Name hinter den Index getrennt durch ein Leerzeichen geschrieben werden. Der jeweilige Parameter-Wert wird entweder mit dem Präfix "userParameter..." oder unter dem angegebenen Namen angezeigt. <br>
  21163. Mehrere Indizes werden durch Kommas getrennt.<br>
  21164. Nicht mehr benÜtigte Gerätewerte kÜnnen mit dem FHEM-Befehl <a href="#deletereading">deleteReading</a> gelÜscht werden.
  21165. </li><br>
  21166. <li><code>userHeatpumpValues &lt;Index Name[,Index2 Name2,Index3 Name3 ...]&gt;</code>
  21167. <br>
  21168. Erlaubt das Auslesen benutzerspezifische Betriebswerte. Vorgehen wie bei <i>userHeatpumpParameters</i>.
  21169. </li><br>
  21170. <li><a href="#readingFnAttributes">readingFnAttributes</a>
  21171. </li><br>
  21172. </ul>
  21173. </ul>
  21174. </div>
  21175. <p><a name="LaCrosse"></a>
  21176. <h3>LaCrosse</h3>
  21177. <ul>
  21178. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  21179. hier: <a href='commandref.html#LaCrosse'>LaCrosse</a><br/>
  21180. </ul>
  21181. <a name="LaCrosseGateway"></a>
  21182. <h3>LaCrosseGateway</h3>
  21183. <ul>
  21184. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  21185. hier: <a href='commandref.html#LaCrosseGateway'>LaCrosseGateway</a><br/>
  21186. </ul>
  21187. <a name="Level"></a>
  21188. <h3>Level</h3>
  21189. <ul>
  21190. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  21191. hier: <a href='commandref.html#Level'>Level</a><br/>
  21192. </ul>
  21193. <a name="LightScene"></a>
  21194. <h3>LightScene</h3>
  21195. <ul>
  21196. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  21197. hier: <a href='commandref.html#LightScene'>LightScene</a><br/>
  21198. </ul>
  21199. <a name="Log2Syslog"></a>
  21200. <h3>Log2Syslog</h3>
  21201. <div class='langLinks'>[<a href='commandref.html#Log2Syslog'>EN</a> DE]</div>
  21202. <ul>
  21203. Das Modul sendet FHEM Systemlog-Einträge und/oder Events an einen externen Syslog-Server weiter oder agiert als
  21204. Syslog-Server um Syslog-Meldungen anderer Geräte zu empfangen. <br>
  21205. Die Implementierung des Syslog-Protokolls erfolgte entsprechend den Vorgaben von <a href="https://tools.ietf.org/html/rfc5424"> RFC5424 (IETF)</a>,
  21206. <a href="https://tools.ietf.org/html/rfc3164"> RFC3164 (BSD)</a> sowie dem TLS Transport Protokoll nach
  21207. <a href="https://tools.ietf.org/pdf/rfc5425.pdf"> RFC5425</a>. <br>
  21208. <br>
  21209. <b>Voraussetzungen</b>
  21210. <ul>
  21211. <br/>
  21212. Es werden die Perl Module "IO::Socket::INET" und "IO::Socket::SSL" (wenn SSL benutzt) benĂśtigt und mĂźssen installiert sein. <br>
  21213. Das Modul kann Ăźber CPAN oder, auf Debian Linux Systemen, besser mit <br><br>
  21214. <code>sudo apt-get install libio-socket-multicast-perl</code><br>
  21215. <code>sudo apt-get install libio-socket-ssl-perl</code><br><br>
  21216. installiert werden.
  21217. </ul>
  21218. <br/>
  21219. <a name="Log2Syslogdefine"></a>
  21220. <b>Definition und Verwendung</b>
  21221. <ul>
  21222. <br>
  21223. Je nach Verwendungszweck kann ein Syslog-Server (MODEL Collector) oder ein Syslog-Client (MODEL Sender) definiert
  21224. werden. <br>
  21225. Der Collector empfängt Meldungen im Syslog-Format anderer Geräte und generiert daraus Events/Readings zur Weiterverarbeitung in
  21226. FHEM. Das Sender-Device leitet FHEM Systemlog Einträge und/oder Events an einen externen Syslog-Server weiter. <br>
  21227. </ul>
  21228. <br>
  21229. <b><h4> Der Collector (Syslog-Server) </h4></b>
  21230. <ul>
  21231. <b> Definition eines Collectors </b>
  21232. <br>
  21233. <ul>
  21234. <br>
  21235. <code>define &lt;name&gt; Log2Syslog </code><br>
  21236. <br>
  21237. </ul>
  21238. Die Definition benĂśtigt keine weiteren Parameter.
  21239. In der Grundeinstellung wird der Syslog-Server mit dem Port=1514/UDP und dem Parsingprofil "IETF" initialisiert.
  21240. Mit dem <a href="#Log2Syslogattr">Attribut</a> "parseProfile" kÜnnen alternativ andere Formate (z.B. BSD) ausgewählt werden.
  21241. Der Syslog-Server ist sofort betriebsbereit, parst die Syslog-Daten entsprechend der Richtlinien nach RFC5424 und generiert
  21242. aus den eingehenden Syslog-Meldungen FHEM-Events (Daten sind im Eventmonitor sichtbar). <br><br>
  21243. <br>
  21244. <b>Beispiel fĂźr einen Collector: </b><br>
  21245. <ul>
  21246. <br>
  21247. <code>define SyslogServer Log2Syslog </code><br>
  21248. <br>
  21249. </ul>
  21250. Im Eventmonitor kĂśnnen die generierten Events kontrolliert werden. <br>
  21251. <br>
  21252. Beispiel von generierten Events mit Attribut parseProfile=IETF: <br>
  21253. <br>
  21254. <code>
  21255. 2018-07-31 17:07:24.382 Log2Syslog SyslogServer HOST: fhem.myds.me || FAC: syslog || SEV: Notice || ID: Prod_event || CONT: USV state: OL <br>
  21256. 2018-07-31 17:07:24.858 Log2Syslog SyslogServer HOST: fhem.myds.me || FAC: syslog || SEV: Notice || ID: Prod_event || CONT: HMLAN2 loadLvl: low <br>
  21257. </code>
  21258. <br>
  21259. Zwischen den einzelnen Feldern wird der Trenner "||" verwendet.
  21260. Die Bedeutung der Felder in diesem Beispiel sind:
  21261. <br><br>
  21262. <ul>
  21263. <table>
  21264. <colgroup> <col width=20%> <col width=80%> </colgroup>
  21265. <tr><td> <b>HOST</b> </td><td> der Sender des Datensatzes </td></tr>
  21266. <tr><td> <b>FAC</b> </td><td> Facility (Kategorie) nach RFC5424 </td></tr>
  21267. <tr><td> <b>SEV</b> </td><td> Severity (Schweregrad) nach RFC5424 </td></tr>
  21268. <tr><td> <b>ID</b> </td><td> Ident-Tag </td></tr>
  21269. <tr><td> <b>CONT</b> </td><td> der Nachrichtenteil der empfangenen Meldung </td></tr>
  21270. </table>
  21271. </ul>
  21272. <br>
  21273. Der Timestamp der generierten Events wird aus den Syslogmeldungen geparst. Sollte diese Information nicht mitgeliefert
  21274. werden, wird der aktuelle Timestamp des Systems verwendet. <br>
  21275. Der Name des Readings im generierten Event entspricht dem aus der Syslogmeldung geparsten Hostnamen.
  21276. Ist der Hostname in der Meldung nicht enthalten, wird die IP-Adresse des Senders aus dem Netzwerk Interface abgerufen und
  21277. der Hostname ermittelt sofern mĂśglich.
  21278. In diesem Fall wird der ermittelte Hostname bzw. die IP-Adresse als Reading im Event genutzt.
  21279. <br>
  21280. Nach der Definition des Collectors werden die Syslog-Meldungen im IETF-Format gemä� RFC5424 erwartet. Werden die Daten
  21281. nicht in diesem Format geliefert bzw. kĂśnnen nicht geparst werden, erscheint im Reading "state" die Meldung
  21282. <b>"parse error - see logfile"</b> und die empfangenen Syslog-Daten werden im Logfile im raw-Format ausgegeben. Das Reading
  21283. "Parse_Err_No" enthält die Anzahl der Parse-Fehler seit Modulstart. <br>
  21284. In diesem Fall kann mit dem <a href="#Log2Syslogattr">Attribut</a> "parseProfile" ein anderes vordefiniertes Parse-Profil
  21285. eingestellt bzw. ein eigenes Profil definiert werden. <br><br>
  21286. Zur Definition einer <b>eigenen Parse-Funktion</b> wird
  21287. "parseProfile = ParseFn" eingestellt und im <a href="#Log2Syslogattr">Attribut</a> "parseFn" eine spezifische
  21288. Parse-Funktion hinterlegt. <br>
  21289. Die im Event verwendeten Felder und deren Reihenfolge kĂśnnen aus einem Wertevorrat mit dem
  21290. <a href="#Log2Syslogattr">Attribut</a> "outputFields" bestimmt werden. Je nach verwendeten Parse-Funktion kĂśnnen alle oder
  21291. nur eine Untermenge der verfßgbaren Felder verwendet werden. Näheres dazu in der Beschreibung des Attributes "parseProfile". <br>
  21292. <br>
  21293. Das Verhalten der Eventgenerierung kann mit dem <a href="#Log2Syslogattr">Attribut</a> "makeEvent" angepasst werden. <br>
  21294. </ul>
  21295. <br>
  21296. <b><h4> Der Sender (Syslog-Client) </h4></b>
  21297. <ul>
  21298. <b> Definition eines Senders </b>
  21299. <br>
  21300. <ul>
  21301. <br>
  21302. <code>define &lt;name&gt; Log2Syslog &lt;Zielhost&gt; [ident:&lt;ident&gt;] [event:&lt;regexp&gt;] [fhem:&lt;regexp&gt;] </code><br>
  21303. <br>
  21304. </ul>
  21305. <ul>
  21306. <table>
  21307. <colgroup> <col width=20%> <col width=80%> </colgroup>
  21308. <tr><td> <b>&lt;Zielhost&gt;</b> </td><td> Host (Name oder IP-Adresse) auf dem der Syslog-Server läuft </td></tr>
  21309. <tr><td> <b>[ident:&lt;ident&gt;]</b> </td><td> optionaler Programm Identifier. Wenn nicht gesetzt wird per default der Devicename benutzt. </td></tr>
  21310. <tr><td> <b>[event:&lt;regexp&gt;]</b> </td><td> optionaler regulärer Ausdruck zur Filterung von Events zur Weiterleitung </td></tr>
  21311. <tr><td> <b>[fhem:&lt;regexp&gt;]</b> </td><td> optionaler regulärer Ausdruck zur Filterung von FHEM Logs zur Weiterleitung </td></tr>
  21312. </table>
  21313. </ul>
  21314. <br><br>
  21315. Direkt nach der Definition sendet das neue Device alle neu auftretenden FHEM Systemlog Einträge und Events ohne weitere
  21316. Einstellungen an den Zielhost, Port=514/UDP Format=IETF, wenn reguläre Ausdrßcke fßr Events/FHEM angegeben wurden. <br>
  21317. Wurde kein Regex gesetzt, erfolgt keine Weiterleitung von Events oder FHEM Systemlogs. <br><br>
  21318. Die Verbose-Level der FHEM Systemlogs werden in entsprechende Schweregrade der Syslog-Messages umgewandelt. <br>
  21319. Weiterhin wird der Meldungstext der FHEM Systemlogs und Events nach den SignalwĂśrtern "warning" und "error" durchsucht
  21320. (Gro�- /Kleinschreibung wird nicht beachtet). Davon abhängig wird der Schweregrad ebenfalls äquivalent gesetzt und ßbersteuert
  21321. einen eventuell bereits durch Verbose-Level gesetzten Schweregrad. <br><br>
  21322. <b>Umsetzungstabelle Verbose-Level in Syslog-Schweregrad Stufe: </b><br><br>
  21323. <ul>
  21324. <table>
  21325. <colgroup> <col width=40%> <col width=60%> </colgroup>
  21326. <tr><td> <b>Verbose-Level</b> </td><td> <b>Schweregrad in Syslog</b> </td></tr>
  21327. <tr><td> 0 </td><td> Critical </td></tr>
  21328. <tr><td> 1 </td><td> Error </td></tr>
  21329. <tr><td> 2 </td><td> Warning </td></tr>
  21330. <tr><td> 3 </td><td> Notice </td></tr>
  21331. <tr><td> 4 </td><td> Informational </td></tr>
  21332. <tr><td> 5 </td><td> Debug </td></tr>
  21333. </table>
  21334. </ul>
  21335. <br>
  21336. <br>
  21337. <b>Beispiel fĂźr einen Sender: </b><br>
  21338. <ul>
  21339. <br>
  21340. <code>define splunklog Log2Syslog fhemtest 192.168.2.49 ident:Test event:.* fhem:.* </code><br/>
  21341. <br>
  21342. </ul>
  21343. Es werden alle Events weitergeleitet wie deses Beispiel der raw-Ausgabe eines Splunk Syslog Servers zeigt:<br/>
  21344. <pre>
  21345. Aug 18 21:06:46 fhemtest.myds.me 1 2017-08-18T21:06:46 fhemtest.myds.me Test_event 13339 FHEM [version@Log2Syslog version="4.2.0"] : LogDB sql_processing_time: 0.2306
  21346. Aug 18 21:06:46 fhemtest.myds.me 1 2017-08-18T21:06:46 fhemtest.myds.me Test_event 13339 FHEM [version@Log2Syslog version="4.2.0"] : LogDB background_processing_time: 0.2397
  21347. Aug 18 21:06:45 fhemtest.myds.me 1 2017-08-18T21:06:45 fhemtest.myds.me Test_event 13339 FHEM [version@Log2Syslog version="4.2.0"] : LogDB CacheUsage: 21
  21348. Aug 18 21:08:27 fhemtest.myds.me 1 2017-08-18T21:08:27.760 fhemtest.myds.me Test_fhem 13339 FHEM [version@Log2Syslog version="4.2.0"] : 4: CamTER - Informations of camera Terrasse retrieved
  21349. Aug 18 21:08:27 fhemtest.myds.me 1 2017-08-18T21:08:27.095 fhemtest.myds.me Test_fhem 13339 FHEM [version@Log2Syslog version="4.2.0"] : 4: CamTER - CAMID already set - ignore get camid
  21350. </pre>
  21351. Der Aufbau der Payload unterscheidet sich je nach verwendeten logFormat. <br><br>
  21352. <b>logFormat IETF:</b> <br><br>
  21353. "&lt;PRIVAL&gt;IETFVERS TIME MYHOST IDENT PID MID [SD-FIELD] MESSAGE" <br><br>
  21354. <ul>
  21355. <table>
  21356. <colgroup> <col width=10%> <col width=90%> </colgroup>
  21357. <tr><td> PRIVAL </td><td> Priority Wert (kodiert aus "facility" und "severity") </td></tr>
  21358. <tr><td> IETFVERS </td><td> Version der benutzten RFC5424 Spezifikation </td></tr>
  21359. <tr><td> TIME </td><td> Timestamp nach RFC5424 </td></tr>
  21360. <tr><td> MYHOST </td><td> Internal MYHOST </td></tr>
  21361. <tr><td> IDENT </td><td> Ident-Tag aus DEF wenn angegeben, sonst der eigene Devicename. Die Angabe wird mit "_fhem" (FHEM-Log) bzw. "_event" (Event-Log) ergänzt. </td></tr>
  21362. <tr><td> PID </td><td> fortlaufende Payload-ID </td></tr>
  21363. <tr><td> MID </td><td> fester Wert "FHEM" </td></tr>
  21364. <tr><td> [SD-FIELD] </td><td> Structured Data Feld. Enthält Informationen zur verwendeten Modulversion (die Klammern "[]" sind Bestandteil des Feldes)</td></tr>
  21365. <tr><td> MESSAGE </td><td> der zu Ăźbertragende Datensatz </td></tr>
  21366. </table>
  21367. </ul>
  21368. <br>
  21369. <b>logFormat BSD:</b> <br><br>
  21370. "&lt;PRIVAL&gt;MONTH DAY TIME MYHOST IDENT[PID]: MESSAGE" <br><br>
  21371. <ul>
  21372. <table>
  21373. <colgroup> <col width=10%> <col width=90%> </colgroup>
  21374. <tr><td> PRIVAL </td><td> Priority Wert (kodiert aus "facility" und "severity") </td></tr>
  21375. <tr><td> MONTH </td><td> Monatsangabe nach RFC3164 </td></tr>
  21376. <tr><td> DAY </td><td> Tag des Monats nach RFC3164 </td></tr>
  21377. <tr><td> TIME </td><td> Zeitangabe nach RFC3164 </td></tr>
  21378. <tr><td> MYHOST </td><td> Internal MYHOST </td></tr>
  21379. <tr><td> TAG </td><td> Ident-Tag aus DEF wenn angegeben, sonst der eigene Devicename. Die Angabe wird mit "_fhem" (FHEM-Log) bzw. "_event" (Event-Log) ergänzt. </td></tr>
  21380. <tr><td> PID </td><td> Die ID der Mitteilung (= Sequenznummer) </td></tr>
  21381. <tr><td> MESSAGE </td><td> der zu Ăźbertragende Datensatz </td></tr>
  21382. </table>
  21383. </ul>
  21384. <br>
  21385. </ul>
  21386. <br><br>
  21387. <a name="Log2SyslogSet"></a>
  21388. <b>Set</b>
  21389. <ul>
  21390. <br>
  21391. <ul>
  21392. <li><b>reopen </b><br>
  21393. <br>
  21394. Schlie�t eine bestehende Client/Server-Verbindung und Üffnet sie erneut.
  21395. Der Befehl kann z.B. bei "broken pipe"-Fehlern hilfreich sein.
  21396. </li>
  21397. </ul>
  21398. <br>
  21399. <ul>
  21400. <li><b>sendTestMessage [&lt;Message&gt;] </b><br>
  21401. <br>
  21402. Mit einem Devicetyp "Sender" kann abhängig vom Attribut "logFormat" eine Testnachricht im BSD- bzw. IETF-Format
  21403. gesendet werden. Wird eine optionale eigene &lt;Message&gt; angegeben, wird diese Nachricht im raw-Format ohne
  21404. Formatanpassung (BSD/IETF) gesendet. Das Attribut "disable = maintenance" legt fest, dass keine Daten ausser eine
  21405. Testnachricht an den Empfänger gesendet wird.
  21406. </li>
  21407. </ul>
  21408. <br>
  21409. </ul>
  21410. <br>
  21411. <a name="Log2SyslogGet"></a>
  21412. <b>Get</b>
  21413. <ul>
  21414. <br>
  21415. <ul>
  21416. <li><b>certinfo </b><br>
  21417. <br>
  21418. Zeigt auf einem Sender-Device Informationen zum Serverzertifikat an sofern eine TLS-Session aufgebaut wurde
  21419. (Reading "SSL_Version" ist nicht "n.a.").
  21420. </li>
  21421. </ul>
  21422. <br>
  21423. <ul>
  21424. <li><b>versionNotes </b><br>
  21425. <br>
  21426. Zeigt Release Informationen und Hinweise zum Modul an. Es sind nur Informationen mit Bedeutung fĂźr den Modulnutzer
  21427. enthalten.
  21428. </li>
  21429. </ul>
  21430. <br>
  21431. </ul>
  21432. <br>
  21433. <a name="Log2Syslogattr"></a>
  21434. <b>Attribute</b>
  21435. <ul>
  21436. <br>
  21437. <ul>
  21438. <a name="addTimestamp"></a>
  21439. <li><b>addTimestamp </b><br>
  21440. <br/>
  21441. Das Attribut ist nur fĂźr "Sender" verwendbar. Wenn gesetzt, werden FHEM Timestamps im Content-Feld der Syslog-Meldung
  21442. mit Ăźbertragen.<br>
  21443. Per default werden die Timestamps nicht im Content-Feld hinzugefĂźgt, da innerhalb der Syslog-Meldungen im IETF- bzw.
  21444. BSD-Format bereits Zeitstempel gemä� RFC-Vorgabe erstellt werden.<br>
  21445. Die Einstellung kann hilfeich sein wenn mseclog in FHEM aktiviert ist.<br>
  21446. <br/>
  21447. Beispielausgabe (raw) eines Splunk Syslog Servers:<br/>
  21448. <pre>Aug 18 21:26:55 fhemtest.myds.me 1 2017-08-18T21:26:55 fhemtest.myds.me Test_event 13339 FHEM - : 2017-08-18 21:26:55 USV state: OL
  21449. Aug 18 21:26:54 fhemtest.myds.me 1 2017-08-18T21:26:54 fhemtest.myds.me Test_event 13339 FHEM - : 2017-08-18 21:26:54 Bezug state: done
  21450. Aug 18 21:26:54 fhemtest.myds.me 1 2017-08-18T21:26:54 fhemtest.myds.me Test_event 13339 FHEM - : 2017-08-18 21:26:54 recalc_Bezug state: Next: 21:31:59
  21451. </pre>
  21452. </li>
  21453. </ul>
  21454. <br>
  21455. <ul>
  21456. <a name="addStateEvent"></a>
  21457. <li><b>addStateEvent </b><br>
  21458. <br>
  21459. Das Attribut ist nur fßr "Sender" verwendbar. Wenn gesetzt, werden state-events mit dem Reading "state" ergänzt.<br>
  21460. Die Standardeinstellung ist ohne state-Ergänzung.
  21461. </li>
  21462. </ul>
  21463. <br>
  21464. <br>
  21465. <ul>
  21466. <a name="contDelimiter"></a>
  21467. <li><b>contDelimiter </b><br>
  21468. <br>
  21469. Das Attribut ist nur fßr "Sender" verwendbar. Es enthält ein zusätzliches Zeichen welches unmittelber vor das
  21470. Content-Feld eingefĂźgt wird. <br>
  21471. Diese MÜglichkeit ist in manchen speziellen Fällen hilfreich (z.B. kann das Zeichen ':' eingefßgt werden um eine
  21472. ordnungsgemä�e Anzeige im Synology-Protokollcenter zu erhalten).
  21473. </li>
  21474. </ul>
  21475. <br>
  21476. <br>
  21477. <ul>
  21478. <a name="disable"></a>
  21479. <li><b>disable [1 | 0 | maintenance] </b><br>
  21480. <br>
  21481. Das Device wird aktiviert, deaktiviert bzw. in den Maintenance-Mode geschaltet. Im Maintenance-Mode kann mit dem
  21482. "Sender"-Device eine Testnachricht gesendet werden (siehe "set &lt;name&gt; sendTestMessage").
  21483. </li>
  21484. </ul>
  21485. <br>
  21486. <br>
  21487. <ul>
  21488. <a name="logFormat"></a>
  21489. <li><b>logFormat [ BSD | IETF ]</b><br>
  21490. <br>
  21491. Das Attribut ist nur fĂźr "Sender" verwendbar. Es stellt das Protokollformat ein. (default: "IETF") <br>
  21492. </li>
  21493. </ul>
  21494. <br>
  21495. <br>
  21496. <ul>
  21497. <a name="makeEvent"></a>
  21498. <li><b>makeEvent [ intern | no | reading ]</b><br>
  21499. <br>
  21500. Das Attribut ist nur fĂźr "Collector" verwendbar. Mit dem Attribut wird das Verhalten der Event- bzw.
  21501. Readinggenerierung festgelegt.
  21502. <br><br>
  21503. <ul>
  21504. <table>
  21505. <colgroup> <col width=10%> <col width=90%> </colgroup>
  21506. <tr><td> <b>intern</b> </td><td> Events werden modulintern generiert und sind nur im Eventmonitor sichtbar. Readings werden nicht erstellt. </td></tr>
  21507. <tr><td> <b>no</b> </td><td> es werden nur Readings der Form "MSG_&lt;Hostname&gt;" ohne Eventfunktion erstellt </td></tr>
  21508. <tr><td> <b>reading</b> </td><td> es werden Readings der Form "MSG_&lt;Hostname&gt;" erstellt. Events werden in Abhängigkeit der "event-on-.*"-Attribute generiert </td></tr>
  21509. </table>
  21510. </ul>
  21511. </li>
  21512. </ul>
  21513. <br>
  21514. <br>
  21515. <ul>
  21516. <a name="octetCount"></a>
  21517. <li><b>octetCount </b><br>
  21518. <br>
  21519. Das Attribut ist nur fĂźr "Sender" verfĂźgbar. <br>
  21520. Wenn gesetzt, wird das Syslog Framing von Non-Transparent-Framing (default) in Octet-Framing geändert.
  21521. Der Syslog-Empfänger muss Octet-Framing unterstßtzen !
  21522. FĂźr weitere Informationen siehe RFC6587 <a href="https://tools.ietf.org/html/rfc6587">"Transmission of Syslog Messages
  21523. over TCP"</a>.
  21524. </li>
  21525. </ul>
  21526. <br>
  21527. <br>
  21528. <ul>
  21529. <a name="outputFields"></a>
  21530. <li><b>outputFields </b><br>
  21531. <br>
  21532. Das Attribut ist nur fĂźr "Collector" verwendbar.
  21533. �ber eine sortierbare Liste kÜnnen die gewßnschten Felder des generierten Events ausgewählt werden.
  21534. Die abhängig vom Attribut <b>"parseProfil"</b> sinnvoll verwendbaren Felder und deren Bedeutung ist der Beschreibung
  21535. des Attributs "parseProfil" zu entnehmen.
  21536. Ist "outputFields" nicht gesetzt, wird ein vordefinierter Satz Felder zur Eventgenerierung verwendet.
  21537. </li>
  21538. </ul>
  21539. <br>
  21540. <br>
  21541. <ul>
  21542. <a name="parseFn"></a>
  21543. <li><b>parseFn {&lt;Parsefunktion&gt;} </b><br>
  21544. <br>
  21545. Das Attribut ist nur fĂźr Device-MODEL "Collector" verwendbar. Es wird die eingegebene Perl-Funktion auf die
  21546. empfangene Syslog-Meldung angewendet. Der Funktion werden folgende Variablen Ăźbergeben die zur Verarbeitung
  21547. und zur WerterĂźckgabe genutzt werden kĂśnnen. Leer Ăźbergebene Variablen sind als "" gekennzeichnet. <br>
  21548. Das erwartete RĂźckgabeformat einer Variable wird in "()" angegeben sofern sie Restriktionen unterliegt.
  21549. Ansonsten ist die Variable frei verfĂźgbar.
  21550. <br><br>
  21551. <ul>
  21552. <table>
  21553. <colgroup> <col width=20%> <col width=80%> </colgroup>
  21554. <tr><td> $PRIVAL </td><td> "" (0 ... 191) </td></tr>
  21555. <tr><td> $FAC </td><td> "" (0 ... 23) </td></tr>
  21556. <tr><td> $SEV </td><td> "" (0 ... 7) </td></tr>
  21557. <tr><td> $TS </td><td> Zeitstempel (YYYY-MM-DD hh:mm:ss) </td></tr>
  21558. <tr><td> $HOST </td><td> "" </td></tr>
  21559. <tr><td> $DATE </td><td> "" (YYYY-MM-DD) </td></tr>
  21560. <tr><td> $TIME </td><td> "" (hh:mm:ss) </td></tr>
  21561. <tr><td> $ID </td><td> "" </td></tr>
  21562. <tr><td> $PID </td><td> "" </td></tr>
  21563. <tr><td> $MID </td><td> "" </td></tr>
  21564. <tr><td> $SDFIELD </td><td> "" </td></tr>
  21565. <tr><td> $CONT </td><td> "" </td></tr>
  21566. <tr><td> $DATA </td><td> Ăźbergebene Rohdaten der Syslog-Mitteilung (keine RĂźckgabeauswertung!) </td></tr>
  21567. <tr><td> $IGNORE </td><td> 0 (0|1), wenn $IGNORE==1 wird der Syslog-Datensatz ignoriert </td></tr>
  21568. </table>
  21569. </ul>
  21570. <br>
  21571. Die Variablennamen korrespondieren mit den Feldnamen und deren ursprĂźnglicher Bedeutung angegeben im Attribut
  21572. <b>"parseProfile"</b> (Erläuterung der Felddaten). <br><br>
  21573. <ul>
  21574. <b>Beispiel: </b> <br>
  21575. # Quelltext: '<4> <;4>LAN IP and mask changed to 192.168.2.3 255.255.255.0' <br>
  21576. # Die Zeichen '<;4>' sollen aus dem CONT-Feld entfernt werden
  21577. <pre>
  21578. {
  21579. ($PRIVAL,$CONT) = ($DATA =~ /^<(\d{1,3})>\s(.*)$/);
  21580. $CONT = (split(">",$CONT))[1] if($CONT =~ /^<.*>.*$/);
  21581. }
  21582. </pre>
  21583. </ul>
  21584. </li>
  21585. </ul>
  21586. <br>
  21587. <br>
  21588. <ul>
  21589. <a name="parseProfile"></a>
  21590. <li><b>parseProfile [ BSD | IETF | ... | ParseFn | raw ] </b><br>
  21591. <br>
  21592. Auswahl eines Parsing-Profiles. Das Attribut ist nur fĂźr Device-Model "Collector" verwendbar.
  21593. <br><br>
  21594. <ul>
  21595. <table>
  21596. <colgroup> <col width=20%> <col width=80%> </colgroup>
  21597. <tr><td> <b>BSD</b> </td><td> Parsing der Meldungen im BSD-Format nach RFC3164 </td></tr>
  21598. <tr><td> <b>IETF</b> </td><td> Parsing der Meldungen im IETF-Format nach RFC5424 (default) </td></tr>
  21599. <tr><td> <b>...</b> </td><td> Es werden weitere angepasste Parsingprofile fßr ausgewählte Geräte angeboten </td></tr>
  21600. <tr><td> <b>ParseFn</b> </td><td> Verwendung einer eigenen spezifischen Parsingfunktion im Attribut "parseFn". </td></tr>
  21601. <tr><td> <b>raw</b> </td><td> kein Parsing, die Meldungen werden wie empfangen in ein Event umgesetzt </td></tr>
  21602. </table>
  21603. </ul>
  21604. <br>
  21605. Die geparsten Informationen werden in Feldern zur VerfĂźgung gestellt. Die im Event erscheinenden Felder und deren
  21606. Reihenfolge kĂśnnen mit dem Attribut <b>"outputFields"</b> bestimmt werden. <br>
  21607. Abhängig vom verwendeten "parseProfile" werden die folgenden Felder mit Werten gefßllt und es ist dementsprechend auch
  21608. nur sinnvoll die benannten Felder in Attribut "outputFields" zu verwenden. Im raw-Profil werden die empfangenen Daten
  21609. ohne Parsing in ein Event umgewandelt.
  21610. <br><br>
  21611. Die sinnvoll im Attribut "outputFields" verwendbaren Felder des jeweilgen Profils sind:
  21612. <br>
  21613. <br>
  21614. <ul>
  21615. <table>
  21616. <colgroup> <col width=10%> <col width=90%> </colgroup>
  21617. <tr><td> BSD </td><td>-> PRIVAL,FAC,SEV,TS,HOST,ID,CONT </td></tr>
  21618. <tr><td> IETF </td><td>-> PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT </td></tr>
  21619. <tr><td> ParseFn </td><td>-> PRIVAL,FAC,SEV,TS,HOST,DATE,TIME,ID,PID,MID,SDFIELD,CONT </td></tr>
  21620. <tr><td> raw </td><td>-> keine Auswahl sinnvoll, es wird immer die Originalmeldung in einen Event umgesetzt </td></tr>
  21621. </table>
  21622. </ul>
  21623. <br>
  21624. Erläuterung der Felddaten:
  21625. <br>
  21626. <br>
  21627. <ul>
  21628. <table>
  21629. <colgroup> <col width=20%> <col width=80%> </colgroup>
  21630. <tr><td> PRIVAL </td><td> kodierter Priority Wert (kodiert aus "facility" und "severity") </td></tr>
  21631. <tr><td> FAC </td><td> Kategorie (Facility) </td></tr>
  21632. <tr><td> SEV </td><td> Schweregrad der Meldung (Severity) </td></tr>
  21633. <tr><td> TS </td><td> Zeitstempel aus Datum und Zeit (YYYY-MM-DD hh:mm:ss) </td></tr>
  21634. <tr><td> HOST </td><td> Hostname / Ip-Adresse des Senders </td></tr>
  21635. <tr><td> DATE </td><td> Datum (YYYY-MM-DD) </td></tr>
  21636. <tr><td> TIME </td><td> Zeit (hh:mm:ss) </td></tr>
  21637. <tr><td> ID </td><td> Gerät oder Applikation welche die Meldung gesendet hat </td></tr>
  21638. <tr><td> PID </td><td> Programm-ID, oft belegt durch Prozessname bzw. Prozess-ID </td></tr>
  21639. <tr><td> MID </td><td> Typ der Mitteilung (beliebiger String) </td></tr>
  21640. <tr><td> SDFIELD </td><td> Metadaten Ăźber die empfangene Syslog-Mitteilung </td></tr>
  21641. <tr><td> CONT </td><td> Inhalt der Meldung </td></tr>
  21642. <tr><td> DATA </td><td> empfangene Rohdaten </td></tr>
  21643. </table>
  21644. </ul>
  21645. <br>
  21646. </li>
  21647. </ul>
  21648. <br>
  21649. <br>
  21650. <ul>
  21651. <a name="port"></a>
  21652. <li><b>port &lt;Port&gt;</b><br>
  21653. <br>
  21654. Der verwendete Port. FĂźr einen Sender ist der default-Port 514, fĂźr einen Collector (Syslog-Server) der Port 1514.
  21655. </li>
  21656. </ul>
  21657. <br>
  21658. <br>
  21659. <ul>
  21660. <a name="protocol"></a>
  21661. <li><b>protocol [ TCP | UDP ]</b><br>
  21662. <br>
  21663. Setzt den Protokolltyp der verwendet werden soll. Es kann UDP oder TCP gewählt werden. <br>
  21664. Standard ist "UDP" wenn nichts spezifiziert ist.
  21665. </li>
  21666. </ul>
  21667. <br>
  21668. <br>
  21669. <ul>
  21670. <a name="rateCalcRerun"></a>
  21671. <li><b>rateCalcRerun &lt;Zeit in Sekunden&gt; </b><br>
  21672. <br>
  21673. Wiederholungszyklus fĂźr die Bestimmung der Log-Transferrate (Reading "Transfered_logs_per_minute") in Sekunden (>=60).
  21674. Eingegebene Werte <60 Sekunden werden automatisch auf 60 Sekunden korrigiert.
  21675. Default sind 60 Sekunden.
  21676. </li>
  21677. </ul>
  21678. <br>
  21679. <br>
  21680. <ul>
  21681. <a name="respectSeverity"></a>
  21682. <li><b>respectSeverity </b><br>
  21683. <br>
  21684. Es werden nur Nachrichten Ăźbermittelt (Sender) bzw. beim Empfang berĂźcksichtigt (Collector), deren Schweregrad im
  21685. Attribut enthalten ist.
  21686. Ist "respectSeverity" nicht gesetzt, werden Nachrichten aller Schweregrade verarbeitet.
  21687. </li>
  21688. </ul>
  21689. <br>
  21690. <br>
  21691. <ul>
  21692. <a name="sslCertPrefix"></a>
  21693. <li><b>sslCertPrefix</b><br>
  21694. <br>
  21695. Setzt das Präfix der SSL-Zertifikate, die Voreinstellung ist "certs/server-".
  21696. Mit diesem Attribut kann fĂźr verschiedene Log2Syslog-Devices die Verwendung unterschiedlicher SSL-Zertifikate
  21697. bestimmt werden.
  21698. Siehe auch das "TLS" Attribut.
  21699. </li>
  21700. </ul>
  21701. <br>
  21702. <br>
  21703. <ul>
  21704. <a name="ssldebug"></a>
  21705. <li><b>ssldebug</b><br>
  21706. <br>
  21707. Debugging Level von SSL Messages. Das Attribut ist nur fĂźr Device-MODEL "Sender" verwendbar. <br><br>
  21708. <ul>
  21709. <li> 0 - Kein Debugging (default). </li>
  21710. <li> 1 - Ausgabe Errors von from <a href="http://search.cpan.org/~sullr/IO-Socket-SSL-2.056/lib/IO/Socket/SSL.pod">IO::Socket::SSL</a> und ciphers von <a href="http://search.cpan.org/~mikem/Net-SSLeay-1.85/lib/Net/SSLeay.pod">Net::SSLeay</a>. </li>
  21711. <li> 2 - zusätzliche Ausgabe von Informationen ßber den Protokollfluss von <a href="http://search.cpan.org/~sullr/IO-Socket-SSL-2.056/lib/IO/Socket/SSL.pod">IO::Socket::SSL</a> und Fortschrittinformationen von <a href="http://search.cpan.org/~mikem/Net-SSLeay-1.85/lib/Net/SSLeay.pod">Net::SSLeay</a>. </li>
  21712. <li> 3 - zusätzliche Ausgabe einiger Dumps von <a href="http://search.cpan.org/~sullr/IO-Socket-SSL-2.056/lib/IO/Socket/SSL.pod">IO::Socket::SSL</a> und <a href="http://search.cpan.org/~mikem/Net-SSLeay-1.85/lib/Net/SSLeay.pod">Net::SSLeay</a>. </li>
  21713. </ul>
  21714. </li>
  21715. </ul>
  21716. <br>
  21717. <br>
  21718. <ul>
  21719. <a name="TLS"></a>
  21720. <li><b>TLS</b><br>
  21721. <br>
  21722. Ein Client (Sender) baut eine gesicherte Verbindung zum Syslog-Server auf.
  21723. Ein Syslog-Server (Collector) stellt eine gesicherte Verbindung zur VerfĂźgung.
  21724. Das Protokoll schaltet automatisch auf TCP um.
  21725. <br<br>
  21726. Damit ein Collector TLS verwenden kann, muss ein Zertifikat erstellt werden bzw. vorhanden sein.
  21727. Mit folgenden Schritten kann ein Zertifikat erzeugt werden: <br><br>
  21728. 1. im FHEM-Basisordner das Verzeichnis "certs" anlegen: <br>
  21729. <pre>
  21730. sudo mkdir /opt/fhem/certs
  21731. </pre>
  21732. 2. SSL Zertifikat erstellen: <br>
  21733. <pre>
  21734. cd /opt/fhem/certs
  21735. sudo openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem
  21736. </pre>
  21737. 3. Datei/Verzeichnis-Rechte setzen: <br>
  21738. <pre>
  21739. sudo chown -R fhem:dialout /opt/fhem/certs
  21740. sudo chmod 644 /opt/fhem/certs/*.pem
  21741. sudo chmod 711 /opt/fhem/certs
  21742. </pre>
  21743. </li>
  21744. </ul>
  21745. <br>
  21746. <br>
  21747. <ul>
  21748. <a name="timeout"></a>
  21749. <li><b>timeout</b><br>
  21750. <br>
  21751. Das Attribut ist nur fĂźr "Sender" verwendbar.
  21752. Timeout fĂźr die Verbindung zum Syslog-Server (TCP). Default: 0.5s.
  21753. </li>
  21754. </ul>
  21755. <br>
  21756. <br>
  21757. <ul>
  21758. <a name="verbose"></a>
  21759. <li><b>verbose</b><br>
  21760. <br>
  21761. Verbose-Level entsprechend dem globalen <a href="#attributes">Attribut</a> "verbose".
  21762. Die Ausgaben der Verbose-Level von Log2Syslog-Devices werden ausschlie�lich im lokalen FHEM Logfile ausgegeben und
  21763. nicht weitergeleitet um Schleifen zu vermeiden.
  21764. </li>
  21765. </ul>
  21766. <br>
  21767. <br>
  21768. </ul>
  21769. <br>
  21770. <a name="Log2Syslogreadings"></a>
  21771. <b>Readings</b>
  21772. <ul>
  21773. <br>
  21774. <table>
  21775. <colgroup> <col width=35%> <col width=65%> </colgroup>
  21776. <tr><td><b>MSG_&lt;Host&gt;</b> </td><td> die letzte erfolgreich geparste Syslog-Message von &lt;Host&gt; </td></tr>
  21777. <tr><td><b>Parse_Err_No</b> </td><td> die Anzahl der Parse-Fehler seit Start </td></tr>
  21778. <tr><td><b>SSL_Algorithm</b> </td><td> der verwendete SSL Algorithmus wenn SSL eingeschaltet und aktiv ist </td></tr>
  21779. <tr><td><b>SSL_Version</b> </td><td> die verwendete TLS-Version wenn die VerschlĂźsselung aktiv ist</td></tr>
  21780. <tr><td><b>Transfered_logs_per_minute</b> </td><td> die durchschnittliche Anzahl der Ăźbertragenen/empfangenen Logs/Events pro Minute </td></tr>
  21781. </table>
  21782. <br>
  21783. </ul>
  21784. </ul>
  21785. <p><a name="LuftdatenInfo"></a>
  21786. <h3>LuftdatenInfo</h3>
  21787. <div class='langLinks'>[<a href='commandref.html#LuftdatenInfo'>EN</a> DE]</div>
  21788. (<a href="commandref.html#LuftdatenInfo"><u>en</u></a> | de)
  21789. <div>
  21790. <ul>
  21791. LuftdatenInfo ist das FHEM Modul um Feinstaub-, Temperatur- und
  21792. Luftfeuchtichkeitswerte von den selbstbau Feinstaub Sensoren von
  21793. <a href="http://Luftdaten.info"><u>Luftdaten.info</u></a> auszulesen.<br>
  21794. Dabei k&ouml;nnen die Werte direkt vom Server oder auch lokal abgefragt
  21795. werden.<br>
  21796. Bei einer lokalen Abfrage werden durch eine
  21797. <a href="https://forum.fhem.de/index.php/topic,73879">
  21798. <u>alternative Firmware</u>
  21799. </a>
  21800. noch weitere Sensoren unterstĂźtzt.<br>
  21801. <br>
  21802. <b>Vorraussetzungen</b>
  21803. <ul>
  21804. Das Perl-Modul "JSON" wird ben&ouml;tigt.<br>
  21805. Unter Debian (basierten) System, kann dies mittels
  21806. <code>"apt-get install libjson-perl"</code> installiert werden.
  21807. </ul>
  21808. <br>
  21809. <a name="LuftdatenInfodefine"></a>
  21810. <b>Define</b>
  21811. <ul>
  21812. <code>
  21813. define &lt;name&gt; LuftdatenInfo remote
  21814. &lt;SENSORID1&gt; [&lt;SENSORID2&gt; ..]<br>
  21815. define &lt;name&gt; LuftdatenInfo local &lt;IP&gt;<br>
  21816. define &lt;name&gt; LuftdatenInfo
  21817. slave &lt;master-name&gt; &lt;sensor1 sensor2 ...&gt;
  21818. </code><br>
  21819. F&uuml;r eine Abfrage der Daten vom Server mĂźssem alle betroffenenen
  21820. SensorIDs angegeben werden. Die IDs vom SDS01 stehen rechts auf der Seite
  21821. <a href="http://maps.luftdaten.info/">
  21822. <u>http://maps.luftdaten.info/</u>
  21823. </a>
  21824. . Die DHT22 SensorID entspricht normalerweise der SDS011 SensorID + 1.
  21825. Bei einer Abfrage werden die die Positionsangaben verglichen und bei
  21826. einer Abweichung eine Meldung ins Log geschrieben.<br>
  21827. F&uuml;r eine lokale Abfrage der Daten muss die IP Addresse oder der
  21828. Hostname angegeben werden.<br>
  21829. Werden mehrere ähnliche Sensoren betrieben lassen sich die doppelten
  21830. Werte in einem anderen Gerät geschrieben werden.
  21831. </ul><br>
  21832. <a name="LuftdatenInfoset"></a>
  21833. <b>Set</b>
  21834. <ul>
  21835. <li>
  21836. <code>statusRequest</code><br>
  21837. Startet eine Abfrage der Daten.
  21838. </li>
  21839. </ul><br>
  21840. <a name="LuftdatenInfoget"></a>
  21841. <b>Get</b>
  21842. <ul>
  21843. <li>
  21844. <code>sensors</code><br>
  21845. Listet alle Sensoren auf.
  21846. </li>
  21847. </ul><br>
  21848. <a name="LuftdatenInforeadings"></a>
  21849. <b>Readings</b><br>
  21850. <ul>
  21851. <li>
  21852. <code>airQuality</code>
  21853. 1 => gut<br>
  21854. 2 => mittelmä&suml;ig<br>
  21855. 3 => ungesund fĂźr empfindliche Menschen<br>
  21856. 4 => ungesund<br>
  21857. 5 => sehr ungesund<br>
  21858. 6 => katastrophal<br>
  21859. </li>
  21860. <li>
  21861. <code>altitude</code><br>
  21862. HĂśhe Ăźber NN
  21863. </li>
  21864. <li>
  21865. <code>humidity</code><br>
  21866. Relative Luftfeuchtgkeit in %
  21867. </li>
  21868. <li>
  21869. <code>illuminanceFull</code><br>
  21870. Helligkeit des vollen Bereich in lux
  21871. </li>
  21872. <li>
  21873. <code>illuminanceIR</code><br>
  21874. Helligkeit des IR Bereich in lux
  21875. </li>
  21876. <li>
  21877. <code>illuminanceUV</code><br>
  21878. Helligkeit des UV Bereich in lux
  21879. </li>
  21880. <li>
  21881. <code>illuminanceVisible</code><br>
  21882. Helligkeit des sichtbaren Bereich in lux
  21883. </li>
  21884. <li>
  21885. <code>latitude</code><br>
  21886. Längengrad
  21887. </li>
  21888. <li>
  21889. <code>location</code><br>
  21890. Standort als "Postleitzahl Ort"<br>
  21891. Nur bei remote Abfrage verf&uuml;gbar.
  21892. </li>
  21893. <li>
  21894. <code>longitude</code><br>
  21895. Breitengrad
  21896. </li>
  21897. <li>
  21898. <code>PM1</code><br>
  21899. Menge der Partikel mit einem Durchmesser von weniger als 1 Âľm in Âľg/mÂł
  21900. </li>
  21901. <li>
  21902. <code>PM2.5</code><br>
  21903. Menge der Partikel mit einem Durchmesser von weniger als 2.5 Âľm in Âľg/mÂł
  21904. </li>
  21905. <li>
  21906. <code>PM10</code><br>
  21907. Menge der Partikel mit einem Durchmesser von weniger als 10 Âľm in Âľg/mÂł
  21908. </li>
  21909. <li>
  21910. <code>pressure</code><br>
  21911. Luftdruck in hPa
  21912. </li>
  21913. <li>
  21914. <code>pressureNN</code><br>
  21915. Luftdruck fĂźr Normal Null in hPa<br>
  21916. Wird bei aktivem Luftdruck- und Temperatursensor berechnet, sofern sich
  21917. der Sensor nicht auf Normal Null befindet.<br>
  21918. Hierzu ist die HĂśhe, kann Ăźber Kartendienste oder SmartPhone ermittelt
  21919. werden, auf der Konfigurationsseite anzugeben.
  21920. </li>
  21921. <li>
  21922. <code>signal</code><br>
  21923. WLAN Signalst&auml;rke in dBm<br>
  21924. Nur bei local Abfrage verf&uuml;gbar.
  21925. </li>
  21926. <li>
  21927. <code>temperature</code><br>
  21928. Temperatur in °C
  21929. </li>
  21930. <li>
  21931. <code>UVIntensity</code><br>
  21932. UV Intensität in W
  21933. </li>
  21934. <li>
  21935. <code>UVRisk</code><br>
  21936. UV Risiko von 1 bis 5
  21937. </li>
  21938. </ul><br>
  21939. <a name="LuftdatenInfoattr"></a>
  21940. <b>Attribute</b>
  21941. <ul>
  21942. <li>
  21943. <code>disable 1</code><br>
  21944. Es werden keine Abfragen mehr gestartet.
  21945. </li>
  21946. <li>
  21947. <a href="#disabledForIntervals">
  21948. <u><code>disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM ...</code></u>
  21949. </a>
  21950. </li>
  21951. <li>
  21952. <code>interval &lt;seconds&gt;</code><br>
  21953. Intervall in Sekunden in dem Abfragen durchgef&uuml;hrt werden.<br>
  21954. Der Vorgabe- und Mindestwert betr&auml;gt 300 Sekunden.
  21955. </li>
  21956. <li>
  21957. <code>timeout &lt;seconds&gt;</code><br>
  21958. Timeout in Sekunden fĂźr die Abfragen.<br>
  21959. Der Vorgabe- und Mindestwert betr&auml;gt 5 Sekunden.
  21960. </li>
  21961. </ul>
  21962. </ul>
  21963. </div>
  21964. <p><a name="M232"></a>
  21965. <h3>M232</h3>
  21966. <ul>
  21967. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  21968. hier: <a href='commandref.html#M232'>M232</a><br/>
  21969. </ul>
  21970. <a name="M232Counter"></a>
  21971. <h3>M232Counter</h3>
  21972. <ul>
  21973. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  21974. hier: <a href='commandref.html#M232Counter'>M232Counter</a><br/>
  21975. </ul>
  21976. <a name="M232Voltage"></a>
  21977. <h3>M232Voltage</h3>
  21978. <ul>
  21979. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  21980. hier: <a href='commandref.html#M232Voltage'>M232Voltage</a><br/>
  21981. </ul>
  21982. <a name="MAX"></a>
  21983. <h3>MAX</h3>
  21984. <div class='langLinks'>[<a href='commandref.html#MAX'>EN</a> DE]</div>
  21985. <ul>
  21986. Verarbeitet MAX! Ger&auml;te, die von der eQ-3 MAX! Gruppe hergestellt werden.<br>
  21987. Falls Heizk&ouml;rperthermostate eine Temperatur von Null Grad zeigen, wurde von ihnen
  21988. noch nie Daten an den MAX Cube gesendet. In diesem Fall kann das Senden von Daten an
  21989. den Cube durch Einstellen einer Temeratur direkt am Ger&auml;t (nicht &uuml;ber fhem)
  21990. erzwungen werden.
  21991. <br><br>
  21992. <a name="MAXdefine"></a>
  21993. <b>Define</b>
  21994. <ul>
  21995. <code>define &lt;name&gt; MAX &lt;type&gt; &lt;addr&gt;</code>
  21996. <br><br>
  21997. Erstellt ein MAX Ger&auml;t des Typs &lt;type&gt; und der RF Adresse &lt;addr&gt;.
  21998. Als &lt;type&gt; kann entweder <code>HeatingThermostat</code> (Heizk&ouml;rperthermostat),
  21999. <code>HeatingThermostatPlus</code> (Heizk&ouml;rperthermostat Plus),
  22000. <code>WallMountedThermostat</code> (Wandthermostat), <code>ShutterContact</code> (Fensterkontakt)
  22001. oder <code>PushButton</code> (Eco-Taster) gew&auml;hlt werden.
  22002. Die Adresse &lt;addr&gt; ist eine 6-stellige hexadezimale Zahl.
  22003. Da <a href="#autocreate">autocreate</a> diese vergibt, sollte diese nie h&auml;ndisch gew&auml;hlt
  22004. werden m&uuml;ssen.<br>
  22005. Es ist empfehlenswert, das Atribut <code>event-on-change-reading</code> zu setzen, z.B.
  22006. <code>attr MAX_123456 event-on-change-reading .*</code> da ansonsten der "Polling" Mechanismus
  22007. alle 10 s ein Ereignis erzeugt.<br>
  22008. Beispiel:
  22009. <ul>
  22010. <code>define switch1 MAX PushButton ffc545</code><br>
  22011. </ul>
  22012. </ul>
  22013. <br>
  22014. <a name="MAXset"></a>
  22015. <b>Set</b>
  22016. <ul>
  22017. <li>desiredTemperature &lt;value&gt; [until &lt;date&gt;]<br>
  22018. Nur f&uuml;r Heizk&ouml;rperthermostate. &lt;value&gt; kann einer aus folgenden Werten sein
  22019. <ul>
  22020. <li>Grad Celsius zwischen 3,5 und 30,5 Grad in 0,5 Kelvin Schritten</li>
  22021. <li>"on" oder "off" versetzt den Thermostat in volle bzw. keine Heizleistung</li>
  22022. <li>"eco" oder "comfort" mit der eco/comfort Temperatur, die direkt am Ger&auml;t
  22023. eingestellt wurde (&auml;nhlich wie die rechte Taste am Ger&auml;t selbst)</li>
  22024. <li>"auto &lt;temperature&gt;". Damit wird das am Thermostat eingestellte Wochenprogramm
  22025. abgearbeitet. Wenn optional die Temperatur &lt;temperature&gt; angegeben wird, wird diese
  22026. bis zum n&auml;sten Schaltzeitpunkt des Wochenprogramms als
  22027. <code>desiredTemperature</code> gesetzt.</li>
  22028. <li>"boost" aktiviert den Boost Modus, wobei f&uuml;r <code>boostDuration</code> Minuten
  22029. das Ventil <code>boostValveposition</code> Prozent ge&ouml;ffnet wird.</li>
  22030. </ul>
  22031. Alle Werte au&szlig;er "auto" k&ouml;nnen zus&auml;zlich den Wert "until" erhalten,
  22032. wobei &lt;date&gt; in folgendem Format sein mu&szlig;: "dd.mm.yyyy HH:MM"
  22033. (Minuten nur "30" bzw. "00"!), um kurzzeitige eine andere Temperatur bis zu diesem Datum/dieser
  22034. Zeit einzustellen. Bitte sicherstellen, dass der Cube bzw. das Ger&auml;t die korrekte Systemzeit hat.</li>
  22035. <li>groupid &lt;id&gt;<br>
  22036. Nur f&uuml;r Heizk&ouml;rperthermostate.
  22037. Schreibt die angegebene Gruppen ID in den Speicher des Ger&auml;tes.
  22038. Um alle Ger&auml;te in einem Raum zu synchronisieren, k&ouml;nnen diese derselben Gruppen ID
  22039. zugeordnet werden, diese mu&szlig; gr&ouml;&szlig;er Null sein.</li>
  22040. <li>ecoTemperature &lt;value&gt;<br>
  22041. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegebene <code>eco</code> Temperatur in den Speicher
  22042. des Ger&auml;tes. Diese kann durch Dr&uuml;cken der rechten Taste am Ger&auml;t aktiviert werden.</li>
  22043. <li>comfortTemperature &lt;value&gt;<br>
  22044. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegebene <code>comfort</code> Temperatur in den Speicher
  22045. des Ger&auml;tes. Diese kann durch Dr&uuml;cken der rechten Taste am Ger&auml;t aktiviert werden.</li>
  22046. <li>measurementOffset &lt;value&gt;<br>
  22047. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegebene <code>offset</code> Temperatur in den Speicher
  22048. des Ger&auml;tes. Wenn der interne Temperatursensor nicht korrekt kalibriert ist, kann dieses einen
  22049. systematischen Fehler erzeugen. Mit dem Wert <code>measurementOffset</code>, kann dieser Fehler
  22050. kompensiert werden. Die ausgelese Temperatur ist gleich der gemessenen
  22051. Temperatur + <code>measurementOffset</code>. Normalerweise ist die intern gemessene Temperatur h&ouml;her
  22052. als die Raumtemperatur, da der Sensor n&auml;her am Heizk&ouml;rper ist und man verwendet einen
  22053. kleinen negativen Offset, der zwischen -3,5 und 3,5 Kelvin sein mu&szlig;.</li>
  22054. <li>minimumTemperature &lt;value&gt;<br>
  22055. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegemene <code>minimum</code> Temperatur in der Speicher
  22056. des Ger&auml;tes. Diese begrenzt die Temperatur, die am Ger&auml;t manuell eingestellt werden kann.</li>
  22057. <li>maximumTemperature &lt;value&gt;<br>
  22058. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegemene <code>maximum</code> Temperatur in der Speicher
  22059. des Ger&auml;tes. Diese begrenzt die Temperatur, die am Ger&auml;t manuell eingestellt werden kann.</li>
  22060. <li>windowOpenTemperature &lt;value&gt;<br>
  22061. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegemene <code>window open</code> Temperatur in den Speicher
  22062. des Ger&auml;tes. Das ist die Tempereratur, die an der Heizung kurzfristig eingestellt wird, wenn ein
  22063. ge&ouml;ffnetes Fenster erkannt wird. Der Wert 4,5 Grad bzw. "off" schaltet die Reaktion auf
  22064. ein offenes Fenster aus.</li>
  22065. <li>windowOpenDuration &lt;value&gt;<br>
  22066. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegebene <code>window</code> open Dauer in den Speicher
  22067. des Ger&auml;tes. Dies ist die Dauer, w&auml;hrend der die Heizung kurzfristig die window open Temperatur
  22068. einstellt, wenn ein offenes Fenster durch einen schnellen Temperatursturz erkannt wird.
  22069. (Wird nicht verwendet, wenn das offene Fenster von <code>ShutterControl</code> erkannt wird.)
  22070. Parameter muss zwischen Null und 60 Minuten sein als Vielfaches von 5.</li>
  22071. <li>decalcification &lt;value&gt;<br>
  22072. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegebene Zeit f&uuml;r <code>decalcification</code>
  22073. in den Speicher des Ger&auml;tes. Parameter muss im Format "Sat 12:00" sein, wobei die Minuten
  22074. "00" sein m&uuml;ssen. Zu dieser angegebenen Zeit wird das Heizk&ouml;rperthermostat das Ventil
  22075. kurz ganz &ouml;ffnen, um vor Schwerg&auml;ngigkeit durch Kalk zu sch&uuml;tzen.</li>
  22076. <li>boostDuration &lt;value&gt;<br>
  22077. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegebene Boost Dauer in den Speicher
  22078. des Ger&auml;tes. Der gew&auml;hlte Parameter muss einer aus 5, 10, 15, 20, 25, 30 oder 60 sein
  22079. und gibt die Dauer der Boost-Funktion in Minuten an.</li>
  22080. <li>boostValveposition &lt;value&gt;<br>
  22081. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegebene Boost Ventilstellung in den Speicher
  22082. des Ger&auml;tes. Dies ist die Ventilstellung (in Prozent) die bei der Boost-Fumktion eingestellt wird.</li>
  22083. <li>maxValveSetting &lt;value&gt;<br>
  22084. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt die angegebene maximale Ventilposition in den Speicher
  22085. des Ger&auml;tes. Der Heizk&ouml;rperthermostat wird das Ventil nicht weiter &ouml;ffnen als diesen Wert
  22086. (Angabe in Prozent).</li>
  22087. <li>valveOffset &lt;value&gt;<br>
  22088. Nur f&uuml;r Heizk&ouml;rperthermostate. Schreibt den angegebenen <code>offset</code> Wert der Ventilstellung
  22089. in den Speicher des Ger&auml;tes Der Heizk&ouml;rperthermostat wird diesen Wert w&auml;hrend der Regelung
  22090. zu den berechneten Ventilstellungen hinzuaddieren.</li>
  22091. <li>factoryReset<br>
  22092. Setzt das Ger&auml;t auf die Werkseinstellungen zur&uuml;ck. Das Ger&auml;t muss anschlie&szlig;end neu
  22093. angelernt werden.<br>
  22094. ACHTUNG: Wenn dies in Kombination mit einem Fensterkontakt und dem MAXLAN Modul
  22095. verwendet wird, muss der Fensterkontakt einmal manuell ausgel&ouml;st werden, damit das
  22096. Zur&uuml;cksetzen auf Werkseinstellungen beendet werden kann.</li>
  22097. <li>associate &lt;value&gt;<br>
  22098. Verbindet ein Ger&auml;t mit einem anderen. &lt;value&gt; kann entweder der Name eines MAX Ger&auml;tes oder
  22099. seine 6-stellige hexadezimale Adresse sein.<br>
  22100. Wenn ein Fensterkontakt mit einem {Heizk&ouml;rper-/Wand-}Thermostat verbunden wird, sendet der
  22101. Fensterkontakt automatisch die <code>windowOpenTemperature</code> Temperatur wenn der Kontakt
  22102. ge&ouml;ffnet ist. Das Thermostat muss ebenfalls mit dem Fensterkontakt verbunden werden, um diese
  22103. Botschaften zu verarbeiten.
  22104. <b>Achtung: Nach dem Senden der Botschaft zum Verbinden an den Fensterkontakt muss der Knopf am
  22105. Fensterkontakt gedr&uuml;ckt werden um den Fensterkonakt einzuschalten und den Befehl zu verarbeiten.
  22106. Details &uuml;ber das erfolgreiche Verbinden finden sich in der fhem Logdatei!</b>
  22107. Das Verbinden eines Heizk&ouml;rperthermostates und eines Wandthermostates synchronisiert deren
  22108. <code>desiredTemperature</code> und verwendet die am Wandthermostat gemessene Temperatur f&uuml;r
  22109. die Regelung.</li>
  22110. <li>deassociate &lt;value&gt;<br>
  22111. L&ouml;st die Verbindung, die mit <code>associate</code> gemacht wurde, wieder auf.</li>
  22112. <li>weekProfile [&lt;day&gt; &lt;temp1&gt;,&lt;until1&gt;,&lt;temp2&gt;,&lt;until2&gt;]
  22113. [&lt;day&gt; &lt;temp1&gt;,&lt;until1&gt;,&lt;temp2&gt;,&lt;until2&gt;] ...<br>
  22114. Erlaubt das Setzen eines Wochenprofils. Nur f&uuml;r Heizk&oum;rperthermostate bzw. Wandthermostate.<br>
  22115. Beispiel:<br>
  22116. <code>set MAX_12345 weekProfile Fri 24.5,6:00,12,15:00,5 Sat 7,4:30,19,12:55,6</code><br>
  22117. stellt das folgende Profil ein<br>
  22118. <code>Freitag: 24.5 &deg;C von 0:00 - 6:00, 12 &deg;C von 6:00 - 15:00, 5 &deg;C von 15:00 - 0:00<br>
  22119. Samstag: 7 &deg;C von 0:00 - 4:30, 19 &deg;C von 4:30 - 12:55, 6 &deg;C von 12:55 - 0:00</code><br>
  22120. und beh&auml;lt die Profile f&uuml;r die anderen Wochentage bei.
  22121. </li>
  22122. </ul>
  22123. <br>
  22124. <a name="MAXget"></a>
  22125. <b>Get</b> <ul>N/A</ul><br>
  22126. <a name="MAXattr"></a>
  22127. <b>Attributes</b>
  22128. <ul>
  22129. <li><a href="#eventMap">eventMap</a></li>
  22130. <li><a href="#IODev">IODev</a></li>
  22131. <li><a href="#loglevel">loglevel</a></li>
  22132. <li><a href="#do_not_notify">do_not_notify</a></li>
  22133. <li><a href="#ignore">ignore</a></li>
  22134. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  22135. <li>keepAuto<br>Standardwert: 0. Wenn der Wert auf 1 gesetzt wird, bleibt das Ger&auml;t im
  22136. Wochenprogramm auch wenn eine <code>desiredTemperature</code> gesendet wird.</li>
  22137. </ul>
  22138. <br>
  22139. <a name="MAXevents"></a>
  22140. <b>Erzeugte Ereignisse:</b>
  22141. <ul>
  22142. <li>desiredTemperature<br>Nur f&uuml;r Heizk&ouml;rperthermostate und Wandthermostate</li>
  22143. <li>valveposition<br>Nur f&uuml;r Heizk&ouml;rperthermostate</li>
  22144. <li>battery</li>
  22145. <li>batteryState</li>
  22146. <li>temperature<br>Die gemessene Temperatur (= gemessene Temperatur + <code>measurementOffset</code>),
  22147. nur f&uuml;r Heizk&ouml;rperthermostate und Wandthermostate</li>
  22148. </ul>
  22149. </ul>
  22150. <p><a name="MAXLAN"></a>
  22151. <h3>MAXLAN</h3>
  22152. <ul>
  22153. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22154. hier: <a href='commandref.html#MAXLAN'>MAXLAN</a><br/>
  22155. </ul>
  22156. <a name="MEDIAPORTAL"></a>
  22157. <h3>MEDIAPORTAL</h3>
  22158. <div class='langLinks'>[<a href='commandref.html#MEDIAPORTAL'>EN</a> DE]</div>
  22159. <p>Verbindet sich Ăźber das Wifiremote-Plugin mit einer laufenden Mediaportal-Instanz.</p>
  22160. <h4>Beispiel</h4>
  22161. <p>
  22162. <code>define wohnzimmer_Mediaportal MEDIAPORTAL 192.168.0.47:8017</code>
  22163. </p>
  22164. <a name="MEDIAPORTALdefine"></a>
  22165. <h4>Define</h4>
  22166. <b><code>define &lt;name&gt; MEDIAPORTAL host[:port]</code></b>
  22167. <br /><br />Definiert ein Mediaportal Interface fĂźr die Kommunikation mit einem Wifiremote-Plugin einer Mediaportal Installation.<br />
  22168. <p>
  22169. <b><code>host[:port]</code></b><br />Der Hostname und der Port eines laufenden Mediaportal-Wifiremote-Plugins. Wenn der Port nicht angegeben wurde, wird <code>8017</code> als Standard verwendet.</p>
  22170. <a name="MEDIAPORTALset"></a>
  22171. <h4>Set</h4>
  22172. <ul>
  22173. <li><b>Grundsätzliches</b><ul>
  22174. <li><a name="MEDIAPORTAL_setter_connect">
  22175. <b><code>connect</code></b></a>
  22176. <br />Erzwingt eine sofortige Verbindung zu Mediaportal. Normalerweise wĂźrde die normale Verbindungswiederholung von Fhem (30s) abgewartet werden. </li>
  22177. <li><a name="MEDIAPORTAL_setter_powermode">
  22178. <b><code>powermode &lt;mode&gt;</code></b></a>
  22179. <br />Eins aus (logoff, suspend, hibernate, reboot, shutdown, exit). Setzt den powermode, z.B. shutdown, zum Herunterfahren des Computers des Mediaportal-Systems.</li>
  22180. <li><a name="MEDIAPORTAL_setter_reconnect">
  22181. <b><code>reconnect</code></b></a>
  22182. <br />Erzwingt eine sofortige Trennung und Neuverbindung zu Mediaportal.</li>
  22183. </ul></li>
  22184. <li><b>Control-Befehle</b><ul>
  22185. <li><a name="MEDIAPORTAL_setter_command">
  22186. <b><code>command &lt;command&gt;</code></b></a>
  22187. <br />Eins aus (stop, record, pause, play, rewind, forward, replay, skip, back, info, menu, up, down, left, right, ok, volup, voldown, volmute, chup, chdown, dvdmenu, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, clear, enter, teletext, red, blue, yellow, green, home, basichome, nowplaying, tvguide, tvrecs, dvd, playlists, first, last, fullscreen, subtitles, audiotrack, screenshot). Sendet das entsprechende Kommando an den Player.</li>
  22188. <li><a name="MEDIAPORTAL_setter_key">
  22189. <b><code>key &lt;keyvalue&gt;</code></b></a>
  22190. <br />Sendet die entsprechende Taste an den Player.</li>
  22191. <li><a name="MEDIAPORTAL_setter_sleep">
  22192. <b><code>sleep</code></b></a>
  22193. <br />Startet den Hibernate-Modus. Dieser Befehl ist ein Shortcut fĂźr "powermode hibernate"</li>
  22194. <li><a name="MEDIAPORTAL_setter_wakeup">
  22195. <b><code>wakeup</code></b></a>
  22196. <br />Weckt den Mediaportal-Rechner auf (WakeUp-On-LAN).</li>
  22197. </ul></li>
  22198. <li><b>Abspielbefehle</b><ul>
  22199. <li><a name="MEDIAPORTAL_setter_playchannel">
  22200. <b><code>playchannel &lt;channelID&gt;</code></b></a>
  22201. <br />Spielt den Kanal mit der entsprechenden ID ab.</li>
  22202. <li><a name="MEDIAPORTAL_setter_playfile">
  22203. <b><code>playfile &lt;fileType&gt; &lt;filePath&gt;</code></b></a>
  22204. <br />Spielt die entsprechende Datei mit dem angegebenen Typ ab. FileType kann (audio, video) sein.</li>
  22205. <li><a name="MEDIAPORTAL_setter_playlist">
  22206. <b><code>playlist &lt;command&gt; &lt;param&gt;</code></b></a>
  22207. <br />Sendet das entsprechende Playlist-Kommando mit dem gegebenen Parameter. Das Kommando kann (play, loadlist, loadlist_shuffle, loadfrompath, loadfrompath_shuffle) sein.</li>
  22208. <li><a name="MEDIAPORTAL_setter_Volume">
  22209. <b><code>Volume &lt;volumelevel&gt;</code></b></a>
  22210. <br />Setzt die angegebene Lautstärke.</li>
  22211. </ul></li>
  22212. </ul>
  22213. <a name="MEDIAPORTALget"></a>
  22214. <h4>Get</h4>
  22215. <ul>
  22216. <li><b>Grundsätzliches</b><ul>
  22217. <li><a name="MEDIAPORTAL_getter_status">
  22218. <b><code>status</code></b></a>
  22219. <br />Sendet eine Aufforderung fĂźr das Senden einer <code>status</code>-Nachricht. Liefert dann asynchron die Informationen "Title" und "PlayStatus".</li>
  22220. <li><a name="MEDIAPORTAL_getter_nowplaying">
  22221. <b><code>nowplaying</code></b></a>
  22222. <br />Sendet eine Aufforderung fĂźr das Senden einer <code>nowplaying</code>-Nachricht. Liefert dann asynchron die Informationen "Duration", "Position" und "File"".</li>
  22223. </ul></li>
  22224. </ul>
  22225. <a name="MEDIAPORTALattr"></a>
  22226. <h4>Attribute</h4>
  22227. <ul>
  22228. <li><b>Grundsätzliches</b><ul>
  22229. <li><a name="MEDIAPORTAL_attribut_disable"><b><code>disable &lt;value&gt;</code></b>
  22230. </a><br />Eins aus (0, 1). Mit diesem Attribut kann das Modul deaktiviert werden.</li>
  22231. <li><a name="MEDIAPORTAL_attribut_generateNowPlayingUpdateEvents"><b><code>generateNowPlayingUpdateEvents &lt;value&gt;</code></b>
  22232. </a><br />Eins aus (0, 1). Mit diesem Attribut kann die Erzeugung eines <code>NowPlayingUpdate</code>-Events an- oder abgeschaltet werden. Wenn auf "1" gesetzt, generiert Fhem ein Event pro Sekunde mit den angepassten Zeitangaben. Standard ist "0".</li>
  22233. <li><a name="MEDIAPORTAL_attribut_HeartbeatInterval"><b><code>HeartbeatInterval &lt;intervall&gt;</code></b>
  22234. </a><br />In Sekunden. Legt das Intervall fĂźr die PrĂźfung der Verbindung zu Mediaportal fest. Mit "0" kann die PrĂźfung deaktiviert werden. Wenn kein Wert angeggeben wird, wird "15" verwendet.</li>
  22235. <li><a name="MEDIAPORTAL_attribut_macaddress"><b><code>macaddress &lt;address&gt;</code></b>
  22236. </a><br />Gibt die Mac-Adresse des Mediaportal-Rechners an. Das wird fßr die WakeUp-Funktionalität benÜtigt. z.B. "90:E6:BA:C2:96:15"</li>
  22237. </ul></li>
  22238. <li><b>Authentifizierung</b><ul>
  22239. <li><a name="MEDIAPORTAL_attribut_authmethod"><b><code>authmethod &lt;value&gt;</code></b>
  22240. </a><br />Eins aus (none, userpassword, passcode, both). Hiermit wird der Authentifizierungsmodus festgelegt.</li>
  22241. <li><a name="MEDIAPORTAL_attribut_password"><b><code>password &lt;value&gt;</code></b>
  22242. </a><br />Hiermit wird das Passwort fĂźr die Authentifzierung festgelegt.</li>
  22243. <li><a name="MEDIAPORTAL_attribut_username"><b><code>username &lt;value&gt;</code></b>
  22244. </a><br />Hiermit wird der Benutzername fĂźr die Authentifizerung festgelegt.</li>
  22245. </ul></li>
  22246. </ul>
  22247. <p><a name="MOBILEALERTS"></a>
  22248. <h3>MOBILEALERTS</h3>
  22249. <div class='langLinks'>[<a href='commandref.html#MOBILEALERTS'>EN</a> DE]</div>
  22250. <ul>
  22251. MOBILEALERTS ist ein FHEM-Modul f&uuml; die deutschen MobileAlerts Ger&auml; und TFA WEATHERHUB.
  22252. <br><br>
  22253. Dieses FHEM Modul stellt jeweils ein MobileAlerts Ger&auml;t dar. Die Verbindung wird durch das
  22254. <a href="#MOBILEALERTSGW">MOBILELAERTSGW</a> Modul bereitgestellt.<br>
  22255. Aktuell werden unterst&uuml;zt: MA10100, MA10101, MA10200, MA10230, MA10300, MA10650, MA10320PRO, MA10350, MA10410, MA10450, MA10660, MA10700, TFA 30.3312.02, MA10800, WL2000, TFA30.3060.01.IT, MA10120PRO<br>
  22256. Unterst&uuml;zt aber ungetestet: ./.<br>
  22257. <br>
  22258. <a name="MOBILEALERTSdefine"></a>
  22259. <b>Define</b>
  22260. <ul>
  22261. <code>define &lt;name&gt; MOBILEALERTS &lt;deviceID&gt; &lt;corrTempIn&gt; &lt;corrHumIn&gt; &lt;corrTempOut&gt; &lt;corrHumOut&gt; &lt;corrTemp2&gt; &lt;corrHum2&gt; &lt;corrTemp3&gt; &lt;corrHum3&gt;</code><br>
  22262. <br>
  22263. deviceID ist der Sensorcode auf dem Sensor.
  22264. <br>
  22265. corrTempIn optional: Korrekturwert f&uuml;r Temperatur (bzw. Temperatur in)
  22266. <br>
  22267. corrHumIn optional: Korrekturwert f&uuml;r die Luftfeuchte
  22268. <br>
  22269. corrTempOut optional: Korrekturwert f&uuml;r Temperatur Out / Sensor 1
  22270. <br>
  22271. corrHumOut optional: Korrekturwert f&uuml;r die Luftfeuchte Out / Sensor 1
  22272. <br>
  22273. corrTemp2 optional: Korrekturwert f&uuml;r Temperatur Sensor 2
  22274. <br>
  22275. corrHum2 optional: Korrekturwert f&uuml;r die Luftfeuchte Sensor 2
  22276. <br>
  22277. corrTemp3 optional: Korrekturwert f&uuml;r Temperatur Sensor 3
  22278. <br>
  22279. corrHum3 optional: Korrekturwert f&uuml;r die Luftfeuchte Sensor 3
  22280. </ul>
  22281. <br>
  22282. <a name="MOBILEALERTSreadings"></a>
  22283. <b>Readings</b>
  22284. <ul>
  22285. <li>lastMsg<br>Die letzte empfangene Nachricht (immer f&uuml;r unbekannte Ger&auml;te, f&uuml;r bekannte nur wenn das Attribut lastMsg gesetzt ist).</li>
  22286. <li>deviceType<br>Der Ger&auml;tetyĂź.</li>
  22287. <li>lastRcv<br>Timestamp der letzten Nachricht.</li>
  22288. <li>actStatus<br>Zeigt 'unknown', 'alive', 'dead', 'switchedOff' abh&auml;ngig vom Attribut actCycle</li>
  22289. <li>txCounter<br>Counter des letzten Nachricht (wird 0 nach Batteriewechsel).</li>
  22290. <li>triggered<br>1=letzte Nachricht wurde von einem Ereignis ausgel&ouml;st.</li>
  22291. <li>tempertature, prevTemperature, temperatureIn, temperatureOut, prevTemperatureIn, prevTemperatureOut<br>Temperatur (abh&auml;nging vom Ger&auml;t und dem Attribut expert).</li>
  22292. <li>tempertatureString, prevTemperatureString, temperatureInString, temperatureOutString, prevTemperatureInString, prevTemperatureOutString<br>Temperatur als Zeichkette.</li>
  22293. <li>state<br>State of device (short actual reading)</li>
  22294. <li>humidity, prevHumidity, humidityIn, humidityOut, prevHumidityIn, prevHumidityOut<br>Luftfeuchte (abh&auml;nging vom Ger&auml;t und dem Attribut expert).</li>
  22295. <li>humidityString, prevHumidityString, humidityInString, humidityOutString, prevHumidityInString, prevHumidityOutString<br>Luftfeuchte als Zeichenkette</li>
  22296. <li>wetness<br>Zeigt ob der Sensors Wasser entdeckt.</li>
  22297. <li>lastEvent, lastEvent&lt;X&gt; ,lastEventString, lastEvent&lt;X&gt;String<br>Zeitpunkt wann das letzte Event (Regen) stattgefunden hat (nur MA10650).</li>
  22298. <li>mmRain, mmRainActHour, mmRainLastHour, mmRainActDay, mmRainYesterday<br>Regen seit dem letzten Reset des Counters, in der aktuellen Stunde, seit der letzten Stunden, am aktuellen Tagn, gestern.</li>
  22299. <li>direction, directionInt<br>Richtung des Winds.</li>
  22300. <li>windSpeed, gustSpeed<br>Windgeschwindigkeit.</li>
  22301. </ul>
  22302. <br>
  22303. <a name="MOBILEALERTSset"></a>
  22304. <b>Set</b>
  22305. <ul>
  22306. <li><code>set &lt;name&gt; clear &lt;readings|counters&gt;</code><br>
  22307. L&ouml;scht die Readings (alle) oder Counter (wie mmRain). </li>
  22308. </ul>
  22309. <br>
  22310. <a name="MOBILEALERTSget"></a>
  22311. <b>Get</b>
  22312. <ul>
  22313. N/A
  22314. </ul>
  22315. <br>
  22316. <br>
  22317. <a name="MOBILEALERTSattr"></a>
  22318. <b>Attributes</b>
  22319. <ul>
  22320. <li><a href="#ignore">ignore</a></li>
  22321. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  22322. <li>lastMsg<br>
  22323. Wenn dieser Wert auf 1 gesetzt ist, wird die letzte erhaltene Nachricht als Reading gelogt auch wenn das Ger&auml bekannt ist.
  22324. </li>
  22325. <li>actCycle &lt;[hhh:mm]|off&gt;<br>
  22326. Dieses Attribut erm&ouml;licht eine 'nicht erreichbarkeit' Erkennung.
  22327. [hhh:mm] ist die maximale Zeit, innerhalb der keine Nachrichten empfrangen wird.
  22328. Das Reading actStatus zeigt den Status 'unknown', 'alive', 'dead' an.
  22329. </li>
  22330. <li>expert<br>
  22331. Gibt an wie detailiert die Readings angezeigt werden (0=nur aktuelle, 1=mit vorhergehenden, 4=alle).
  22332. </li>
  22333. </ul>
  22334. </ul>
  22335. <p><a name="MOBILEALERTSGW"></a>
  22336. <h3>MOBILEALERTSGW</h3>
  22337. <div class='langLinks'>[<a href='commandref.html#MOBILEALERTSGW'>EN</a> DE]</div>
  22338. <ul>
  22339. MOBILEALERTSGW ist ein FHEM-Modul f&uuml;r das deutsche MobileAlerts Gateway und TFA WEATHERHUB.
  22340. <br><br>
  22341. Dieses FHEM-Modul simuliert einen http-proxy, um Nachrichten vom Gateway abzufangen.
  22342. Um dies zu erreichen, muss das Gateway so konfiguriert werden, dass es den FHEM-Server mit dem definierten Port als
  22343. Proxy nutzt. Sie k&ouml;nnen dies entweder mit der App oder dem Kommando initgateway erreichen.
  22344. Es erkennt automatisch Ger&auml;te. Die Ger&auml; werden durch das <a href="#MOBILEALERTS">MOBILELAERTS</a> Modul
  22345. bereitgestellt. MOBILEALERTS nutzt dieses Modul als Backend.<br>
  22346. <br>
  22347. <a name="MOBILEALERTSGWdefine"></a>
  22348. <b>Define</b>
  22349. <ul>
  22350. <code>define &lt;name&gt; MOBILEALERTSGW &lt;port&gt;</code><br>
  22351. <br>
  22352. port ist der Port auf dem der Proxy-Server h&ouml;rt. Der Port muss frei sein.
  22353. </ul>
  22354. <br>
  22355. <a name="MOBILEALERTSGWreadings"></a>
  22356. <b>Readings</b>
  22357. <ul>
  22358. <li>Gateways<br>Liste der bekannten Gateways</li>
  22359. <li>GW_&lt;Gateway-MAC&gt;_lastSeen<br>Zeitpunkt when zuletzt eine Nachricht empfangen wurde</li>
  22360. <li>GW_&lt;Gateway-MAC&gt;_ip<br>IP-Adresse des Gateways</li>
  22361. <li>GW_&lt;Gateway-MAC&gt;_serial<br>Seriennummer des Gateways</li>
  22362. <li>GW_&lt;Gateway-MAC&gt;_proxy<br>on, off: Einstellung des Proxies (nur verf&uuml;nach einem get config)</li>
  22363. <li>GW_&lt;Gateway-MAC&gt;_proxyname<br>Name/IP der Proxy (nur verf&uuml;nach einem get config)</li>
  22364. <li>GW_&lt;Gateway-MAC&gt;_proxyport<br>Port der Proxy (nur verf&uuml;nach einem get config)</li>
  22365. <li>GW_&lt;Gateway-MAC&gt;_config<br>Komplette Konfiguration als HEX-Wert (nur verf&uuml;nach einem get config)</li>
  22366. </ul>
  22367. <br>
  22368. <a name="MOBILEALERTSGWset"></a>
  22369. <b>Set</b>
  22370. <ul>
  22371. <li><code>set &lt;name&gt; clear &lt;readings&gt;</code><br>
  22372. L&ouml;scht die Readings. </li>
  22373. <li><code>set &lt;name&gt; initgateway &lt;gatewayid&gt;</code><br>
  22374. Setzt den Proxy im Gateway auf dem FHEM-Server. Es kann ein Neustart (reboot) des Gateways n&ouml;tig sein, damit die
  22375. Einstellung wirksam wird.</li>
  22376. <li><code>set &lt;name&gt; rebootgateway &lt;gatewayid&gt;</code><br>
  22377. Startet das Gateway neu.</li>
  22378. </ul>
  22379. <br>
  22380. <a name="MOBILEALERTSGWget"></a>
  22381. <b>Get</b>
  22382. <ul>
  22383. <li><code>get &lt;name&gt; config &lt;IP or gatewayid&gt; </code><br>
  22384. Holt die Konfiguration eines oder aller Gateways im lokalen Netz. IP bzw. die GatewayId sind optional.
  22385. Wenn keines von beiden angegeben ist, werden alle Gateways im lokalen Netz gesucht (Broadcast).</li>
  22386. </ul>
  22387. <br>
  22388. <br>
  22389. <a name="MOBILEALERTSGWattr"></a>
  22390. <b>Attributes</b>
  22391. <ul>
  22392. <li>forward<br>
  22393. Wenn dieser Wert auf 1 gesetzt ist, werden die Daten zus&auml;tzlich zum MobileAlerts Server http://www.data199.com/gateway/put gesendet.
  22394. </li>
  22395. </ul>
  22396. </ul>
  22397. <p><a name="MPD"></a>
  22398. <h3>MPD</h3>
  22399. <div class='langLinks'>[<a href='commandref.html#MPD'>EN</a> DE]</div>
  22400. <ul>
  22401. FHEM Modul zur Steuerung des MPD (oder Mopidy) &auml;hnlich dem MPC (MPC = Music Player Command, das Kommando Zeilen Interface f&uuml;r den
  22402. <a href='http://en.wikipedia.org/wiki/Music_Player_Daemon'>Music Player Daemon</a> ) (englisch)<br>
  22403. Um den MPD auf einem Raspberry Pi zu installieren finden sich im Internet zahlreiche gute Dokumentaionen
  22404. z.B. <a href="http://www.forum-raspberrypi.de/Thread-tutorial-music-player-daemon-mpd-und-mpc-auf-dem-raspberry-pi"><b>hier</b></a><br>
  22405. Thread im FHEM Forum : <a href='http://forum.fhem.de/index.php/topic,18517.0.html'>Modul f&uuml;r MPD</a><br>
  22406. Das Modul ben&ouml;tigt zwingend JSON, installation z.B. mit <i>sudo apt-get install libjson-perl</i><br>
  22407. <a name="MPDdefine"></a>
  22408. <b>Define</b>
  22409. <ul>
  22410. define &lt;name&gt; MPD &lt;IP MPD Server | default localhost&gt; &lt;Port MPD Server | default 6600&gt;<br>
  22411. Beispiel :<br>
  22412. <ul><pre>
  22413. define myMPD MPD 192.168.0.99 7000
  22414. </pre>
  22415. wenn FHEM und der MPD auf dem gleichen PC laufen :
  22416. <pre>
  22417. define myMPD MPD
  22418. </pre>
  22419. </ul>
  22420. </ul>
  22421. <br>
  22422. <a name="MPDset"></a>
  22423. <b>Set</b><ul>
  22424. <code>set &lt;name&gt; &lt;was&gt;</code>
  22425. <br>&nbsp;<br>
  22426. z.Z. unterst&uuml;tzte Kommandos<br>
  22427. &nbsp;<br>
  22428. play => spielt den aktuellen Titel der MPD internen Playliste<br>
  22429. clear => l&ouml;scht die MPD interne Playliste<br>
  22430. stop => stoppt die Wiedergabe<br>
  22431. pause => Pause an/aus<br>
  22432. previous => spielt den vorherigen Titel in der Playliste<br>
  22433. next => spielt den n&aumlchsten Titel in der Playliste<br>
  22434. random => zuf&auml;llige Wiedergabe an/aus<br>
  22435. repeat => Wiederholung an/aus<br>
  22436. toggle => wechselt von play nach stop bzw. stop/pause nach play<br>
  22437. volume (%) => &auml;ndert die Lautst&auml;rke von 0 - 100%<br>
  22438. volumeUp => Lautst&auml;rke schrittweise erh&ouml;hen , Schrittweite = ( attr volumeStep size )<br>
  22439. volumeDown => Lautst&auml;rke schrittweise erniedrigen , Schrittweite = ( attr volumeStep size )<br>
  22440. playlist (name|SongNr|Position) => lade Playliste <name> aus der MPD Datenbank und starte die Wiedergabe<br>
  22441. Werden SongNr und/oder Position nicht mit &uuml;bergeben, startet die Wiedergabe mit dem ersten Titel (Song=0) am Anfang (Position=0)<br>
  22442. playfile (file) => erzeugt eine MPD interne Playliste mit file als Inhalt und spielt dieses ab<br>
  22443. updateDb => wie MPC update, Update der MPD Datenbank<br>
  22444. reset => reset des FHEM MPD Moduls<br>
  22445. mpdCMD (cmd) => sende cmd direkt zum MPD Server ( siehe auch <a href="http://www.musicpd.org/doc/protocol/">MPD Comm Ref</a> )<br>
  22446. IdleNow => sendet das Kommando idle zum MPD und wartet auf Ereignisse<br>
  22447. clear_readings => l&ouml;scht sehr viele Readings<br>
  22448. mute => on,off,toggle<br>
  22449. seekcur (zeit) => Format: [[hh:]mm:]ss. nicht vor MPD Version 0.20<br>
  22450. forward => Springt im laufenden Track um einen optional per seekStep oder seekStepSmall definierten Wert nach vorne bzw. defaultm&auml;�ig um 7%. <br>
  22451. rewind => Springt so wie bei forward beschrieben entsprechend zur&uuml;ck. <br>
  22452. channel => Wechsele zur Playliste mit der angegebenen Nummer<br>
  22453. channelUp => wechselt zur n&auml;chsten Playliste<br>
  22454. channelDown => wechselt zur vorherigen Playliste<br>
  22455. save_bookmark => speichert den aktuellen Zustand (Tracknummer und Position innerhalb des Tracks fĂźr die gerade geladene Playliste<br>.
  22456. dies sunktioniert nur, wenn die Playliste mit dem Modul geladen wurde und wenn das Attribut bookmarkDir gesetzt ist.<br>
  22457. load_bookmark <name> => stellt den zuletzt gespeicherten Zustand (set bookmark) der geladenen Playliste wieder her und springt zum gespeicherten Track und Position<br>
  22458. wird <name> zusätzlich mit ßbergeben wird zuvor die entsprechend Playliste geladen<br>
  22459. </ul>
  22460. <br>
  22461. <a name="MPDget"></a>
  22462. <b>Get</b><ul>
  22463. <code>get &lt;name&gt; &lt;was&gt;</code>
  22464. <br>&nbsp;<br>
  22465. z.Z. unterst&uuml;tzte Kommandos<br>
  22466. music => zeigt alle Dateien der MPD Datenbank<br>
  22467. playlists => zeigt alle Playlisten der MPD Datenbank<br>
  22468. playlistsinfo => zeigt Informationen der aktuellen Playliste<br>
  22469. webrc => HTML Ausgabe einer einfachen Web Fernbedienung Bsp :.<br>
  22470. <pre>
  22471. define &lt;name&gt; weblink htmlCode {fhem("get &lt;name&gt; webrc", 1)}
  22472. attr &lt;name&gt; room MPD
  22473. </pre>
  22474. statusRequest => hole aktuellen MPD Status<br>
  22475. currentsong => zeigt Informationen zum aktuellen Titel der MPD internen Playliste<br>
  22476. outputs => zeigt Informationen der definierten MPD Ausgabe Kan&auml;le ( aus /etc/mpd.conf )<br>
  22477. bookmarks => zeigt eine Liste aller bisher gespeicherten Bookmarks<br>
  22478. </ul>
  22479. <br>
  22480. <a name="MPDattr"></a>
  22481. <b>Attribute</b>
  22482. <ul>
  22483. <li>password <pwd> => Password falls in der mpd.conf definiert</li>
  22484. <li>loadMusic 1|0 => lade die MPD Titel beim FHEM Start : mpd.conf - music_directory</li>
  22485. <li>loadPlaylists 1|0 => lade die MPD Playlisten beim FHEM Start : mpd.conf - playlist_directory</li>
  22486. <li>volumeStep x => Schrittweite f&uuml;r Volume +/-</li>
  22487. <li>titleSplit 1|0 => zerlegt die aktuelle Titelangabe am ersten Vorkommen von - (BlankMinusBlank) in die zwei Felder Artist und Titel,<br>
  22488. wenn im abgespielten Titel die Interpreten Information nicht verf&uuml;gbar ist (sehr oft bei Radio-Streams default 1)<br>
  22489. Liegen keine Titelangaben vor wird die Ausgabe durch den Namen der Radiostation ersetzt</li>
  22490. <li>timeout (default 1) => Timeoutwert in Sekunden fĂźr die Verbindung fhem-mpd</li>
  22491. <li>waits (default 60) => &Uuml;berwachungszeit in Sekunden f&uuml;r den Idle Prozess. In Verbindung mit refresh_song der Aktualisierungs Intervall fĂźr die aktuellen Songparamter,<br>
  22492. (z.B. um den Fortschrittsbalken bei TabletUI aktuell zu halten) </li>
  22493. <li>stateMusic 1|0 => zeige Musikliste als DropDown im Webfrontend</li>
  22494. <li>statePlaylists 1|0 => zeige Playlisten als DropDown im Webfrontend</li>
  22495. <li>player mpd|mopidy|forked-daapd (default mpd) => welcher Player wird gesteuert<br>
  22496. <b>ACHTUNG</b> : Mopidy unterst&uuml;tzt nicht alle Kommandos des echten MPD ! (siehe <a href="https://docs.mopidy.com/en/latest/ext/mpd/">Mopidy Dokumentation</a>)</li>
  22497. <li>Cover Art Funktionen von <a href="http://www.last.fm/"><b>last.fm</b></a> :</li>
  22498. <li>image_size -1|0|1|2|3 (default -1 = keine Interpretenbilder und Infos von last.fm verwenden)<br>
  22499. last.fm stellt verschiedene Bildgroessen zur VerfĂźgung :<br>
  22500. 0 = 32x32 , 1 = 64x64 , 2 = 174x174 , 3 = 300x300</li>
  22501. <li>artist_content 0|1 => stellt Interpreteninformation im Reading artist_content zur Verf&uuml;gung</li>
  22502. <li>artist_summary 0|1 => stellt weitere Interpreteninformation im Reading artist_summary zur Verf&uuml;gung<br>
  22503. Beispiel Anzeige mittels readingsGroup :<br>
  22504. <pre>
  22505. define rg_artist readingsGroup &ltMPD name&gt:artist,artist_image_html,artist_summary
  22506. attr rg_artist room MPD
  22507. </pre></li>
  22508. <li>cache (default lfm => /fhem/www/lfm) Zwischenspeicher fĂźr die JSON und PNG Dateien<br>
  22509. <b>Wichtig</b> : Der User unter dem der fhem Prozess ausgef&uuml;hrt wird (default fhem) muss Lese und Schreibrechte in diesem Verzeichniss haben !<br>
  22510. Das Verzeichnis sollte auch unterhalb von www liegen, damit der fhem Webserver direkten Zugriff auf die Bilder hat.</li>
  22511. <li>unknown_artist_image => Ersatzimage wenn kein anderes Image zur Verf&uuml;gung steht (default : /fhem/icons/1px-spacer)</li>
  22512. <li>bookmarkDir => ein vom FHEM User les- und beschreibbares Verzeichnis. Wennn dieses definiert wird, ist das Speichern und Wiederherstellen von Playlistzust&auml;nden mit Hilfe von set/get bookmark m&ouml;glich</li>
  22513. <li>autoBookmark => wenn dies auf 1 gesetzt wird, dann werden automatisch Playlistenzust&auml;nde geladen und gespeichert, immer wenn die Playliste mit diesem Modul gewechselt wird</li>
  22514. <li>seekStep => wenn definiert, wird dadurch die Sprungweite von forward und rewind gesetzt. Der Wert gilt als Prozentwert. default: 7</li>
  22515. <li>seekStepSmall => Wenn diesem Attribut kann fĂźr den Anfang eines Tracks innerhalb der ersten per seekStepSmall definierten Prozent eine kleinere Sprungweite definiert werden,<br>
  22516. um so z.B. die Intromusik von H&ouml;rspielen oder H&ouml;rb&uuml;chern &uuml;berspringen zu k&ouml;nnen. default: 1</li>
  22517. <li>seekStepSmallThreshold => unterhalb dieses Wertes wird seekStepSmall benutzt, oberhalb seekStep default: 0 (ohne Funktion)</li>
  22518. <li>no_playlistcollection (default 0) => wenn auf 1 gesetzt wird das Reading playlistcollection nicht erzeugt</li>
  22519. </ul>
  22520. <br>
  22521. <b>Readings</b>
  22522. <ul>
  22523. - alle MPD internen Werte<br>
  22524. - vom Modul direkt erzeugte Readings :<br>
  22525. playlistinfo : (TabletUI Medialist)<br>
  22526. playlistcollection : (TabletUI)<br>
  22527. playlistname : (TabletUI)<br>
  22528. artist_image : (bei Nutzung von Last.fm)<br>
  22529. artist_image_html : (bei Nutzung von Last.fm)<br>
  22530. album_image : (bei Nutzung von Last.fm)<br>
  22531. album_image_html : (bei Nutzung von Last.fm)<br>
  22532. artist_content : (bei Nutzung von Last.fm)<br>
  22533. artist_summary : (bei Nutzung von Last.fm)<br>
  22534. playlistinfo : (z.B. f&uuml;r die TabletUI Medialist)<br>
  22535. playlistcollection : (TabletUI) Liste der Playlisten<br>
  22536. playlistname : (TabletUI) Name der aktuellen Playliste aus playlistcollection<br>
  22537. playlist_num : Playlisten Nr. (0 .. n) der aktuellen Playliste aus playlistcollection
  22538. playlist_json : (notwendig f&uuml; das Medialist Modul)<br>
  22539. Cover : Cover Bild zum aktuellen Song aus playlist_json<br>
  22540. currentTrackProvider : Radio / Bibliothek - Unterscheidung Radio Stream oder lokale Datei<br>
  22541. rawTitle : Title Information ohne Ver&auml;nderungen durch das Modul
  22542. </ul>
  22543. </ul>
  22544. <p><a name="MQTT"></a>
  22545. <h3>MQTT</h3>
  22546. <ul>
  22547. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22548. hier: <a href='commandref.html#MQTT'>MQTT</a><br/>
  22549. </ul>
  22550. <a name="MQTT2_CLIENT"></a>
  22551. <h3>MQTT2_CLIENT</h3>
  22552. <ul>
  22553. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22554. hier: <a href='commandref.html#MQTT2_CLIENT'>MQTT2_CLIENT</a><br/>
  22555. </ul>
  22556. <a name="MQTT2_DEVICE"></a>
  22557. <h3>MQTT2_DEVICE</h3>
  22558. <ul>
  22559. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22560. hier: <a href='commandref.html#MQTT2_DEVICE'>MQTT2_DEVICE</a><br/>
  22561. </ul>
  22562. <a name="MQTT2_SERVER"></a>
  22563. <h3>MQTT2_SERVER</h3>
  22564. <ul>
  22565. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22566. hier: <a href='commandref.html#MQTT2_SERVER'>MQTT2_SERVER</a><br/>
  22567. </ul>
  22568. <a name="MQTT_BRIDGE"></a>
  22569. <h3>MQTT_BRIDGE</h3>
  22570. <ul>
  22571. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22572. hier: <a href='commandref.html#MQTT_BRIDGE'>MQTT_BRIDGE</a><br/>
  22573. </ul>
  22574. <a name="MQTT_DEVICE"></a>
  22575. <h3>MQTT_DEVICE</h3>
  22576. <ul>
  22577. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22578. hier: <a href='commandref.html#MQTT_DEVICE'>MQTT_DEVICE</a><br/>
  22579. </ul>
  22580. <a name="MQTT_GENERIC_BRIDGE"></a>
  22581. <h3>MQTT_GENERIC_BRIDGE</h3>
  22582. <div class='langLinks'>[<a href='commandref.html#MQTT_GENERIC_BRIDGE'>EN</a> DE]</div>
  22583. <ul>
  22584. <p>
  22585. Dieses Modul ist eine MQTT-Bridge, die gleichzeitig mehrere FHEM-Devices erfasst und deren Readings
  22586. per MQTT weiter gibt bzw. aus den eintreffenden MQTT-Nachrichten befuellt oder diese als 'set'-Befehl
  22587. an dem konfigurierten FHEM-Geraet ausfuert.
  22588. <br/>Es wird ein <a href="#MQTT">MQTT</a>-Geraet als IODev benoetigt.
  22589. </p>
  22590. <p>Die (minimale) Konfiguration der Bridge selbst ist grundsaetzlich sehr einfach.</p>
  22591. <a name="MQTT_GENERIC_BRIDGEdefine"></a>
  22592. <p><b>Definition:</b></p>
  22593. <ul>
  22594. <p>Im einfachsten Fall reichen schon zwei Zeilen:</p>
  22595. <p><code>defmod mqttGeneric MQTT_GENERIC_BRIDGE [prefix] [devspec,[devspec]]</br>
  22596. attr mqttGeneric IODev <MQTT-Device></code></p>
  22597. <p>Alle Parameter im Define sind optional.</p>
  22598. <p>Der erste ist ein Prefix fuer die Steuerattribute, worueber die zu ueberwachende Geraete (s.u.)
  22599. konfiguriert werden. Defaultwert ist 'mqtt'.
  22600. Wird dieser z.B. als 'hugo' redefiniert, heissen die Steuerungsattribute entsprechend hugoPublish etc.</p>
  22601. <p>Der zweite Parameter ('devspec') erlaubt die Menge der zu ueberwachenden Geraeten
  22602. zu begrenzen (sonst werden einfach alle ueberwacht, was jedoch Performance kosten kann).
  22603. Beispiel fuer devspec: 'TYPE=dummy' oder 'dummy1,dummy2'. Bei kommaseparierten Liste duerfen keine Leerzeichen verwendet werden!
  22604. s.a. <a href="https://fhem.de/commandref_DE.html#devspec">devspec</a></p>
  22605. </ul>
  22606. <a name="MQTT_GENERIC_BRIDGEget"></a>
  22607. <p><b>get:</b></p>
  22608. <ul>
  22609. <li>
  22610. <p>version<br/>
  22611. Zeigt Modulversion an.</p>
  22612. </li>
  22613. <li>
  22614. <p>devlist [&lt;name (regex)&gt;]<br/>
  22615. Liefert Liste der Namen der von dieser Bridge ueberwachten Geraete deren Namen zu dem optionalen regulaerem Ausdruck entsprechen.
  22616. Fehlt der Ausdruck, werden alle Geraete aufgelistet.
  22617. </p>
  22618. </li>
  22619. <li>
  22620. <p>devinfo [&lt;name (regex)&gt;]<br/>
  22621. Gibt eine Liste der ueberwachten Geraete aus, deren Namen zu dem optionalen regulaerem Ausdruck entsprechen.
  22622. Fehlt der Ausdruck, werden alle Geraete aufgelistet. Zusaetzlich werden bei 'publish' und 'subscribe'
  22623. verwendete Topics angezeigt incl. der entsprechenden Readinsnamen.</p>
  22624. </li>
  22625. </ul>
  22626. <a name="MQTT_GENERIC_BRIDGEreadings"></a>
  22627. <p><b>readings:</b></p>
  22628. <ul>
  22629. <li>
  22630. <p>device-count<br/>
  22631. Anzahl der ueberwachten Geraete</p>
  22632. </li>
  22633. <li>
  22634. <p>incoming-count<br/>
  22635. Anzahl eingehenden Nachrichten</p>
  22636. </li>
  22637. <li>
  22638. <p>outgoing-count<br/>
  22639. Anzahl ausgehende Nachrichten</p>
  22640. </li>
  22641. <li>
  22642. <p>updated-reading-count<br/>
  22643. Anzahl der gesetzten Readings</p>
  22644. </li>
  22645. <li>
  22646. <p>updated-set-count<br/>
  22647. Anzahl der abgesetzten 'set' Befehle</p>
  22648. </li>
  22649. <li>
  22650. <p>transmission-state<br/>
  22651. letze Uebertragunsart</p>
  22652. </li>
  22653. </ul>
  22654. <a name="MQTT_GENERIC_BRIDGEattr"></a>
  22655. <p><b>Attribute:</b></p>
  22656. <ul>
  22657. <p>folgende Attribute werden unterstuetzt:</p>
  22658. <li><p>IODev<br/>
  22659. Dieses Attribut ist obligatorisch und muss den Namen einer funktionierenden MQTT-Modulinstanz enthalten.
  22660. Modul MQTT2_SERVER wird nicht unterstuetzt.</p>
  22661. </li>
  22662. <li>
  22663. <p>disable<br/>
  22664. Wert 1 deaktiviert die Bridge</p>
  22665. <p>Beispiel:<br>
  22666. <code>attr &lt;dev&gt; disable 1</code>
  22667. </p>
  22668. </li>
  22669. <li>
  22670. <p>globalDefaults<br/>
  22671. Definiert Defaults. Diese greifen in dem Fall, wenn in dem jeweiligen Geraet definierte Werte nicht zutreffen.
  22672. s.a. <a href="#MQTT_GENERIC_BRIDGEmqttDefaults">mqttDefaults</a>.
  22673. </p>
  22674. </li>
  22675. <li>
  22676. <p>globalAlias<br/>
  22677. Definiert Alias. Diese greifen in dem Fall, wenn in dem jeweiligen Geraet definierte Werte nicht zutreffen.
  22678. s.a. <a href="#MQTT_GENERIC_BRIDGEmqttAlias">mqttAlias</a>.
  22679. </p>
  22680. </li>
  22681. <li>
  22682. <p>globalPublish<br/>
  22683. Definiert Topics/Flags fuer die Uebertragung per MQTT. Diese werden angewendet, falls in dem jeweiligen Geraet
  22684. definierte Werte nicht greifen oder nicht vorhanden sind.
  22685. s.a. <a href="#MQTT_GENERIC_BRIDGEmqttPublish">mqttPublish</a>.
  22686. </p>
  22687. </li>
  22688. <li>
  22689. <p>globalSubscribe ! TODO - wird derzeit nicht unterstuetzt und wird moeglicherweise gar nicht implementiert !<br/>
  22690. Definiert Topics/Flags fuer die Aufnahme der Werte aus der MQTT-Uebertragung. Sie greifen, falls in dem jeweiligen Geraet
  22691. definierte Werte nicht greifen oder nicht vorhanden sind. s.a. <a href="#MQTT_GENERIC_BRIDGEmqttSubscribe">mqttSubscribe</a>.
  22692. </p>
  22693. </li>
  22694. <li>
  22695. <p>globalTypeExclude<br/>
  22696. Definiert (Geraete-)Typen und Readings, die nicht bei der Uebertragung beruecksichtigt werden.
  22697. Werte koennen getrennt fuer jede Richtung (buplish oder subscribe) vorangestellte Prefixe 'pub:' und 'sub:' angegeben werden.
  22698. Ein einzelner Wert bedeutet, dass ein Geraet diesen Types komplett ignoriert wird (also fuer alle seine Readings und beide Richtungen).
  22699. Durch ein Doppelpunkt getrennte Paare werden als [sub:|pub:]Type:Reading interptretiert.
  22700. Das Bedeutet, dass an dem gegebenen Type die genannte Reading nicht uebertragen wird.
  22701. Ein Stern anstatt Type oder auch Reading bedeutet, dass alle Readings eines Geretaetyps
  22702. bzw. genannte Readings an jedem Geraetetyp ignoriert werden. </p>
  22703. <p>Beispiel:<br/>
  22704. <code>attr &lt;dev&gt; globalTypeExclude MQTT MQTT_GENERIC_BRIDGE:* MQTT_BRIDGE:transmission-state *:baseID</code></p>
  22705. </li>
  22706. <li>
  22707. <p>globalDeviceExclude<br/>
  22708. Definiert Geraetenamen und Readings, die nicht uebertragen werden.
  22709. Werte koennen getrennt fuer jede Richtung (buplish oder subscribe) vorangestellte Prefixe 'pub:' und 'sub:' angegeben werden.
  22710. Ein einzelner Wert bedeutet, dass ein Geraet mit diesem Namen komplett ignoriert wird (also fuer alle seine Readings und beide Richtungen).
  22711. Durch ein Doppelpunkt getrennte Paare werden als [sub:|pub:]Device:Reading interptretiert.
  22712. Das Bedeutet, dass an dem gegebenen Geraet die genannte Reading nicht uebertragen wird.</p>
  22713. <p>Beispiel:<br/>
  22714. <code>attr &lt;dev&gt; globalDeviceExclude Test Bridge:transmission-state</code></p>
  22715. </li>
  22716. <p>Fuer die ueberwachten Geraete wird eine Liste der moeglichen Attribute automatisch um mehrere weitere Eintraege ergaenzt.
  22717. Sie fangen alle mit vorher in der Bridge definiertem Prefix an. Ueber diese Attribute wird die eigentliche MQTT-Anbindung konfiguriert.<br/>
  22718. Defaultmaessig werden folgende Attributnamen verwendet: mqttDefaults, mqttAlias, mqttPublish, mqttSubscribe.
  22719. <br/>Die Bedeutung dieser Attribute wird im Folgenden erklaert.
  22720. </p>
  22721. <li>
  22722. <p><a name="MQTT_GENERIC_BRIDGEmqttDefaults">mqttDefaults</a><br/>
  22723. Hier wird eine Liste der "key=value"-Paare erwartet. Folgende Keys sind dabei moeglich:
  22724. <ul>
  22725. <li>'qos' <br/>definiert ein Defaultwert fuer MQTT-Paramter 'Quality of Service'.</li>
  22726. <li>'retain' <br/>erlaubt MQTT-Nachrichten als 'retained messages' zu markieren.</li>
  22727. <li>'base' <br/>wird als Variable ($base) bei der Konfiguration von konkreten Topics zur Verfuegung gestellt.
  22728. Sie kann entweder Text oder eine Perl-Expression enthalten.
  22729. Perl-Expression muss in geschweifte Klammern eingeschlossen werden.
  22730. In einer Expression koennen folgende Variablen verwendet werden:
  22731. $base = entsprechende Definition aus dem '<a href="#MQTT_GENERIC_BRIDGEglobalDefaults">globalDefaults</a>',
  22732. $reading = Original-Readingname,
  22733. $device = Devicename und $name = Readingalias (s. <a href="#MQTT_GENERIC_BRIDGEmqttAlias">mqttAlias</a>.
  22734. Ist kein Alias definiert, ist $name=$reading).</li>
  22735. </ul>
  22736. <br/>
  22737. Alle diese Werte koennen durch vorangestelle Prefixe ('pub:' oder 'sub') in ihrer Gueltigkeit
  22738. auf nur Senden bzw. nur Empfangen begrenzt werden (soweit sinnvoll).
  22739. Werte fuer 'qos' und 'retain' werden nur verwendet,
  22740. wenn keine explizite Angaben darueber fuer ein konkretes Topic gemacht worden sind.</p>
  22741. <p>Beispiel:<br/>
  22742. <code>attr &lt;dev&gt; mqttDefaults base={"/TEST/$device"} pub:qos=0 sub:qos=2 retain=0</code></p>
  22743. </p>
  22744. </li>
  22745. <li>
  22746. <p><a name="MQTT_GENERIC_BRIDGEmqttAlias">mqttAlias</a><br/>
  22747. Dieses Attribut ermoeglicht Readings unter einem anderen Namen auf MQTT-Topic zu mappen.
  22748. Eigentlich nur sinnvoll, wenn Topicdefinitionen Perl-Expressions mit entsprechenden Variablen sind.
  22749. Auch hier werden 'pub:' und 'sub:' Prefixe unterstuetzt (fuer 'subscribe' gilt das Mapping quasi umgekehrt).
  22750. <br/><!--TODO: -->Alias fuer subscribe ist derzeit nicht implementiert!</p>
  22751. <p>Beispiel:<br/>
  22752. <code>attr &lt;dev&gt; mqttAlias pub:temperature=temp</code></p>
  22753. </p>
  22754. </li>
  22755. <li>
  22756. <p><a name="MQTT_GENERIC_BRIDGEmqttPublish">mqttPublish</a><br/>
  22757. Hier werden konkrette Topics definiet und den Readings zugeordnet (Format: &lt;reading&gt;:topic=&lt;topic&gt;).
  22758. Weiterhin koennen diese einzeln mit 'qos'- und 'retain'-Flags versehen werden. <br/>
  22759. Topics koennen auch als Perl-Expression mit Variablen definiert werden ($reading, $device, $name, $base).<br/>
  22760. 'topic' kann auch als 'readings-topic' geschrieben werden.<br/>
  22761. Werte fuer mehrere Readings koennen auch gemeinsam gleichzeitig definiert werden,
  22762. indem sie, mittels '|' getrennt, zusammen angegeben werden.<br/>
  22763. Wird anstatt eines Readingsnamen ein '*' verwendet, gilt diese Definition fuer alle Readings,
  22764. fuer die keine explizite Angaben gemacht wurden.<br/>
  22765. Ebenso koennen auch Attributwerte gesendet werden ('atopic' oder 'attr-topic').
  22766. Weiterhin koennen auch Expressions (reading:expression=...) definiert werden. <br/>
  22767. Die Expressions koenne sinnvollerweise entweder Variablen ($value, $topic, $qos, $retain, $message) veraendern, oder einen Wert != undef zurrueckgeben.<br/>
  22768. Der Rueckhgabe wert wird als neue Nachricht-Value verwendet, die Aenderung der Variablen hat dabei jedoch Vorrang.<br/>
  22769. Ist der Rueckgabewert undef, dann wird das Setzen/Ausfuehren unterbunden. <br/>
  22770. Ist die Rueckgabe ein Hash (nur 'topic'), werden seine Schluesselwerte als Topic verwendet,
  22771. die Inhalte der Nachrichten sind entsprechend die Werte aus dem Hash.</p>
  22772. <p>Option 'resendOnConnect' erlaubt eine Speicherung der Nachrichten,
  22773. wenn keine Verbindung zu dem MQTT-Server besteht.
  22774. Die zu sendende Nachrichten in einer Warteschlange gespeichet.
  22775. Wird die Verbindung aufgebaut, werden die Nachrichten in der ursprungichen Reihenfolge verschickt.
  22776. <ul>Moegliche Werte:
  22777. <li>none<br/>alle verwerfen</li>
  22778. <li>last<br/>immer nur die letzte Nachricht speichern</li>
  22779. <li>first<br/>immer nur die erste Nachricht speichern danach folgende verwerfen</li>
  22780. <li>all<br/>alle speichern, allerdings existiert eine Obergrenze von 100,
  22781. wird es mehr, werden aelteste ueberzaelige Nachrichten verworfen.</li>
  22782. </ul>
  22783. </p>
  22784. <p>Beispiele:<br/>
  22785. <code> attr &lt;dev&gt; mqttPublish temperature:topic={"$base/$name"} temperature:qos=1 temperature:retain=0 *:topic={"$base/$name"} humidity:topic=/TEST/Feuchte<br/>
  22786. attr &lt;dev&gt; mqttPublish temperature|humidity:topic={"$base/$name"} temperature|humidity:qos=1 temperature|humidity:retain=0<br/>
  22787. attr &lt;dev&gt; mqttPublish *:topic={"$base/$name"} *:qos=2 *:retain=0<br/>
  22788. attr &lt;dev&gt; mqttPublish *:topic={"$base/$name"} reading:expression={"message: $value"}<br/>
  22789. attr &lt;dev&gt; mqttPublish *:topic={"$base/$name"} reading:expression={$value="message: $value"}<br/>
  22790. attr &lt;dev&gt; mqttPublish *:topic={"$base/$name"} reading:expression={"/TEST/Topic1"=>"$message", "/TEST/Topic2"=>"message: $message"}</br>
  22791. attr &lt;dev&gt; mqttPublish [...] *:resendOnConnect=last
  22792. </code></p>
  22793. </p>
  22794. </li>
  22795. <li>
  22796. <p><a name="MQTT_GENERIC_BRIDGEmqttSubscribe">mqttSubscribe</a><br/>
  22797. Dieses Attribut konfiguriert das Empfangen der MQTT-Nachrichten und die entsprechenden Reaktionen darauf.<br/>
  22798. Die Konfiguration ist aehnlich der fuer das 'mqttPublish'-Attribut. Es koennen Topics fuer das Setzen von Readings ('topic' oder auch 'readings-topic') und
  22799. Aufrufe von 'set'-Befehl an dem Geraet ('stopic' oder 'set-topic') definiert werden. <br/>
  22800. Ebenso koennen auch Attribute gesetzt werden ('atopic' oder 'attr-topic').</br>
  22801. Mit Hilfe von zusaetzlichen auszufuehrenden Perl-Expressions ('expression') kann das Ergebnis vor dem Setzen/Ausfueren noch beeinflusst werden.<br/>
  22802. In der Expression sind folgende Variablen verfuegbar: $device, $reading, $message (initial gleich $value).
  22803. Die Expression kann dabei entweder Variable $value veraendern, oder einen Wert != undef zurueckgeben. Redefinition der Variable hat Vorrang.
  22804. Ist der Rueckgabewert undef, dann wird das Setzen/Ausfuehren unterbunden (es sei denn, $value hat einen neuen Wert). <br/>
  22805. Ist die Rueckgabe ein Hash (nur fuer 'topic' und 'stopic'), dann werden seine Schluesselwerte als Readingsnamen bzw. 'set'-Parameter verwendet,
  22806. die zu setzenden Werte sind entsprechend die Werte aus dem Hash.<br/>
  22807. Weiterhin kann das Attribut 'qos' angegeben werden ('retain' macht dagegen keinen Sinn).<br/>
  22808. In der Topic-Definition koennen MQTT-Wildcards (+ und #) verwendet werden. <br/>
  22809. Falls der Reading-Name mit einem '*'-Zeichen am Anfang definiert wird, gilt dieser als 'Platzhalter'.
  22810. Mehrere Definitionen mit '*' sollten somit z.B. in folgender Form verwendet werden: *1:topic=... *2:topic=...
  22811. Der tatsaechliche Name der Reading (und ggf. des Geraetes) wird dabei durch Variablen aus dem Topic
  22812. definiert ($device (nur fuer globale Definition in der Bridge), $reading, $name).
  22813. Im Topic wirken diese Variablen als Wildcards, macht natuerlich nur Sinn, wenn Reading-Name auch nicht fest definiert ist
  22814. (also faengt mit '*' an, oder mehrere Namen durch '|' getrennt definiert werden). <br/>
  22815. Die Variable $name wird im Unterschied zu $reading ggf. ueber die in 'mqttAlias' definierten Aliases beeinflusst.
  22816. Auch Verwendung von $base ist erlaubt.<br/>
  22817. Bei Verwendung von 'stopic' wird das 'set'-Befehl als 'set &lt;dev&gt; &lt;reading&gt; &lt;value&gt;' ausgefuert.
  22818. Fuer ein 'set &lt;dev&gt; &lt;value&gt;' soll als Reading-Name 'state' verwendet werden.</p>
  22819. <p>Die oft angefragte JSON-Unterst&uuml;tzung kann einfach mit Hilfe von 'expression' realisiert werden.
  22820. Daf&uuml;r eignet sich eine in fhem.pl bereits vorhandene Methode: json2nameValue. Als Parameter soll $message verwendet werden.</p>
  22821. <p>Beispiele:<br/>
  22822. <code>attr &lt;dev&gt; mqttSubscribe temperature:topic=/TEST/temperature test:qos=0 *:topic={"/TEST/$reading/value"} <br/>
  22823. attr &lt;dev&gt; mqttSubscribe desired-temperature:stopic={"/TEST/temperature/set"}<br/>
  22824. attr &lt;dev&gt; mqttSubscribe state:stopic={"/TEST/light/set"} state:expression={...}<br/>
  22825. attr &lt;dev&gt; mqttSubscribe state:stopic={"/TEST/light/set"} state:expression={$value="x"}<br/>
  22826. attr &lt;dev&gt; mqttSubscribe state:stopic={"/TEST/light/set"} state:expression={"R1"=>$value, "R2"=>"Val: $value", "R3"=>"x"}
  22827. attr &lt;dev&gt; mqttSubscribe verbose:atopic={"/TEST/light/verbose"}
  22828. attr &lt;dev&gt; mqttSubscribe json:topic=/XTEST/json json:expression={json2nameValue($message)}
  22829. </code></p>
  22830. </p>
  22831. </li>
  22832. <li>
  22833. <p><a name="MQTT_GENERIC_BRIDGEmqttForward">mqttForward</a><br/>
  22834. Dieses Attribut definiert was passiert, wenn eine und dieselbe Reading sowohl aboniert als auch gepublisht wird.
  22835. Moegliche Werte: 'all' und 'none'. <br/>
  22836. Bei 'none' werden per MQTT angekommene Nachrichten nicht aus dem selben Gerät per MQTT weiter gesendet.<br/>
  22837. Die Einstellung 'all' bewirkt das Gegenteil, also damit wird das Weiterleiten ermoeglicht.<br/>
  22838. Fehlt dieser Attribut, dann wird standartmae�ig fßr alle Geraetetypen au�er 'Dummy' die Einstellung 'all' angenommen
  22839. (damit koennen Aktoren Befehle empfangen und ihre �nderungen im gleichem Zug weiter senden)
  22840. und fuer Dummies wird 'none' verwendet. Das wurde so gewaehlt, weil Dummies oft als eine Art GUI-Schalterelement verwendet werden.
  22841. In diesem Fall wuerde 'all' unter Umstaenden eine Endlosschleife der Nachrichten verursachen.
  22842. </p>
  22843. </p>
  22844. </li>
  22845. <li>
  22846. <p><a name="MQTT_GENERIC_BRIDGEmqttDisable">mqttDisable</a><br/>
  22847. Wird dieses Attribut in einem Geraet gesetzt, wird dieses Geraet vom Versand bzw. Empfang der Readingswerten ausgeschlossen.</p>
  22848. </p>
  22849. </li>
  22850. </ul>
  22851. <p><b>Beispiele</b></p>
  22852. <ul>
  22853. <li>
  22854. <p>Bridge fuer alle moeglichen Geraete mit dem Standardprefix:<br/>
  22855. <code>defmod mqttGeneric MQTT_GENERIC_BRIDGE<br/>
  22856. attr mqttGeneric IODev mqtt</code>
  22857. </p>
  22858. </p>
  22859. </li>
  22860. <li>
  22861. <p>Bridge mit dem Prefix 'mqtt' fuer drei bestimmte Geraete:<br/>
  22862. <code> defmod mqttGeneric MQTT_GENERIC_BRIDGE mqtt sensor1,sensor2,sensor3<br/>
  22863. attr mqttGeneric IODev mqtt</code></p>
  22864. </p>
  22865. </li>
  22866. <li>
  22867. <p>Bridge fuer alle Geraete in einem bestimmten Raum:<br/>
  22868. <code>defmod mqttGeneric MQTT_GENERIC_BRIDGE mqtt room=Wohnzimmer<br/>
  22869. attr mqttGeneric IODev mqtt</code></p>
  22870. </p>
  22871. </li>
  22872. <li>
  22873. <p>Einfachste Konfiguration eines Temperatursensors:<br/>
  22874. <code>defmod sensor XXX<br/>
  22875. attr sensor mqttPublish temperature:topic=/haus/sensor/temperature</code></p>
  22876. </p>
  22877. </li>
  22878. <li>
  22879. <p>Alle Readings eines Sensors (mit ihren Namen wie sie sind) per MQTT versenden:<br/>
  22880. <code> defmod sensor XXX<br/>
  22881. attr sensor mqttPublish *:topic={"/sensor/$reading"}</code></p>
  22882. </p>
  22883. </li>
  22884. <li>
  22885. <p>Topicsdefinition mit Auslagerung von dem gemeinsamen Teilnamen in 'base'-Variable:<br/>
  22886. <code>defmod sensor XXX<br/>
  22887. attr sensor mqttDefaults base={"/$device/$reading"}<br/>
  22888. attr sensor mqttPublish *:topic={$base}</code></p>
  22889. </p>
  22890. </li>
  22891. <li>
  22892. <p>Topicsdefinition nur fuer bestimmte Readings mit deren gleichzeitigen Umbennenung (Alias):<br/>
  22893. <code>defmod sensor XXX<br/>
  22894. attr sensor mqttAlias temperature=temp humidity=hum<br/>
  22895. attr sensor mqttDefaults base={"/$device/$name"}<br/>
  22896. attr sensor mqttPublish temperature:topic={$base} humidity:topic={$base}<br/></code></p>
  22897. </p>
  22898. </li>
  22899. <li>
  22900. <p>Beispiel fuer eine zentralle Konfiguration in der Bridge fuer alle Devices, die Reading 'temperature' besitzen:<br/>
  22901. <code>defmod mqttGeneric MQTT_GENERIC_BRIDGE <br/>
  22902. attr mqttGeneric IODev mqtt <br/>
  22903. attr mqttGeneric defaults sub:qos=2 pub:qos=0 retain=0 <br/>
  22904. attr mqttGeneric publish temperature:topic={"/haus/$device/$reading"} <br/>
  22905. </code></p>
  22906. </p>
  22907. </li>
  22908. <li>
  22909. <p>Beispiel fuer eine zentralle Konfiguration in der Bridge fuer alle Devices <br/>
  22910. (wegen einer schlechte uebersicht und einer unnoetig grossen Menge eher nicht zu empfehlen):<br/>
  22911. <code>defmod mqttGeneric MQTT_GENERIC_BRIDGE <br/>
  22912. attr mqttGeneric IODev mqtt <br/>
  22913. attr mqttGeneric defaults sub:qos=2 pub:qos=0 retain=0 <br/>
  22914. attr mqttGeneric publish *:topic={"/haus/$device/$reading"} <br/></code></p>
  22915. </p>
  22916. </li>
  22917. </ul>
  22918. <p><b>Einschraenkungen:</b></p>
  22919. <ul>
  22920. <li>Wenn mehrere Readings das selbe Topic abonieren, sind dabei keine unterschiedlichen QOS moeglich.</li>
  22921. <li>Wird in so einem Fall QOS ungleich 0 benoetigt, sollte dieser entweder fuer alle Readings gleich einzeln definiert werden,
  22922. oder allgemeinguetltig ueber Defaults. <br/>
  22923. Ansonsten wird beim Erstellen von Abonements der erst gefundene Wert verwendet. </li>
  22924. <li>Abonements werden nur erneuert, wenn sich das Topic aendert, QOS-Flag-Aenderung alleine wirkt sich daher erst nach einem Neustart aus.</li>
  22925. </ul>
  22926. <!--TODO-->
  22927. <!--
  22928. <p><b>Ideen:</b></p>
  22929. <ul>
  22930. <li>global Subscribe</li>
  22931. <li>global excludes</li>
  22932. <li>QOS for subscribe (fertig?), defaults(qos, fertig?), alias mapping</li>
  22933. <li>resendOnConnect (no, first, last, all)</li>
  22934. <li>resendInterval (no/0, x min)</li>
  22935. <li>templates (template in der Bridge, mqttUseTemplate in Device)</li>
  22936. </ul>
  22937. -->
  22938. </ul>
  22939. <p><a name="MSG"></a>
  22940. <h3>msg</h3>
  22941. <div class='langLinks'>[<a href='commandref.html#MSG'>EN</a> DE]</div>
  22942. <ul>
  22943. <code>msg [&lt;type&gt;] [&lt;@device&gt;|&lt;e-mail address&gt;] [&lt;priority&gt;] [|&lt;title&gt;|] &lt;message&gt;</code>
  22944. <br>
  22945. <br>
  22946. Bisher keine Dokumentation hier, sorry.<br>
  22947. <a href="http://forum.fhem.de/index.php/topic,39983.0.html">FHEM Forum</a>
  22948. </ul>
  22949. <p><a name="MSGFile"></a>
  22950. <h3>MSGFile</h3>
  22951. <ul>
  22952. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22953. hier: <a href='commandref.html#MSGFile'>MSGFile</a><br/>
  22954. </ul>
  22955. <a name="MSGMail"></a>
  22956. <h3>MSGMail</h3>
  22957. <ul>
  22958. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  22959. hier: <a href='commandref.html#MSGMail'>MSGMail</a><br/>
  22960. </ul>
  22961. <a name="MSwitch"></a>
  22962. <h3>MSwitch</h3>
  22963. <div class='langLinks'>[<a href='commandref.html#MSwitch'>EN</a> DE]</div>
  22964. <ul>
  22965. <u><b>MSwitch</b></u>
  22966. <br />
  22967. MSwitch ist ein Hilfsmodul , das sowohl event-, als auch zeitgesteuert arbeitet.<br />
  22968. FĂźr eine umfangreche Beschreibung siehe Wiki: https://wiki.fhem.de/wiki/MSwitch
  22969. <br /><br />
  22970. <a name="MSwitchdefine"></a>
  22971. <b>Define</b>
  22972. <ul><br />
  22973. <code>define &lt; Name &gt; MSwitch;</code>
  22974. <br /><br />
  22975. Beispiel:
  22976. <ul><br />
  22977. <code>define Schalter MSwitch</code><br />
  22978. </ul>
  22979. <br />
  22980. Der Befehl legt ein Device vom Typ MSwitch an mit dem Namen Schalter.<br />
  22981. sämtliche weitere Konfiguration erfolgt zu einem späteren Zeitpunkt und kann innerhalb des Devices jerderzeit verändert und angepasst werden
  22982. </ul>
  22983. <br /><br />
  22984. <a name="MSwitch set"></a>
  22985. <b>Set</b>
  22986. <ul>
  22987. <li>inactive - setzt das Device inaktiv</li>
  22988. <li>active - setzt das Device aktiv</li>
  22989. <li>backup MSwitch - legt eine Backupdatei mit der Konfiguration aller MSwitchdevices an</li>
  22990. <li>del_delays - lĂśscht alle anstehenden timer fĂźr zeitversetzte Befehle</li>
  22991. <li>exec_cmd1 - sofortiges AusfĂźhren des Kommandozweiges1</li>
  22992. <li>exec_cmd2 - sofortiges AusfĂźhren des Kommandozweiges2</li>
  22993. <li>fakeevent [event] - simulation eines eingehenden Events</li>
  22994. <li>wait [sek] - keine annahme von Events fĂźr vorgegebenen Zeitraum</li>
  22995. <br />
  22996. </ul>
  22997. <br /><br />
  22998. <a name="MSwitch get"></a>
  22999. <b>Get</b>
  23000. <ul>
  23001. <li>active_timer show - zeigt eine Liste aller anstehenden Timer und Delays</li>
  23002. <li>active_timer delete - lĂśscht alle anstehenden Timer und Delays. Timer werden neu berechnet</li>
  23003. <li>get_config - zeigt den dem Device zugeordneten Configsatz</li>
  23004. <li>restore_Mswitch_date this_device - restore des Devices aus dem Backupfile</li>
  23005. <li>restore_Mswitch_date all_devices - restore aller MSwitchdevices aus dem Backupfile</li>
  23006. <br />
  23007. </ul>
  23008. <br /><br />
  23009. <a name="MSwitch attribut"></a>
  23010. <b>Attribute</b>
  23011. <ul>
  23012. <li>MSwitch_Help:0,1 - zeigt Hilfebuttons zu allen relevanten Feldern</li>
  23013. <li>MSwitch_Debug:0,1,2 - 1. schaltet PrĂźffelder zu Conditions etc. an / 2. Testmode shreibt alle Aktionen in ein seperates Log, fĂźhrt diese aber nicht aus / 3. reiner Entwicklungsmode</li>
  23014. <li>MSwitch_Expert:0,1 - 1. aktiviert Zusatzoptionenv wi z.B globales triggern, prioritätsauswahl, Befehlswiederholungesn etc. </li>
  23015. <li>MSwitch_Delete_Delays:0,1 - 1. lĂśscht alle anstehenden Delays bei erneutem eintreffen eines passenden Events</li>
  23016. <li>MSwitch_Include_Devicecmds:0,1 - 1. alles Devices mit eigenem Befehlssatz (set ?) werden in affected Devices einbezogen</li>
  23017. <li>MSwitch_Include_Webcmds:0,1 - 1. alles Devices mit vorhandenen WbCmds werden in affected Devices einbezogen</li>
  23018. <li>MSwitch_Include_MSwitchcmds:0,1 - 1. alles Devices mit vorhandenen MSwitchcmds werden in affected Devices einbezogen</li>
  23019. <li>MSwitch_Activate_MSwitchcmds:0,1 - 1. aktiviert in allen Devices das Attribut MSwitchcmds</li>
  23020. <li>MSwitch_Lock_Quickedit:0,1 - 1. aktiviert die sperre des Auswahlfeldes 'affected devices'</li>
  23021. <li>MSwitch_Ignore_Types: - Liste aller DeviceTypen , die nicht in den 'affected devices' dargestellt werden'</li>
  23022. <li>MSwitch_Trigger_Filter - Liste aller zu ignorierenden Events</li>
  23023. <li>MSwitch_Extensions:0,1 - 1. aktiviert zusatzoption Devicetogggle</li>
  23024. <li>MSwitch_Startdelay - verzĂśgert den Start von MSwitch nach Fhemstart um die angegebene Zeit in Sekunden . Empfohlen:30 sekunden</li>
  23025. <li>MSwitch_Inforoom - beinhalttet einen Raumnamen , in dem MSwitches detailiert dargestellt werden</li>
  23026. <li>MSwitch_Mode:Full,Notify,Toggle - Betriebsmodus des Devices</li>
  23027. <li>MSwitch_Condition_Time:0,1 - zuschaltung der Triggerconditions fĂźr zeitgesteuertes AuslĂśsen</li>
  23028. <li>MSwitch_Safemode:0,1 - 1. bricht alle Aktionen des Devices ab, wenn mehr als 20 Aufrufe pro Sekunde erfolgen</li>
  23029. <li>MSwitch_RandomTime - siehe Wiki</li>
  23030. <li>MSwitch_RandomNumber - siehe Wiki</li>
  23031. </ul>
  23032. </ul>
  23033. <p><a name="MYSENSORS"></a>
  23034. <h3>MYSENSORS</h3>
  23035. <ul>
  23036. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23037. hier: <a href='commandref.html#MYSENSORS'>MYSENSORS</a><br/>
  23038. </ul>
  23039. <a name="MYSENSORS_DEVICE"></a>
  23040. <h3>MYSENSORS_DEVICE</h3>
  23041. <ul>
  23042. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23043. hier: <a href='commandref.html#MYSENSORS_DEVICE'>MYSENSORS_DEVICE</a><br/>
  23044. </ul>
  23045. <a name="MaxScanner"></a>
  23046. <h3>MaxScanner</h3>
  23047. <ul>
  23048. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23049. hier: <a href='commandref.html#MaxScanner'>MaxScanner</a><br/>
  23050. </ul>
  23051. <a name="MediaList"></a>
  23052. <h3>MediaList</h3>
  23053. <div class='langLinks'>[<a href='commandref.html#MediaList'>EN</a> DE]</div>
  23054. <br>
  23055. Eine deutsche Beschreibung ist aktuell nur im WIKI verfĂźgbar.<br>
  23056. <a href="https://wiki.fhem.de/wiki/MediaList">Wiki MediaList</a>
  23057. <p><a name="MilightBridge"></a>
  23058. <h3>MilightBridge</h3>
  23059. <ul>
  23060. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23061. hier: <a href='commandref.html#MilightBridge'>MilightBridge</a><br/>
  23062. </ul>
  23063. <a name="MilightDevice"></a>
  23064. <h3>MilightDevice</h3>
  23065. <ul>
  23066. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23067. hier: <a href='commandref.html#MilightDevice'>MilightDevice</a><br/>
  23068. </ul>
  23069. <a name="Modbus"></a>
  23070. <h3>Modbus</h3>
  23071. <ul>
  23072. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23073. hier: <a href='commandref.html#Modbus'>Modbus</a><br/>
  23074. </ul>
  23075. <a name="ModbusAttr"></a>
  23076. <h3>ModbusAttr</h3>
  23077. <ul>
  23078. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23079. hier: <a href='commandref.html#ModbusAttr'>ModbusAttr</a><br/>
  23080. </ul>
  23081. <a name="ModbusSET"></a>
  23082. <h3>ModbusSET</h3>
  23083. <ul>
  23084. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23085. hier: <a href='commandref.html#ModbusSET'>ModbusSET</a><br/>
  23086. </ul>
  23087. <a name="ModbusTrovis5576"></a>
  23088. <h3>ModbusTrovis5576</h3>
  23089. <div class='langLinks'>[<a href='commandref.html#ModbusTrovis5576'>EN</a> DE]</div>
  23090. <ul>
  23091. ModbusTrovis5576 verwendet das Modul Modbus fĂźr die Kommunikation mit der Samson Trovis 5576 Heizungssteuerung.
  23092. Hier wurden die wichtigsten (der Ăźber 2000 verfĂźgbaren) Werte aus den Holding-Registern und Coils-Statuswerten definiert und werden im angegebenen Intervall abgefragt und aktualisiert.
  23093. <br /><br />
  23094. <b>Vorraussetzungen</b>
  23095. <ul>
  23096. Dieses Modul benĂśtigt das Basismodul <a href="#Modbus">Modbus</a> fĂźr die Kommunikation, welches wiederum das Perl-Modul Device::SerialPort oder Win32::SerialPort benĂśtigt.
  23097. </ul><br />
  23098. <b>Physikalische Verbindung zur Heizungssteuerung</b>
  23099. <ul>
  23100. Im <a href="https://www.samson.de/pdf_de/e55760de.pdf">Handbuch</a> auf Seite 124 steht die Pinbelegung der RS232-Schnittstelle. Diese befindet sich <b>nicht</b> vorne am Reglermodul, sondern, von vorne gesehen, an der linken Seite des Reglers. Diese Schnittstelle ist mit einem Schutzdeckel verschlossen, den man einfach abziehen kann.<br />
  23101. Man benĂśtigt nur die Ăźblichen Pins fĂźr TD und RD, sowie Ground.
  23102. </ul><br />
  23103. <b>Besonderheiten der Readings und des Reglers</b>
  23104. <ul>
  23105. Man kann mit diesem Modul z.B. die Betriebsart der jeweiligen Regelkreise umschalten. Da der Drehschalter am Regler selbst natßrlich immer noch auf der alten Stellung steht, wird diese "Umgehung" durch die Anzeige "GLT" (steht fßr "Gebäudeleittechnik", also fßr die zentrale Steuerungsßbernahme) im Display deutlich gemacht. Gleichzeitig dazu wird das entsprechende Ebenen-Bit ("_EBN") auf "GLT" gesetzt.<br />
  23106. Um jetzt wieder auf die hardwaremä�ig gesetzte Einstellung zurßckzuschalten, muss das entsprechende Ebenen-Bit auf "Autark" gesetzt werden. Das dazugehÜrende Reading wird im Anschlu� auf den nun im Regler gßltigen Wert gesetzt.<br /><br />
  23107. Wenn man eine Betriebsart auf "Standby" umschaltet, kann es sein, dass die Heizungsanlage diese auf "Mond" (zurßck-)umstellt. Das wird dann mit dem Bit fßr Frostschutzbetrieb angezeigt, und erfolgt, wenn die gemessene Aussentemperatur unter 3°C liegt.<br /><br />
  23108. <b>Hinweis:</b><br />
  23109. Es ist sehr empfehlenswert das Attribut <code>event-on-change-reading</code> auf <code>.*</code> zu setzen. Sonst werden sehr viele unnĂśtige Events erzeugt.
  23110. </ul><br />
  23111. <a name="ModbusTrovis5576Define"></a>
  23112. <b>Define</b>
  23113. <ul>
  23114. <code>define &lt;name&gt; ModbusTrovis5576 &lt;ID&gt; &lt;Interval&gt;</code><br /><br />
  23115. Das Modul verbindet sich zur Samson Trovis 5576 Heizungssteuerung mit der angegebenen Modbus Id &lt;ID&gt; Ăźber ein bereits fertig definiertes Modbus-Device und fragt die gewĂźnschten Werte im Abstand von &lt;Interval&gt; Sekunden ab.<br /><br />
  23116. Beispiel:<br>
  23117. <code>define heizung ModbusTrovis5576 255 60</code>
  23118. </ul><br />
  23119. <a name="ModbusTrovis5576Set"></a>
  23120. <b>Set-Kommandos</b>
  23121. <ul>
  23122. Die folgenden Werte kĂśnnen gesetzt werden:
  23123. <ul>
  23124. <li>Regelkreis 1 (Normalerweise WandheizkĂśrper):<ul>
  23125. <li><b>RK1_Betriebsart</b>: Die Betriebsart des Regelkreis 1. Kann Standby, Mond oder Sonne sein, und entspricht der Einstellung am Regler selbst (siehe auch Reading RK1_Schalter).</li>
  23126. <li><b>RK1_Betriebsart_EBN</b>: Das Ebenen-Bit zur Betriebsart. Kann GLT oder Autark sein, und gibt an, ob die Heizungssteuerung Autark läuft, oder ßbersteuert wurde.</li>
  23127. <li><b>RK1_Stellsignal</b>: Der �ffnungsgrad in Prozent des Stellglieds zur Wärmeßbertragung.</li>
  23128. <li><b>RK1_Stellsignal_EBN</b>: Das Ebenen-Bit zum Stellsignal. Kann GLT oder Autark sein, und gibt an, ob die Heizungssteuerung Autark läuft, oder ßbersteuert wurde.</li>
  23129. <li><b>RK1_Umwaelzpumpe</b>: Der Zustand der Umwälzpumpe, Kann An oder Aus sein.</li>
  23130. <li><b>RK1_Umwaelzpumpe_EBN</b>: Das Ebenen-Bit zur Umwälzpumpe. Kann GLT oder Autark sein, und gibt an, ob die Heizungssteuerung Autark läuft, oder ßbersteuert wurde.</li>
  23131. </ul></li>
  23132. <li>Regelkreis 2 (Normalerweise Fu�bodenheizung):<ul>
  23133. <li><b>RK2_Betriebsart</b>: Die Betriebsart des Regelkreis 2. Kann Standby, Mond oder Sonne sein, und entspricht der Einstellung am Regler selbst (siehe auch Reading RK2_Schalter).</li>
  23134. <li><b>RK2_Betriebsart_EBN</b>: Das Ebenen-Bit zur Betriebsart. Kann GLT oder Autark sein, und gibt an, ob die Heizungssteuerung Autark läuft, oder ßbersteuert wurde.</li>
  23135. <li><b>RK2_Stellsignal</b>: Der �ffnungsgrad in Prozent des Stellglieds zur Wärmeßbertragung.</li>
  23136. <li><b>RK2_Stellsignal_EBN</b>: Das Ebenen-Bit zum Stellsignal. Kann GLT oder Autark sein, und gibt an, ob die Heizungssteuerung Autark läuft, oder ßbersteuert wurde.</li>
  23137. <li><b>RK2_Umwaelzpumpe</b>: Der Zustand der Umwälzpumpe, Kann An oder Aus sein.</li>
  23138. <li><b>RK2_Umwaelzpumpe_EBN</b>: Das Ebenen-Bit zur Umwälzpumpe. Kann GLT oder Autark sein, und gibt an, ob die Heizungssteuerung Autark läuft, oder ßbersteuert wurde.</li>
  23139. </ul></li>
  23140. <li>Trinkwasserspeicher:<ul>
  23141. <li><b>Wasser_Betriebsart</b>: Die Betriebsart des Trinkwasserkreises. Kann Standby, Mond oder Sonne sein, und entspricht der Einstellung am Regler selbst (siehe auch Reading Wasser_Schalter).</li>
  23142. <li><b>Wasser_Betriebsart_EBN</b>: Das Ebenen-Bit zur Betriebsart. Kann GLT oder Autark sein, und gibt an, ob die Heizungssteuerung Autark läuft, oder ßbersteuert wurde.</li>
  23143. <li><b>Wasser_Speicherladepumpe</b>: Der Zustand der Speicherladepumpe. Kann An oder Aus sein.</li>
  23144. <li><b>Wasser_Speicherladepumpe_EBN</b>: Das Ebenen-Bit zur Speicherladepumpe. Kann GLT oder Autark sein, und gibt an, ob die Pumpe Autark läuft, oder ßbersteuert wurde.</li>
  23145. <li><b>Wasser_Zirkulationspumpe</b>: Der Zustand der Zirkulationspumpe. Kann An oder Aus sein.</li>
  23146. <li><b>Wasser_Zirkulationspumpe_EBN</b>: Das Ebenen-Bit zur Zirkulationspumpe. Kann GLT oder Autark sein, und gibt an, ob die Pumpe Autark läuft, oder ßbersteuert wurde.</li>
  23147. <li><b>Wasser_ThermischeDesinfektion</b>: Gibt an, ob gerade eine thermische Desinfektion läuft (=An) oder nicht (=Aus). </li>
  23148. <li><b>Wasser_Temp_Soll</b>: Die Solltemperatur des Trinkwasserspeichers.</li>
  23149. <li><b>Wasser_Temp_Minimum</b>: Die Minimaltemperatur des Trinkwasserspeichers.</li>
  23150. <li><b>Wasser_Temp_Desinfektion</b>: Die Solltemperatur der thermischen Desinfektion.</li>
  23151. </ul></li>
  23152. </ul><br />
  23153. Hier der Vollständigkeit halber die Bedeutung der restlichen Readings (die nur gelesen werden kÜnnen):<br />
  23154. <ul>
  23155. <li>Grundsätzliches:<ul>
  23156. <li><b>Modellnummer</b>: Gibt die gemeldete Modellnummer an. Sollte "5576" sein.</li>
  23157. <li><b>Aussen_Temp</b>: Gibt die gemessene Aussentemperatur in °C an.</li>
  23158. <li><b>Fehlerstatusregister_CL1</b>: Gibt den Zustand des aktuellen Status Register zurĂźck.</li>
  23159. </ul></li>
  23160. <li>Regelkreis 1 (Normalerweise WandheizkĂśrper):<ul>
  23161. <li><b>RK1_Schalter</b>: Gibt die Schalterstellung am Regler an. Kann PA, Auto, Standby, Hand, Sonne oder Mond sein.</li>
  23162. <li><b>RK1_Frostschutzbetrieb</b>: Gibt an, ob der Heizungsregelkreis 1 im Frostschutzbetrieb läuft.</li>
  23163. <li><b>RK1_Vorlauf_Temp</b>: Gibt die Heizungsvorlauftemperatur in °C an.</li>
  23164. <li><b>RK1_Ruecklauf_Temp</b>: Gibt die Heizungsrßcklauftemperatur in °C an.</li>
  23165. </ul></li>
  23166. <li>Regelkreis 2 (Normalerweise Fu�bodenheizung):<ul>
  23167. <li><b>RK2_Schalter</b>: Gibt die Schalterstellung am Regler an. Kann PA, Auto, Standby, Hand, Sonne oder Mond sein.</li>
  23168. <li><b>RK2_Frostschutzbetrieb</b>: Gibt an, ob der Heizungsregelkreis 2 im Frostschutzbetrieb läuft.</li>
  23169. <li><b>RK2_Vorlauf_Temp</b>: Gibt die Heizungsvorlauftemperatur in °C an.</li>
  23170. <li><b>RK2_Ruecklauf_Temp</b>: Gibt die Heizungsrßcklauftemperatur in °C an.</li>
  23171. </ul></li>
  23172. <li>Trinkwasserspeicher:<ul>
  23173. <li><b>Wasser_Schalter</b>: Gibt die Schalterstellung am Regler an. Kann PA, Auto, Standby, Hand, Sonne oder Mond sein.</li>
  23174. <li><b>Wasser_Frostschutzbetrieb</b>: Gibt an, ob der Trinkwasserregelkreis im Frostschutzbetrieb läuft.</li>
  23175. <li><b>Wasser_Temp</b>: Gibt die Trinkwasserspeichertemperatur in °C an.</li>
  23176. </ul></li>
  23177. </ul>
  23178. </ul><br />
  23179. <a name="ModbusTrovis5576Get"></a>
  23180. <b>Get-Kommandos</b>
  23181. <ul>
  23182. Alle Readings sind auch als get-Kommando verfßgbar. Intern fßhrt ein get einen Request an die Heizungssteuerung aus, und aktualisiert den entsprechenden Readings-Wert (und gibt ihn als Ergebnis des Aufrufs zurßck). Damit kann man eine zusätzliche Aktualisierung des Wertes erzwingen.
  23183. </ul><br />
  23184. <a name="ModbusTrovis5576attr"></a>
  23185. <b>Attribute</b>
  23186. <ul>
  23187. Nur zentral definierte Attribute werden untstĂźtzt. Im speziellen:
  23188. <ul>
  23189. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  23190. </ul>
  23191. </ul><br />
  23192. </ul>
  23193. <p><a name="N4HBUS"></a>
  23194. <h3>N4HBUS</h3>
  23195. <div class='langLinks'>[<a href='commandref.html#N4HBUS'>EN</a> DE]</div>
  23196. Dieses Modul verbindet fhem &uuml;ber IP mit dem net4home Bus. Zus&auml;tzlich m&uuml;ssen Objekte &uuml;ber den Typ
  23197. <a href="#N4MODULE">N4MODULE</a> definiert werden, um Daten an den net4home-Bus zu senden oder zu lesen.
  23198. <br /><br />
  23199. Weitere technische Informationen gibt es auf der Homepage unter <a href="http://www.net4home.de">net4home.de</a>
  23200. <br /><br />
  23201. <a name="N4HBUS_Define"></a>
  23202. <b>Define</b>
  23203. <ul>
  23204. <code>define &lt;name&gt; N4HBUS &lt;device&gt;</code>
  23205. <br /> <br />
  23206. &lt;device&gt; ist eine Kombination aus IP Adresse des net4home Busconnectors und dem Port (default:3478).
  23207. <br /> <br />
  23208. Beispiel:
  23209. <ul>
  23210. <code>define net4home N4HBUS 192.168.1.69:3478</code>
  23211. </ul>
  23212. <br />
  23213. Das Device kann sich auch mit dem Busconnector auf dem selben System verbinden.
  23214. Der Default-Port fĂźr die Kommunikation ist 3478. Sollte es n&ouml;tig sein den Port zu ver&auml;ndern, so muss dies ebenfalls
  23215. in der Konfiguration des Services durchgef&uuml;hrt werden.<br />
  23216. </ul>
  23217. <br />
  23218. <a name="N4HBUS_Readings"></a>
  23219. <b>Readings</b>
  23220. <ul>
  23221. <li>state - aktueller Status der Verbindung zum net4home Busconnector</li>
  23222. </ul><br />
  23223. <a name="N4HBUS_Attr"></a>
  23224. <b>Attributes</b>
  23225. <ul>
  23226. <li>MI - die eindeutige MI in der net4home Umgebung (default:65281)</li>
  23227. <li>OBJADR - die eindeutige OBJADR in der net4home Umgebung (default:32700)</li>
  23228. </ul>
  23229. <p><a name="N4HMODULE"></a>
  23230. <h3>N4HMODULE</h3>
  23231. <div class='langLinks'>[<a href='commandref.html#N4HMODULE'>EN</a> DE]</div>
  23232. fhem-Modul zur Kommunikation mit dem net4home Bus Ăźber IP
  23233. <br /><br />
  23234. <ul>
  23235. <br />
  23236. <a name="N4HMODULE_Define"></a>
  23237. <b>Define</b>
  23238. <ul>
  23239. <code>define &lt;name&gt; N4HMODULE &lt;device&gt; &lt;type&gt; &lt;objectaddress&gt;</code><br />
  23240. <br />
  23241. Erstellt ein net4home Modul-Device welches mit dem <a href="#N4HBUS">N4HBUS</a> Device kommuniziert.
  23242. Beispiel:
  23243. <ul>
  23244. <code>define MyN4HMODULEice N4HMODULE 24 26004</code><br />
  23245. </ul>
  23246. Derzeit werden folgende Typen unterst&uuml;tzt:<br />
  23247. <b>Messwerte</b><br />
  23248. <ul>
  23249. <li> 24 - Messwert,Temperatur</li>
  23250. <li> 25 - Messwert,Helligkeit</li>
  23251. <li> 26 - Messwert,Feuchte</li>
  23252. <li> 34 - TLH-Regler H,Sollwert,Temperatur</li>
  23253. <li> 95 - Ausgang, Jal, Motor AJ3</li>
  23254. <li>210 - RF Reader</li>
  23255. <li>240 - Messwert,Wind</li>
  23256. <li>242 - Messwert,Luftdruck</li>
  23257. <li>245 - Messwert,Regenmenge</li>
  23258. </ul>
  23259. </ul><br />
  23260. <a name="N4HMODULE_Readings"></a>
  23261. <b>Readings</b>
  23262. <ul>
  23263. <li>Die Readings werden Abhängig vom Modultyp angegeben.<br /></li>
  23264. </ul><br />
  23265. <a name="N4HMODULE_Attr"></a>
  23266. <b>Attributes</b>
  23267. <ul>
  23268. <li>Interval<br>
  23269. Das Interval bestimmt bei Messwerten die Zeit zwischen dem Senden der Daten auf den Bus. Ist kein Attribut definiert, so wird der Standardwert genutzt.</li>
  23270. </ul>
  23271. </ul>
  23272. <p> <p>
  23273. <a name="NEUTRINO" id="NEUTRINO"></a>
  23274. </p>
  23275. <h3>
  23276. NEUTRINO
  23277. </h3>
  23278. <div class='langLinks'>[<a href='commandref.html#NEUTRINO'>EN</a> DE]</div>
  23279. <ul>
  23280. <a name="NEUTRINOdefine" id="NEUTRINOdefine"></a> <b>Define</b>
  23281. <ul>
  23282. <code>define &lt;name&gt; NEUTRINO &lt;ip-address-or-hostname&gt; [[[[&lt;port&gt;] [&lt;poll-interval&gt;]] [&lt;http-user&gt;]] [&lt;http-password&gt;]]</code><br>
  23283. <br>
  23284. Dieses Modul steuert NEUTRINO basierte Ger&auml;te wie die Coolstream &uuml;ber eine Netzwerkverbindung.<br>
  23285. <br>
  23286. F&uuml;r definierte NEUTRINO Ger&auml;te wird ein interner Task angelegt, welcher periodisch die Readings aktualisiert. Der Standartpollintervall ist 45 Sekunden.<br>
  23287. <br>
  23288. Beispiele:<br>
  23289. <ul>
  23290. <code>define SATReceiver NEUTRINO 192.168.0.10<br>
  23291. <br>
  23292. # Alternativer Port<br>
  23293. define SATReceiver NEUTRINO 192.168.0.10 8080<br>
  23294. <br>
  23295. # Alternativer poll intervall von 20 seconds<br>
  23296. define SATReceiver NEUTRINO 192.168.0.10 80 20<br>
  23297. <br>
  23298. # Mit HTTP Benutzer Zugangsdaten<br>
  23299. define SATReceiver NEUTRINO 192.168.0.10 80 20 root secret</code>
  23300. </ul>
  23301. </ul><br>
  23302. <br>
  23303. <a name="NEUTRINOset" id="NEUTRINOset"></a> <b>Set</b>
  23304. <ul>
  23305. <code>set &lt;name&gt; &lt;command&gt; [&lt;parameter&gt;]</code><br>
  23306. <br>
  23307. Aktuell gibt es folgende Befehle.<br>
  23308. <ul>
  23309. <li>
  23310. <b>on</b> &nbsp;&nbsp;-&nbsp;&nbsp; Schaltet das Ger&auml;t aus dem Standby wieder an
  23311. </li>
  23312. <li>
  23313. <b>off</b> &nbsp;&nbsp;-&nbsp;&nbsp; Schaltet das Ger&auml;t in den Standby
  23314. </li>
  23315. <li>
  23316. <b>toggle</b> &nbsp;&nbsp;-&nbsp;&nbsp; Ein- und Ausschalten zwischen Standby
  23317. </li>
  23318. <li>
  23319. <b>shutdown</b> &nbsp;&nbsp;-&nbsp;&nbsp; Schaltet das Ger&auml;t aus
  23320. </li>
  23321. <li>
  23322. <b>reboot</b> &nbsp;&nbsp;-&nbsp;&nbsp;Neustart des Ger&auml;tes
  23323. </li>
  23324. <li>
  23325. <b>channel</b> &nbsp;&nbsp;-&nbsp;&nbsp;Schaltet auf den angegebenen Kanal
  23326. </li>
  23327. <li>
  23328. <b>volume</b> 0...100 &nbsp;&nbsp;-&nbsp;&nbsp; &Auml;ndert die Lautst&auml;rke in Prozent
  23329. </li>
  23330. <li>
  23331. <b>mute</b> on,off,toggle &nbsp;&nbsp;-&nbsp;&nbsp; Steuert Lautst&auml;rke "stumm"
  23332. </li>
  23333. <li>
  23334. <b>statusRequest</b> &nbsp;&nbsp;-&nbsp;&nbsp; Fordert den aktuellen Status des Ger&auml;tes an
  23335. </li>
  23336. <li>
  23337. <b>remoteControl</b> UP,DOWN,... &nbsp;&nbsp;-&nbsp;&nbsp; Sendet Fernsteuerungsbefehle<br />
  23338. </li>
  23339. <li>
  23340. <b>showText</b> text &nbsp;&nbsp;-&nbsp;&nbsp; Sendet eine Textnachricht
  23341. </li>
  23342. <li>
  23343. <b>showtextwithbutton</b> &nbsp;&nbsp;-&nbsp;&nbsp; Sendet eine Textnachricht mit OK Button
  23344. </li>
  23345. <br>
  23346. </ul>
  23347. </ul>
  23348. <br>
  23349. <br>
  23350. <a name="NEUTRINOget" id="NEUTRINOget"></a> <b>Get</b>
  23351. <ul>
  23352. <code>get &lt;name&gt; &lt;what&gt;</code><br>
  23353. <br>
  23354. Aktuell gibt es folgende Befehle.<br>
  23355. <br>
  23356. <ul>
  23357. <code>channel<br>
  23358. channelurl<br>
  23359. currentTitle<br>
  23360. input<br>
  23361. mute<br>
  23362. power<br>
  23363. volume<br></code>
  23364. </ul>
  23365. </ul><br>
  23366. <br>
  23367. <a name="NEUTRINOattr" id="NEUTRINOattr"></a> <b>Attributes</b><br>
  23368. <ul>
  23369. <ul>
  23370. <li>
  23371. <b>disable</b> - Schaltet das Polling aus (true/false)
  23372. </li>
  23373. <li>
  23374. <b>http-noshutdown</b> - Setzt FHEM-internal HttpUtils Verbindung offen halten (defaults=0)
  23375. </li>
  23376. <li>
  23377. <b>https</b> - Zugriff &uuml;ber HTTPS aktivieren (true/false)
  23378. </li>
  23379. <li>
  23380. <b>timeout</b> - Setzen des Timeout der HTTP Verbindung (default=2)
  23381. </li>
  23382. </ul>
  23383. </ul><br>
  23384. <br>
  23385. <br>
  23386. <b>Generelle Readings:</b><br>
  23387. <ul>
  23388. <ul>
  23389. <li>
  23390. <b>ber</b> - Zeigt die Bit Error Rate vom aktuellen Kanal
  23391. </li>
  23392. <li>
  23393. <b>bouquetnr</b> - Zeigt die aktuelle Bouquet Nummer vom aktuellen Kanal
  23394. </li>
  23395. <li>
  23396. <b>channel</b> - Zeigt den aktuellen Servicenamen vom aktuellen Kanal
  23397. </li>
  23398. <li>
  23399. <b>channel_id</b> - Zeigt die aktuelle Kanal ID vom aktuellen Kanal
  23400. </li>
  23401. <li>
  23402. <b>channel_name</b> - Zeigt den aktuellen Kanal Namen
  23403. </li>
  23404. <li>
  23405. <b>channel_url</b> - Zeigt die aktuelle Kanal URL, welche im Vlc Player zum Streamen verwendet werden kann
  23406. </li>
  23407. <li>
  23408. <b>currentTitle</b> - Zeigt den aktuellen Titel der aktuellen Sendung an
  23409. </li>
  23410. <li>
  23411. <b>epg_current_channel_id</b> - Zeigt die Kanal ID von aktuellen EPG an
  23412. </li>
  23413. <li>
  23414. <b>epg_current_date</b> - Zeigt das Datum des aktuellen EPGs an
  23415. </li>
  23416. <li>
  23417. <b>egp_current_description</b> - Zeigt die aktuelle Beschreibung der aktuellen Sendung an
  23418. </li>
  23419. <li>
  23420. <b>egp_current_duration_min</b> - Zeigt die Dauer der aktuellen Sendung an
  23421. </li>
  23422. <li>
  23423. <b>egp_current_info1</b> - Zeigt die Information Teil 1 der aktuellen Sendung an
  23424. </li>
  23425. <li>
  23426. <b>egp_current_info2</b> - Zeigt die Information Teil 2 der aktuellen Sendung an
  23427. </li>
  23428. <li>
  23429. <b>egp_current_number</b> - Zeigt die EPG Nummer der aktuellen Sendung an
  23430. </li>
  23431. <li>
  23432. <b>egp_current_start_sec</b> - Zeigt die Startzeit der aktuellen Sendung an (ticks)
  23433. </li>
  23434. <li>
  23435. <b>egp_current_start_t</b> - Zeigt die Startzeit der aktuellen Sendung an
  23436. </li>
  23437. <li>
  23438. <b>egp_current_stop_sec</b> - Zeigt die Stopzeit der aktuellen Sendung an (ticks)
  23439. </li>
  23440. <li>
  23441. <b>egp_current_stop_t</b> - Zeigt die Stopzeit der aktuellen Sendung an
  23442. </li>
  23443. <li>
  23444. <b>eventid</b> - Zeigt die aktuelle Event ID von der aktuellen Sendung an
  23445. </li>
  23446. <li>
  23447. <b>image_*</b> - Zeigt Image Informationen von NEUTRINO
  23448. </li>
  23449. <li>
  23450. <b>input</b> - Zeigt den aktuellen Input an (TV/Radio)
  23451. </li>
  23452. <li>
  23453. <b>mute</b> - Zeigt aktuellen Mute Status ("on" oder "off")
  23454. </li>
  23455. <li>
  23456. <b>power</b> - Zeigt aktuellen Power Status ("on" oder "off")
  23457. </li>
  23458. <li>
  23459. <b>presence</b> - Zeigt den aktuellen presence Status an ("absent" oder "present").
  23460. </li>
  23461. <li>
  23462. <b>recordmode</b> - Zeigt an ob die Box gerade eine Aufnahme macht ("on" oder "off")
  23463. </li>
  23464. <li>
  23465. <b>recordmodetitle</b> - Zeigt den letzten Aufnahme Titel an
  23466. </li>
  23467. <li>
  23468. <b>sig</b> - Zeigt Signalst&auml;rke vom aktuellen Sender an
  23469. </li>
  23470. <li>
  23471. <b>snr</b> - Zeigt Singal Noise vom aktuellen Sender an
  23472. </li>
  23473. <li>
  23474. <b>state</b> - Zeigt den aktuellen Status an ("on", "off" oder "standby")
  23475. </li>
  23476. <li>
  23477. <b>time_now</b> - Aktuelle Uhrzeit
  23478. </li>
  23479. <li>
  23480. <b>time_raw_now</b> - Aktuelle Uhrzeit (ticks)
  23481. </li>
  23482. <li>
  23483. <b>timerX</b> - Zeigt den kompletten Timer an (Report from NEUTRINO)
  23484. </li>
  23485. <li>
  23486. <b>timerXannounceTime</b> - Zeigt die Ank&uuml;ndigungszeit des Timers an
  23487. </li>
  23488. <li>
  23489. <b>timerXname</b> - Zeigt den Aufnahmekanal des Timers an
  23490. </li>
  23491. <li>
  23492. <b>timerXnumber</b> - Zeigt die Timernummer an
  23493. </li>
  23494. <li>
  23495. <b>timerXrepcount</b> - Zeigt den Rep. Counter des Timers an
  23496. </li>
  23497. <li>
  23498. <b>timerXrepeat</b> - Zeigt die Wiederholungszeit an
  23499. </li>
  23500. <li>
  23501. <b>timerXstartTime</b> - Zeigt die Startzeit des Timers an
  23502. </li>
  23503. <li>
  23504. <b>timerXstopTime</b> - Zeigt die Stopzeit des Timers an
  23505. </li>
  23506. <li>
  23507. <b>timerXtyp</b> - Zeigt den Typ des Timers an
  23508. </li>
  23509. <li>
  23510. <b>timer_count</b> - Zeigt die Anzahl der aktuellen Timer an
  23511. </li>
  23512. <li>
  23513. <b>timer_count</b> - Zeitg die max. Anzahl der Timer an (wird intern verwendet)
  23514. </li>
  23515. <li>
  23516. <b>volume</b> - Zeit die aktuelle Lautst&auml;rke an (zwischen 0 und 100 %)
  23517. </li>
  23518. </ul>
  23519. </ul>
  23520. </ul>
  23521. <p><a name="NUKIBridge"></a>
  23522. <h3>NUKIBridge</h3>
  23523. <div class='langLinks'>[<a href='commandref.html#NUKIBridge'>EN</a> DE]</div>
  23524. <ul>
  23525. <u><b>NUKIBridge - Steuert das Nuki Smartlock Ăźber die Nuki Bridge</b></u>
  23526. <br>
  23527. Das Nuki Bridge Modul verbindet FHEM mit der Nuki Bridge und liest dann alle auf der Bridge verfĂźgbaren Smartlocks ein. Desweiteren werden automatisch die erkannten Smartlocks als eigenst&auml;ndige Devices an gelegt.
  23528. <br><br>
  23529. <a name="NUKIBridgedefine"></a>
  23530. <b>Define</b>
  23531. <ul><br>
  23532. <code>define &lt;name&gt; NUKIBridge &lt;HOST&gt; &lt;API-TOKEN&gt;</code>
  23533. <br><br>
  23534. Beispiel:
  23535. <ul><br>
  23536. <code>define NBridge1 NUKIBridge 192.168.0.23 F34HK6</code><br>
  23537. </ul>
  23538. <br>
  23539. Diese Anweisung erstellt ein NUKIBridge Device mit Namen NBridge1 und der IP 192.168.0.23 sowie dem Token F34HK6.<br>
  23540. Nach dem anlegen des Bridge Devices werden alle zur verf&uuml;gung stehende Smartlock automatisch in FHEM an gelegt.
  23541. </ul>
  23542. <br><br>
  23543. <a name="NUKIBridgereadings"></a>
  23544. <b>Readings</b>
  23545. <ul>
  23546. <li>0_nukiId - ID des ersten gefundenen Nuki Smartlocks</li>
  23547. <li>0_name - Name des ersten gefunden Nuki Smartlocks</li>
  23548. <li>smartlockCount - Anzahl aller gefundenen Smartlock</li>
  23549. <li>bridgeAPI - API Version der Bridge</li>
  23550. <li>bridgeType - Hardware oder Software/App Bridge</li>
  23551. <li>currentTime - aktuelle Zeit auf der Bridge zum zeitpunkt des Info holens</li>
  23552. <li>firmwareVersion - aktuell auf der Bridge verwendete Firmwareversion</li>
  23553. <li>hardwareId - ID der Hardware Bridge</li>
  23554. <li>lastError - gibt die letzte HTTP Errormeldung wieder</li>
  23555. <li>serverConnected - true/false gibt an ob die Hardwarebridge Verbindung zur Nuki-Cloude hat.</li>
  23556. <li>serverId - gibt die ID des Cloudeservers wieder</li>
  23557. <li>uptime - Uptime der Bridge in Sekunden</li>
  23558. <li>wifiFirmwareVersion- Firmwareversion des Wifi Modules der Bridge</li>
  23559. <br>
  23560. Die vorangestellte Zahl ist forlaufend und gibt beginnend bei 0 die Eigenschaften <b>Eines</b> Smartlocks wieder.
  23561. </ul>
  23562. <br><br>
  23563. <a name="NUKIBridgeset"></a>
  23564. <b>Set</b>
  23565. <ul>
  23566. <li>autocreate - Veranlasst ein erneutes Einlesen aller Smartlocks von der Bridge und falls noch nicht in FHEM vorhanden das autimatische anlegen.</li>
  23567. <li>callbackRemove - LĂśschen einer Callback Instanz auf der Bridge. Die Instanz ID kann mittels get callbackList ermittelt werden</li>
  23568. <li>clearLog - lĂśscht das Logfile auf der Bridge</li>
  23569. <li>fwUpdate - schaut nach einer neueren Firmware und installiert diese sofern vorhanden</li>
  23570. <li>info - holt aktuellen Informationen Ăźber die Bridge</li>
  23571. <li>reboot - veranlässt ein reboot der Bridge</li>
  23572. <br>
  23573. </ul>
  23574. <br><br>
  23575. <a name="NUKIBridgeget"></a>
  23576. <b>Get</b>
  23577. <ul>
  23578. <li>callbackList - Gibt die Liste der eingetragenen Callback URL's wieder. Die Bridge nimmt maximal 3 auf.</li>
  23579. <li>logFile - Zeigt das Logfile der Bridge an</li>
  23580. <br>
  23581. </ul>
  23582. <br><br>
  23583. <a name="NUKIBridgeattribut"></a>
  23584. <b>Attribute</b>
  23585. <ul>
  23586. <li>disable - deaktiviert die Nuki Bridge</li>
  23587. <br>
  23588. </ul>
  23589. </ul>
  23590. <p><a name="NUKIDevice"></a>
  23591. <h3>NUKIDevice</h3>
  23592. <div class='langLinks'>[<a href='commandref.html#NUKIDevice'>EN</a> DE]</div>
  23593. <ul>
  23594. <u><b>NUKIDevice - Steuert das Nuki Smartlock</b></u>
  23595. <br>
  23596. Das Nuki Modul verbindet FHEM Ăźber die Nuki Bridge mit einem Nuki Smartlock. Es ist dann m&ouml;glich das Schloss zu ver- und entriegeln.<br>
  23597. In der Regel werden die Nuki Devices automatisch durch das Bridgemodul angelegt.
  23598. <br><br>
  23599. <a name="NUKIDevicedefine"></a>
  23600. <b>Define</b>
  23601. <ul><br>
  23602. <code>define &lt;name&gt; NUKIDevice &lt;Nuki-Id&gt; &lt;IODev-Device&gt;</code>
  23603. <br><br>
  23604. Beispiel:
  23605. <ul><br>
  23606. <code>define Haust&uuml;r NUKIDevice 1 NBridge1</code><br>
  23607. </ul>
  23608. <br>
  23609. Diese Anweisung erstellt ein NUKIDevice mit Namen Haust&uuml;r, der NukiId 1 sowie dem IODev Device NBridge1.<br>
  23610. Nach dem anlegen des Devices wird automatisch der aktuelle Zustand des Smartlocks aus der Bridge gelesen.
  23611. </ul>
  23612. <br><br>
  23613. <a name="NUKIDevicereadings"></a>
  23614. <b>Readings</b>
  23615. <ul>
  23616. <li>state - Status des Smartlock bzw. Fehlermeldung von Fehler vorhanden.</li>
  23617. <li>lockState - aktueller Schlie&szlig;status uncalibrated, locked, unlocked, unlocked (lock �n� go), unlatched, locking, unlocking, unlatching, motor blocked, undefined.</li>
  23618. <li>name - Name des Smart Locks</li>
  23619. <li>paired - pairing Status des Smart Locks</li>
  23620. <li>rssi - rssi Wert des Smart Locks</li>
  23621. <li>succes - true, false Gibt des Status des letzten Schlie&szlig;befehles wieder. Geklappt oder nicht geklappt.</li>
  23622. <li>batteryCritical - Ist die Batterie in einem kritischen Zustand? true, false</li>
  23623. <li>batteryState - Status der Batterie, ok/low</li>
  23624. </ul>
  23625. <br><br>
  23626. <a name="NUKIDeviceset"></a>
  23627. <b>Set</b>
  23628. <ul>
  23629. <li>statusRequest - ruft den aktuellen Status des Smartlocks von der Bridge ab.</li>
  23630. <li>lock - verschlie&szlig;en</li>
  23631. <li>unlock - aufschlie&szlig;en</li>
  23632. <li>unlatch - entriegeln/Falle &ouml;ffnen.</li>
  23633. <li>unpair - entfernt das pairing mit dem Smart Lock</li>
  23634. <li>locknGo - verschlie&szlig;en wenn gegangen</li>
  23635. <li>locknGoWithUnlatch - verschlie&szlig;en nach dem die Falle ge&ouml;ffnet wurde.</li>
  23636. <br>
  23637. </ul>
  23638. <br><br>
  23639. <a name="NUKIDeviceattribut"></a>
  23640. <b>Attribute</b>
  23641. <ul>
  23642. <li>disable - deaktiviert das Nuki Device</li>
  23643. <li>webhookFWinstance - zu verwendene Webinstanz fĂźr den Callbackaufruf</li>
  23644. <li>webhookHttpHostname - IP oder FQDN vom FHEM Server fĂźr den Callbackaufruf</li>
  23645. <br>
  23646. </ul>
  23647. </ul>
  23648. <p><a name="NUT"></a>
  23649. <h3>NUT</h3>
  23650. <div class='langLinks'>[<a href='commandref.html#NUT'>EN</a> DE]</div>
  23651. <ul>
  23652. Die Network UPS Tools (<a href="http://www.networkupstools.org">www.networkupstools.org</a>) bieten UnterstĂźtzung fĂźr Unterbrechungsfreie Stromversorgungen (USV)
  23653. und ähnliches. Dieses Modul ermÜglicht den Zugriff auf einen NUT-Server, womit man Daten auslesen kann (z.B. den Status, Restlaufzeit, Eingangsspannung, manchmal
  23654. auch Temperatur u.ä.) und zukßnftig die USV auch steuern kann (Test aktivieren, USV herunterfahren u.ä.).<br>
  23655. Welche Readings zur VerfĂźgung stehen, bestimmt das Attribut <a href="#NUT_asReadings">asReadings</a>. Welche Werte eine USV zur VerfĂźgung stellt, kann man mit
  23656. <code>list dieUSV</code> unter <i>Helper:</i> ablesen. Nur ups.status wird immer ausgelesen und ergibt den Status des Geräts.<br>
  23657. <br><br>
  23658. <a name=NUTdefine"></a>
  23659. <b>Define</b>
  23660. <ul>
  23661. <code>define &lt;name&gt; NUT &lt;ups&gt; [&lt;host&gt;[:&lt;port&gt;]]</code> <br>
  23662. <br>
  23663. &lt;ups&gt; ist der im NUT-Server definierte Name der USV.
  23664. <br>
  23665. [&lt;host&gt;[:&lt;port&gt;]] ist Host und Port des NUT-Servers. Default ist <code>localhost:3493</code>.
  23666. <br><br>
  23667. Beispiel: <br>
  23668. <code>define dieUSV NUT myups einserver</code>
  23669. <br>
  23670. </ul>
  23671. <br>
  23672. <a name="NUTset"></a>
  23673. <b>Set</b> <ul>N/A</ul><br>
  23674. <a name="NUTget"></a>
  23675. <b>Get</b> <ul>N/A</ul><br>
  23676. <a name="NUTattr"></a>
  23677. <b>Attributes</b>
  23678. <ul>
  23679. <li><a href="#disable">disable</a></li><br>
  23680. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  23681. <li><a name="">pollState</a><br>
  23682. Polling-Intervall in Sekunden fĂźr den Status der USV. Default: 10</li><br>
  23683. <li><a name="">pollVal</a><br>
  23684. Polling-Intervall fĂźr die anderen Werte. Dieser Wert wird auf ein Vielfaches von pollState gerundet. Default: 60</li><br>
  23685. <li><a name="NUT_asReadings">asReadings</a><br>
  23686. Mit Kommata getrennte Liste der USV-Werte, die als Readings verwendet werden sollen (ups.status wird auf jeden Fall gelesen).<br>
  23687. Beispiel:<br>
  23688. <code>attr dieUSV asReadings battery.charge,battery.runtime,input.voltage,ups.load,ups.power,ups.realpower</code> </li><br>
  23689. </ul>
  23690. </ul>
  23691. <p><a name="Nello"></a>
  23692. <h3>Nello</h3>
  23693. <div class='langLinks'>[<a href='commandref.html#Nello'>EN</a> DE]</div>
  23694. <ul>
  23695. Das <i>Nello</i> Modul ermĂśglicht die Steuerung des <a target="_blank" rel="nofollow" href="https://www.nello.io/de/">nello one</a> Chips.<br>
  23696. Um es aufzusetzen, muss zunächst ein <b>neuer Nutzer mit Admin-Rechten</b> in der Nello-App angelegt werden, der nur fßr FHEM verwendet wird - eine Nutzung per App ist mit diesem Account dann nicht mehr mÜglich.<br>
  23697. Anschlie�end kann das Gerät angelegt werden. Sobald das Gerät erstellt wurde, kann der Login durchgefßhrt werden.<br>
  23698. <b>ACHTUNG:</b> Sollte der Login fehlschlagen, versuche das Passwort Ăźber die recoverPassword Funktion zurĂźckzusetzen.<br>
  23699. <b>Dringend empfohlen:</b> FĂźr verzĂśgerungsfreie Events die detectDeviceID Funktion nach dem Login aufrufen.<br>
  23700. <br>
  23701. <p><b>BenĂśtigte Pakete</b></p>
  23702. <code>
  23703. sudo apt-get install libcpan-meta-yaml-perl<br>
  23704. sudo cpan -i Net::MQTT::Simple
  23705. </code>
  23706. <br>
  23707. <br>
  23708. <br>
  23709. <a name="Nello_define"></a>
  23710. <p><b>Define</b></p>
  23711. <ul>
  23712. <code>define &lt;name&gt; Nello</code><br>
  23713. </ul>
  23714. <br>
  23715. <ul>
  23716. Beispiel: <code>define nello Nello</code><br>
  23717. </ul>
  23718. <br>
  23719. <a name="Nello_set"></a>
  23720. <p><b>set &lt;required&gt; [ &lt;optional&gt; ]</b></p>
  23721. <ul>
  23722. <li>
  23723. <i>login &lt;username&gt; &lt;password&gt;</i><br>
  23724. Login
  23725. </li>
  23726. <li>
  23727. <i>recoverPassword &lt;username&gt;</i><br>
  23728. setzt das Passwort zurĂźck
  23729. </li>
  23730. <li>
  23731. <i>detectDeviceID</i><br>
  23732. erkennt die Geräte-ID des Nellos durch einmaliges �ffnen der Tßr und erstellt MQTT-Helper-Geräte fßr verzÜgerungsfreie Ereignisse
  23733. </li>
  23734. <li>
  23735. <i>open [ &lt;location_id&gt; ]</i><br>
  23736. Ăśffnet die TĂźr
  23737. </li>
  23738. <li>
  23739. <i>update</i><br>
  23740. aktualisiert Aktionen und Ereignisse
  23741. </li>
  23742. </ul>
  23743. <br>
  23744. <a name="Nello_get"></a>
  23745. <p><b>Get</b></p>
  23746. <ul>
  23747. N/A
  23748. </ul>
  23749. <br>
  23750. <a name="Nello_attr"></a>
  23751. <p><b>Attribute</b></p>
  23752. <ul>
  23753. <li>
  23754. <i>updateInterval</i><br>
  23755. das Intervall in Sekunden, in dem Ereignisse gepollt werden (nur relevant, wenn deviceID nicht erkannt wurde)<br>
  23756. default: 900 (wenn Geräte-ID erkannt wurde), ansonten 15
  23757. </li>
  23758. </ul>
  23759. </ul>
  23760. <p><a name="NetIO230B"></a>
  23761. <h3>NetIO230B</h3>
  23762. <ul>
  23763. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  23764. hier: <a href='commandref.html#NetIO230B'>NetIO230B</a><br/>
  23765. </ul>
  23766. <a name="Netzer"></a>
  23767. <h3>Netzer</h3>
  23768. <div class='langLinks'>[<a href='commandref.html#Netzer'>EN</a> DE]</div>
  23769. <ul>
  23770. The <a href="http://www.mobacon.de/wiki/doku.php/de/netzer/index">Netzer</a> realisiert ein Ethernetinterface auf PIC-Basis. Es agiert als Gateway zwischen TCP/IP und verschiedenen seriellen Busses wie I2C, SPI oder UART. Es k&ouml;nnen bis zu 13 GPIO Pins angesprochen (gelesen oder geschrieben) werden.
  23771. This Modul erm&ouml;glicht den Zugriff auf diese GPIO Pin's auf einem Netzer mit IO_base in Version 1.5.
  23772. Es gibt zwei als ADC nutzbare Pin's channel, 2 als PMW Ausg&auml;nge, drei als Z&auml;hler sowie drei die einen Interrupt ausl&ouml;sen k&ouml;nnen.
  23773. Die GPIO Pin's sind standardm&auml;�ig als Eing&auml;nge konfiguriert. Bevor ein Pin anderweitig genutzt werden kann, muss er &uuml;ber die eingebaute Website entsprechend <a href="http://www.mobacon.de/wiki/doku.php/de/netzer/io">eingestellt</a> werden.
  23774. Ist einer der Eing&auml;nge als Inerrupteingang eingestellt, werden bei jedem Interrupereignis die Weter s&auml;mtlicher Ports aktualisiert.
  23775. <br><br>
  23776. <a name="NetzerDefine"></a>
  23777. <b>Define</b>
  23778. <ul>
  23779. <code>define &lt;name&gt; Netzer &lt;host:port&gt;</code>
  23780. <br><br>
  23781. </ul>
  23782. <a name="NetzerSet"></a>
  23783. <b>Set</b>
  23784. <ul>
  23785. <code>set &lt;name&gt; &lt;port[_counter]&gt; &lt;value&gt;</code>
  23786. <br>
  23787. Dabei ist &lt;value&gt ein dem Port entsprechender Buchstabe zwischen <code>a</code> und <code>m</code>. Besitzt der Port das Attribut <code>cnt</code> so kann ein weiterer Wert &lt;port_counter&gt; gesetzt werden.<br>
  23788. Ausschlie�lich Port's die &uuml;ber Attribut Port_[a-m] auf <code>PWM</code> oder <code>out</code> gesetzt sind k&ouml;nnen benutzt werden.<br>
  23789. Bei Port Attribut:<ul>
  23790. <li>PWM &lt;value&gt kann ein Wert zwischen 0 und 1023 sein</li>
  23791. <li>out &lt;value&gt kann ein Wert zwischen 0 und 1 sein</li>
  23792. <li>cnt &lt;port_counter&gt; &lt;value&gt kann ein Wert zwischen 0 und 32767 sein</li>
  23793. <br></ul>
  23794. </ul>
  23795. <b>Get</b>
  23796. <ul>
  23797. <code>get &lt;name&gt; [&lt;port[_counter]&gt;]</code>
  23798. <br>
  23799. Ohne &lt;port&gt; werde alle Werte aktualisiert.<br>
  23800. Wenn &lt;port&gt ein Buchstabe zwischen <code>a</code> und <code>m</code><br> ist, wird der Portwert aktualisiert und bei Port Attribut <code>cnt</code> kann ein weiterer Z&auml;hlerwert &lt;port_counter&gt; gelesen werden.<br>
  23801. <br>
  23802. </ul>
  23803. <a name="NetzerAttr"></a>
  23804. <b>Attributes</b>
  23805. <ul>
  23806. <a name="poll_interval"></a>
  23807. <li>poll_interval<br>
  23808. Aktualisierungsintervall aller Werte in Minuten.<br>
  23809. Standard: 5, g&uuml;ltige Werte: Dezimalzahl
  23810. </li><br>
  23811. <a name="Port_&lt;port&gt;"></a>
  23812. <li>Port_&lt;port&gt;<br>
  23813. <ul>
  23814. Konfiguration des jeweiligen GPIO.<br>
  23815. &lt;port&gt; ist ein Buchstabe zwischen <code>a</code> und <code>m</code>.<br>
  23816. <li><code>in</code>: Port ist Eingang. Kann auch weggelassen werden, da Standard. Set ist f&uuml;r diesen Port nicht verf&uuml;gbar.<br>
  23817. Nutzbar f&uuml;r alle Port's</li>
  23818. <li><code>out</code>: Port ist Ausgang. Set kann &lt;value&gt; zwischen 0 und 1 haben.<br>
  23819. Nutzbar f&uuml;r alle Port's</li>
  23820. <li><code>cnt</code>: Port ist Eingang. Set ist f&uuml;r diesen Port nicht verf&uuml;gbar.<br>
  23821. Ein weiteres Reading: Port_&lt;port&gt;_counter ist verf&uuml;gbar.
  23822. Dieses kann auch mit <code>get</code> gelesen und mit <code>set</code> ver&auml;ndert werden.<br>
  23823. Port_&lt;port&gt;_counter &lt;value&gt; = 0-32767 oder overflow wenn es ausserhalb dieses Bereichs liegt.<br>
  23824. Nutzbar f&uuml;r Port's a,b,c</li>
  23825. <li><code>ADC</code>: Port ist Analogeingang. <code>get</code> &lt;value&gt; ist 0-1023 entsprechend der Spannung am Port. Set ist f&uuml;r diesen Port nicht verf&uuml;gbar.<br>
  23826. Nutzbar f&uuml;r Port's e,f</li>
  23827. <li><code>PWM</code>: Port ist PWM-Ausgang. <code>set</code> und <code>get</code> &lt;value&gt; ist 0-1023 entsprechend des Dutycycle am Port.<br>
  23828. Nutzbar f&uuml;r Port's d,j</li>
  23829. </ul>
  23830. </li><br>
  23831. </ul>
  23832. <br>
  23833. </ul>
  23834. <p><a name="NetzerI2C"></a>
  23835. <h3>NetzerI2C</h3>
  23836. <div class='langLinks'>[<a href='commandref.html#NetzerI2C'>EN</a> DE]</div>
  23837. <ul>
  23838. <a name="NetzerI2C"></a>
  23839. Erm&ouml;glicht den Zugriff auf die I2C Schnittstelle des <a href="http://www.mobacon.de/wiki/doku.php/de/netzer/index">Netzer</a>.<br> &uuml;ber logische Module. Register von I2C IC's k&ouml;nnen auch direkt gelesen und geschrieben werden.<br><br>
  23840. <b>Vorbereitung:</b><br>
  23841. Bevor dieses Modul verwendet werden kann muss der Serielle Server des Netzers <a href="http://www.mobacon.de/wiki/doku.php/de/netzer/serialserveraktiviert"> und auf I2C gestellt</a> werden.
  23842. <a name="NetzerI2CDefine"></a><br><br>
  23843. <b>Define</b>
  23844. <ul>
  23845. <code>define &lt;name&gt; NetzerI2C &lt;Device-Address:Port&gt;</code><br>
  23846. <code>&lt;Device-Address:Port&gt;</code> ist die Adresse/IP-Adresse und Serial Server TCP-Port des Netzer<br><br>
  23847. </ul>
  23848. <a name="NetzerI2CSet"></a>
  23849. <b>Set</b>
  23850. <ul>
  23851. <li>
  23852. Schreibe ein Byte (oder auch mehrere nacheinander) direkt auf ein I2C device (manche I2C Module sind so einfach, das es nicht einmal mehrere Register gibt):<br>
  23853. <code>set &lt;name&gt; writeByte &lt;I2C Address&gt; &lt;value&gt;</code><br><br>
  23854. </li>
  23855. <li>
  23856. Schreibe ein Byte (oder auch mehrere nacheinander) direkt auf ein Register des adressierten I2C device:<br>
  23857. <code>set &lt;name&gt; writeByteReg &lt;I2C Address&gt; &lt;Register Address&gt; &lt;value&gt;</code><br><br>
  23858. </li>
  23859. <li>
  23860. Schreibe n-bytes auf einen Registerbereich, beginnend mit dem angegebenen Register:<br>
  23861. <code>set &lt;name&gt; writeBlock &lt;I2C Address&gt; &lt;Register Address&gt; &lt;value&gt;</code><br><br>
  23862. </li>
  23863. Beispiele:
  23864. <ul>
  23865. Schreibe 0xAA zu Modul mit I2C Addresse 0x60<br>
  23866. <code>set test1 writeByte 60 AA</code><br>
  23867. Schreibe 0xAA zu Register 0x01 des Moduls mit der I2C Adresse 0x6E<br>
  23868. <code>set test1 writeByteReg 6E 01 AA</code><br>
  23869. Schreibe 0xAA zu Register 0x01 des Moduls mit der I2C Adresse 0x6E, schreibe danach 0x55 zu Register 0x01<br>
  23870. <code>set test1 writeByteReg 6E 01 AA 55</code><br>
  23871. Schreibe 0xA4 zu Register 0x03, 0x00 zu Register 0x04 und 0xDA zu Register 0x05 des Moduls mit der I2C Adresse 0x60 als Block<br>
  23872. <code>set test1 writeBlock 60 03 A4 00 DA</code><br>
  23873. </ul><br>
  23874. </ul>
  23875. <a name="NetzerI2CGet"></a>
  23876. <b>Get</b>
  23877. <ul>
  23878. <code>get &lt;name&gt; read &lt;I2C Address&gt; [&lt;Register Address&gt; [&lt;number of registers&gt;]] </code>
  23879. <br>
  23880. Auslesen der Registerinhalte des I2C Moduls<br><br>
  23881. Examples:
  23882. <ul>
  23883. Lese Byte vom Modul mit der I2C Adresse 0x60<br>
  23884. <code>get test1 writeByte 60</code><br>
  23885. Lese den Inhalt des Registers 0x01 vom Modul mit der I2C Adresse 0x6E.<br>
  23886. <code>get test1 read 6E 01 AA 55</code><br>
  23887. Lese den Inhalt des Registerbereichs 0x03 bis 0x06 vom Modul mit der I2C Adresse 0x60.<br>
  23888. <code>get test1 read 60 03 4</code><br>
  23889. </ul><br>
  23890. </ul><br>
  23891. <a name="NetzerI2CAttr"></a>
  23892. <b>Attribute</b>
  23893. <ul>
  23894. <li><a href="#ignore">ignore</a></li>
  23895. <li><a href="#do_not_notify">do_not_notify</a></li>
  23896. <li><a href="#showtime">showtime</a></li>
  23897. </ul>
  23898. <br>
  23899. </ul>
  23900. <p><a name="Neuron"></a>
  23901. <h3>Neuron</h3>
  23902. <div class='langLinks'>[<a href='commandref.html#Neuron'>EN</a> DE]</div>
  23903. <ul>
  23904. <a name="Neuron"></a>
  23905. Modul f&uuml; die Steuerung von Ger&auml;ten auf denen EVOK l&auml;uft z.B. UniPi Neuron.
  23906. <br>
  23907. <a name="NeuronDefine"></a>
  23908. <b>Define</b>
  23909. <ul>
  23910. <code>define <name> Neuron &lt;IP&gt;[:&lt;Port&gt;]</code><br><br>
  23911. <br><br>
  23912. </ul>
  23913. <a name="NeuronSet"></a>
  23914. <b>Set</b>
  23915. <ul>
  23916. <code>set &lt;name&gt; &lt;value&gt; [&lt;args&gt;]</code>
  23917. <br><br>
  23918. clearreadings:noArg websocket:open,close atest postjson
  23919. where <code>value</code> can be e.g.:<br>
  23920. <ul><li>dev_circuit<br>
  23921. nur f&uuml; Ausg&auml;nge<br>
  23922. &lt;args&gt;: on, off f&uuml;r Ausg&auml;nge und Slider f&uumlr ao<br>
  23923. <br>
  23924. </li>
  23925. <li>clearreadings<br>
  23926. l&ouml;sche alle Readings
  23927. </li>
  23928. <li>websocket<br>
  23929. &lt;arg&gt;: open,close<br>
  23930. Websocket Verbindung &ouml;ffnen, schliessen
  23931. </li>
  23932. <li>postjson<br>
  23933. &lt;args&gt;: <code>dev circuit type value</code><br>
  23934. JSON Kommando an entsprechendes Subdevice schicken.<br>
  23935. z.B.: <code>set neuron input 1_01 mode simple</code>
  23936. </li>
  23937. Details dazu sind in der UniPi Evok Dokumentation zu finden.
  23938. </ul>
  23939. </ul>
  23940. <a name="NeuronGet"></a>
  23941. <b>Get</b>
  23942. <ul>
  23943. <code>get &lt;name&gt; &lt;value&gt; [&lt;arg&gt;]</code>
  23944. <br><br>
  23945. where <code>value</code> can be<br>
  23946. <ul>
  23947. <li>all: aktualisiert alle readings</li>
  23948. <li>config: gibt das Konfiguration des Subdevices &lt;arg&gt; zur&uuml;ck</li>
  23949. <li>updt_sets_gets: Aktualisierung der Set und Get Auswahllisten</li>
  23950. <li>value: gibt das Status des Subdevices &lt;arg&gt; zur&uuml;ck</li>
  23951. </ul>
  23952. </ul><br>
  23953. <a name="RPI_GPIOAttr"></a>
  23954. <b>Attribute</b>
  23955. <ul>
  23956. <li>connection<br>
  23957. Verbindungsart zum EVOK Device<br>
  23958. Standard: polling, g&uuml;ltige Werte: websockets, polling<br><br>
  23959. </li>
  23960. <li>poll_interval<br>
  23961. Interval in Minuten in dem alle Werte gelesen (und auch an die log. Devices weitergeleitet) werden.<br>
  23962. Standard: -, g&uuml;ltige Werte: Dezimalzahl<br><br>
  23963. </li>
  23964. <li>wsFilter<br>
  23965. Filter um die liste der Ger&auml;te zu limitieren welche websocket events generieren sollen<br>
  23966. Standard: all, g&uuml;ltige Werte: all, ai, ao, input, led, relay, wd<br><br>
  23967. </li>
  23968. <li>logicalDev<br>
  23969. Filter um Ger&auml;te zu limitieren die logische Devices anlegen und mit ihnen kommunizieren.<br>
  23970. Standard: ao, input, led, relay, g&uuml;ltige Werte: ai, ao, input, led, relay, wd<br><br>
  23971. </li>
  23972. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  23973. </ul>
  23974. <br>
  23975. </ul>
  23976. <p><a name="NeuronPin"></a>
  23977. <h3>NeuronPin</h3>
  23978. <div class='langLinks'>[<a href='commandref.html#NeuronPin'>EN</a> DE]</div>
  23979. <ul>
  23980. <a name="NeuronPin"></a>
  23981. Logisches Modul f&uuml; Ger&auml;te auf denen EVOK l&auml;uft.
  23982. Diese werden automatisch vom <a href="#Neuron"> Neuron</a> Modul angelegt.
  23983. <br>
  23984. <a name="NeuronPinDefine"></a>
  23985. <b>Define</b>
  23986. <ul>
  23987. <code>define <name> NeuronPin &lt;dev&gt; &lt;circuit&gt;</code><br><br>
  23988. &lt;dev&gt; ist der Typ des Subdevices/Pins z.B. input, ai (analoger Eingang), relay (digitaler Ausgang) etc.<br>
  23989. &lt;circuit&gt; ist die Nummer des Subdevices/Pins.
  23990. <br><br>
  23991. Beispiel:
  23992. <pre>
  23993. define NeuronPin_relay_2_01 NeuronPin relay 2_01
  23994. </pre>
  23995. </ul>
  23996. <a name="NeuronPinSet"></a>
  23997. <b>Set</b>
  23998. <ul>
  23999. <code>set &lt;name&gt; &lt;value&gt;</code>
  24000. <br><br>
  24001. where <code>value</code> can be e.g.:<br>
  24002. <ul><li>f&uuml;r Subdevice Typ relay
  24003. <ul><code>
  24004. off<br>
  24005. on<br>
  24006. </code>
  24007. </ul>
  24008. <a href="#setExtensions"> set extensions</a> werden f&uuml;r Ausg&auml;nge ebenso unterst&uuml;tzt.<br>
  24009. </li>
  24010. </ul>
  24011. Weitere set values sind abh&auml;ngig von den jeweiligen Subdevice Funktionen.
  24012. Details dazu sind in der UniPi Evok Dokumentation zu finden.
  24013. </ul>
  24014. <a name="NeuronPinGet"></a>
  24015. <b>Get</b>
  24016. <ul>
  24017. <code>get &lt;name&gt; &lt;value&gt;</code>
  24018. <br><br>
  24019. <code>value</code>:<br>
  24020. <ul>
  24021. <li>refresh: aktualisiert alle readings</li>
  24022. <li>config: gibt das Konfigurations JSON zur&uuml;ck</li>
  24023. </ul>
  24024. </ul><br>
  24025. <a name="NeuronPinAttr"></a>
  24026. <b>Attribute</b>
  24027. <ul>
  24028. <li>poll_interval<br>
  24029. Interval in Minuten in dem alle Werte gelesen werden.<br>
  24030. Standard: -, g&uuml;ltige Werte: Dezimalzahl<br><br>
  24031. </li>
  24032. <li>restoreOnStartup<br>
  24033. Readings nach Neustart wiederherstellen<br>
  24034. Standard: last, g&uuml;ltige Werte: last, on, off<br><br>
  24035. </li>
  24036. <li>aomax<br>
  24037. Maxwert f&uuml;r den Schieberegler beim Analogen Ausgang<br>
  24038. Standard: 10, g&uuml;ltige Werte: Dezimalzahl<br><br>
  24039. </li>
  24040. <li>skipreadings<br>
  24041. Werte, die vom Ger&auml;t gesendet, aber nicht als Reading dargestellt werden sollen.<br>
  24042. Standard: relay_type,typ,dev,circuit,glob_dev_id,value,pending; g&uuml;ltige Werte: kommaseparierte Liste<br><br>
  24043. </li>
  24044. <li>ownsets<br>
  24045. Werte, die vom Ger&auml;t gesendet, und &uuml;ber set ver&auml;ndert werden k&ouml;nnen. Schickt das Ger&auml;t feste Auswahllisten f&uuml;r einen Wert dann werden die sets automatisch angelegt.<br>
  24046. Standard: debounce;counter;interval;pwm_freq;pwm_duty:slider,0,0.1,100; g&uuml;ltige Werte: semikolonseparierte Liste<br><br>
  24047. </li>
  24048. <li>autoalias<br>
  24049. Wenn auf 1 wird das reading alias automatisch als Attribut alias gesetzt.<br>
  24050. Standard: 0, g&uuml;ltige Werte: 0,1<br><br>
  24051. </li>
  24052. <li><a href="#IODev">IODev</a></li>
  24053. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  24054. <li><a href="#do_not_notify">do_not_notify</a></li>
  24055. <li><a href="#showtime">showtime</a></li>
  24056. <li><a href="#disable">disable</a></li>
  24057. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  24058. </ul>
  24059. <br>
  24060. </ul>
  24061. <p><a name="Nextion"></a>
  24062. <h3>Nextion</h3>
  24063. <ul>
  24064. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24065. hier: <a href='commandref.html#Nextion'>Nextion</a><br/>
  24066. </ul>
  24067. <a name="Nmap"></a>
  24068. <h3>Nmap</h3>
  24069. <div class='langLinks'>[<a href='commandref.html#Nmap'>EN</a> DE]</div>
  24070. ( <a href="commandref.html#Nmap"><u>en</u></a> | de )
  24071. <div>
  24072. <ul>
  24073. Nmap ist das FHEM Modul um einen Netzwerkscan mit Nmap durchzuf&uuml;hren
  24074. und Informationen &uuml;ber die erreichbaren Netzwerkger&auml;te
  24075. darzustellen.<br>
  24076. Wird ein neues Gerät erkannt wird ein Event
  24077. <code>"&lt;name&gt; new host: &lt;hostname&gt; (&lt;IPv4&gt;)"</code>
  24078. erzeugt.<br>
  24079. Wird erkannt, dass ein Gerät mit bekannter MAC-Adresse eine neue IP
  24080. erhalten hat wird ein Event
  24081. <code>"&lt;name&gt; new IP: &lt;hostname&gt; (&lt;IPv4&gt;)"</code>
  24082. erzeugt.<br>
  24083. <br>
  24084. Vorraussetzungen:
  24085. <ul>
  24086. Das Programm "Nmap" sowie das Perl-Modul "Nmap::Parser" werden
  24087. ben&ouml;tigt.<br>
  24088. Unter Debian (basierten) System, k&ouml;nnen diese mittels
  24089. <code>"apt-get install nmap libnmap-parser-perl"</code>
  24090. installiert werden.
  24091. </ul>
  24092. <br>
  24093. <a name="Nmapdefine"></a>
  24094. <b>Define</b>
  24095. <ul>
  24096. <code>define &lt;name&gt; Nmap &lt;target specification&gt;</code><br>
  24097. In der &lt;target specification&gt; stehen alle Zielhosts, die gescannet
  24098. werden sollen. <br>
  24099. Der einfachste Fall ist die Beschreibung einer IP-Zieladresse oder eines
  24100. Zielhostnamens zum Scannen. <br>
  24101. Um ein ganzes Netzwerk benachbarter Hosts zu scannen unterst&uuml;tzt
  24102. Nmap Adressen im CIDR-Stil. Es k&ouml;nnen /numbits an eine IPv4-Adresse
  24103. oder an einen Hostnamen angef&uuml;gt werden, und Nmap wird alle
  24104. IP-Adressen scannen, bei denen die ersten numbits mit denen der gegebenen
  24105. IP oder des gegebenen Hostnamens &uuml;bereinstimmen. Zum Beispiel
  24106. w&uuml;rde 192.168.10.0/24 die 256 Hosts zwischen 192.168.10.0 und
  24107. 192.168.10.255 scannen. 192.168.10.40/24 w&uuml;rde genau dieselben Ziele
  24108. scannen. Es ist auch mĂśglich mehrere Netzwerke zur gleichen Zeit zu
  24109. scannen. Zum Beispiel w&uuml;rde 192.168.1.0/24 192.168.2.0/24 die 512
  24110. Hosts zwischen 192.168.1.0 und 192.168.2.255 scannen.<br>
  24111. Siehe
  24112. <a href="https://nmap.org/man/de/man-target-specification.html">
  24113. <u>Nmap Man Page (Angabe von Zielen)</u>
  24114. </a>.
  24115. </ul><br>
  24116. <a name="Nmapset"></a>
  24117. <b>Set</b>
  24118. <ul>
  24119. <li>
  24120. <code>clear readings</code><br>
  24121. L&ouml;scht alle Readings au�er "state".
  24122. </li>
  24123. <li>
  24124. <code>deleteOldReadings &lt;s&gt;</code><br>
  24125. LÜscht alle Readings die älter sind als &lt;s&gt; Sekunden.
  24126. </li>
  24127. <li>
  24128. <code>interrupt</code><br>
  24129. Bricht einen laufenden Scan ab.
  24130. </li>
  24131. <li>
  24132. <code>statusRequest</code><br>
  24133. Startet einen Netzwerkscan.
  24134. </li>
  24135. </ul><br>
  24136. <a name="Nmapreadings"></a>
  24137. <b>Readings</b><br>
  24138. <ul>
  24139. Allgemeine Readings:
  24140. <ul>
  24141. <li>
  24142. <code>NmapVersion</code><br>
  24143. Die Versionsnummer des installierten Nmap Programms.
  24144. </li>
  24145. <li>
  24146. <code>hostsScanned</code><br>
  24147. Die Anzahl der gescannten Adressen.
  24148. </li>
  24149. <li>
  24150. <code>hostsUp</code><br>
  24151. Die Anzahl der erreichbaren Netzwerkger&auml;te.
  24152. </li>
  24153. <li>
  24154. <code>knownHosts</code><br>
  24155. Die Anzahl der bekannten Netzwerkger&auml;te.
  24156. </li>
  24157. <li>
  24158. <code>scanDuration</code><br>
  24159. Die Scan-Dauer in Sekunden.
  24160. </li>
  24161. <li>
  24162. <code>state</code><br>
  24163. <ul>
  24164. <li>
  24165. <code>Initialized</code><br>
  24166. Nmap wurde definiert oder enabled.
  24167. </li>
  24168. <li>
  24169. <code>running</code><br>
  24170. Ein Netzwerkscan wird ausgef&uuml;hrt.
  24171. </li>
  24172. <li>
  24173. <code>done</code><br>
  24174. Der Netzwerkscan wurde erfolgreich abgeschlossen.
  24175. </li>
  24176. <li>
  24177. <code>aborted</code><br>
  24178. Der Netzwerkscan wurde aufgrund einer Zeit&uuml;berschreitung oder
  24179. durch den Benutzer abgebrochen.
  24180. </li>
  24181. <li>
  24182. <code>disabled</code><br>
  24183. Nmap wurde deaktiviert.
  24184. </li>
  24185. </ul>
  24186. </li>
  24187. </ul>
  24188. <br>
  24189. Hostspezifische Readings:
  24190. <ul>
  24191. <li>
  24192. <code>&lt;metaReading&gt;_alias</code><br>
  24193. Alias welcher unter dem Attribut "devAlias" fĂźr das Netzwerkger&auml;t
  24194. angegeben ist. Ist kein Alias angegeben wird der Hostname angezeigt.
  24195. </li>
  24196. <li>
  24197. <code>&lt;metaReading&gt;_hostname</code><br>
  24198. Hostname des Netzwerkger&auml;ts. Kann dieser nicht ermittel werden
  24199. wird die IPv4-Adresse angezeigt.
  24200. </li>
  24201. <li>
  24202. <code>&lt;metaReading&gt;_ip</code><br>
  24203. IPv4-Adresse des Netzwerkger&auml;ts.
  24204. </li>
  24205. <li>
  24206. <code>&lt;metaReading&gt;_lastSeen</code><br>
  24207. Der Zeitpunkt zu dem das Netzwerkger&auml;t das letzte mal als gesehen
  24208. wurde.
  24209. </li>
  24210. <li>
  24211. <code>&lt;metaReading&gt;_macAddress</code><br>
  24212. MAC-Adresse des Netzwerkger&auml;ts. Diese kann nur ermittelt werden,
  24213. wenn der Scan mit Root-Rechten ausgef&uuml;hrt wird.
  24214. </li>
  24215. <li>
  24216. <code>&lt;metaReading&gt;_macVendor</code><br>
  24217. Vermutlicher Hersteller des Netzwerkger&auml;ts. Dieser kann nur
  24218. ermittelt werden, wenn der Scan mit Root-Rechten ausgef&uuml;hrt wird.
  24219. </li>
  24220. <li>
  24221. <code>&lt;metaReading&gt;_state</code><br>
  24222. Status des Netzwerkger&auml;ts. Kann entweder "absent" oder "present"
  24223. sein.
  24224. </li>
  24225. <li>
  24226. <code>&lt;metaReading&gt;_uptime</code><br>
  24227. Zeit in Sekunden seit der das Netzwerkger&auml;t erreichbar ist.
  24228. </li>
  24229. <li>
  24230. <code>&lt;metaReading&gt;_uptimeText</code><br>
  24231. Zeit in "d days, hh hours, mm minutes, ss seconds" seit der das
  24232. Netzwerkger&auml;t erreichbar ist.
  24233. </li>
  24234. </ul>
  24235. </ul><br>
  24236. <a name="Nmapattr"></a>
  24237. <b>Attribute</b>
  24238. <ul>
  24239. <li>
  24240. <code>absenceThreshold &lt;n&gt;</code><br>
  24241. Die Anzahl an Netzwerkscans, welche in "absent" resultieren
  24242. m&uuml;ssen, bevor der Status eines Netzwerkger&auml;ts auf "absent"
  24243. wechselt. Mit dieser Funktion kann man die Abwesenheit eines
  24244. Ger&auml;tes verifizieren bevor der Status final auf "absent"
  24245. ge&auml;ndert wird. Wenn dieses Attribut auf einen Wert &gt;1 gesetzt
  24246. ist, verbleibt das Reading "&lt;metaReading&gt;_state" auf "present",
  24247. bis der Status final auf "absent" wechselt.
  24248. </li>
  24249. <li>
  24250. <code>args &lt;args&gt;</code><br>
  24251. Argumente fĂźr den Nmap-Scan.<br>
  24252. Die Vorgabe ist "-sn".
  24253. </li>
  24254. <li>
  24255. <code>deleteOldReadings &lt;s&gt;</code><br>
  24256. Nach einem Netzwerkscan werden alle hostspezifischen Readings, die
  24257. älter sind als &lt;s&gt; Sekunden, gelÜscht
  24258. </li>
  24259. <li>
  24260. <code>
  24261. devAlias &lt;ID&gt;:&lt;ALIAS&gt; &lt;ID2&gt;:&lt;ALIAS2&gt; ...
  24262. </code><br>
  24263. Eine Leerzeichen-getrennte getrennte Liste von &lt;ID&gt;:&lt;ALIAS&gt;
  24264. Paaren, die dazu genutzt werden kann um Netzwerkger&auml;ten einen
  24265. Alias zu geben.<br>
  24266. Die ID kann dabei MAC-Adresse, hostname oder IPv4-Adresse sein.<br>
  24267. Beispiele:
  24268. <ul>
  24269. MAC-Adresse:
  24270. <code>
  24271. attr &lt;name&gt; devAlias 5C:51:88:A5:94:1F:Michaels_Handy_byMAC
  24272. </code><br>
  24273. hostname:
  24274. <code>
  24275. attr &lt;name&gt; devAlias
  24276. android-87c7a6221093d830:Michaels_Handy_byHOST
  24277. </code><br>
  24278. IPv4-Adresse:
  24279. <code>
  24280. attr &lt;name&gt; devAlias 192.168.1.130:Michaels_Handy_byIP
  24281. </code><br>
  24282. </ul>
  24283. </li>
  24284. <li>
  24285. <code>disable 1</code><br>
  24286. Ein laufender Scan wird abgebrochen und es werden keine neuen Scans
  24287. gestartet.
  24288. </li>
  24289. <li>
  24290. <code>excludeHosts &lt;target specification&gt;</code><br>
  24291. In der &lt;target specification&gt; stehen alle Zielhosts, die beim
  24292. Scan &uuml;bersprungen werden sollen.
  24293. </li>
  24294. <li>
  24295. <code>interval &lt;seconds&gt;</code><br>
  24296. Intervall in Sekunden in dem der Scan durchgef&uuml;hrt wird.<br>
  24297. Der Vorgabewert ist 900 Sekunden und der Mindestwert 30 Sekunden.
  24298. </li>
  24299. <li>
  24300. <code>keepReadings 1</code><br>
  24301. Wird fßr ein Gertät mit bekannter MAC-Adresse eine neue IP-Adresse
  24302. erkannt, werden die ungĂźltig gewordenen Readings gelĂśscht es sei denn
  24303. dieses Attribut ist gesetzt.
  24304. </li>
  24305. <li>
  24306. <code>leadingZeros 1</code><br>
  24307. Bei den Readings-Namen werden die IPv4-Adressen mit f&uuml;hrenden
  24308. Nullen dargestellt.
  24309. </li>
  24310. <li>
  24311. <code>metaReading &lt;metaReading&gt;</code><br>
  24312. Als &lt;metaReading&gt; kann "alias", "hostname", "ip" oder
  24313. "macAddress" angegeben werden und ist der Bezeichner fĂźr die
  24314. Readings.<br>
  24315. Die Vorgabe is "ip".
  24316. </li>
  24317. <li>
  24318. <code>path</code><br>
  24319. Pfad unter dem das Nmap Programm zu erreichen ist.<br>
  24320. Die Vorgabe ist "/urs/bin/nmap".
  24321. </li>
  24322. <li>
  24323. <a href="#readingFnAttributes">
  24324. <u><code>readingFnAttributes</code></u>
  24325. </a>
  24326. </li>
  24327. <li>
  24328. <code>sudo 1</code><br>
  24329. Der Scan wird mit Root-Rechten ausgef&uuml;hrt.<br>
  24330. Voraussetzung ist, dass der Benutzer unter dem FHEM ausgef&uuml;hrt
  24331. diese Rechte besitzt. F&uuml;r den Benutzer "fhem", auf einem Debian
  24332. (basierten) System, lassen sich diese in der Datei "/etc/sudoers"
  24333. festlegen. Daf&uuml;r muss im Abschnitt "# User privilege
  24334. specification" die Zeile "fhem ALL=(ALL) NOPASSWD: /usr/bin/nmap"
  24335. eingef&uuml;gt werden.
  24336. </li>
  24337. </ul>
  24338. </ul>
  24339. </div>
  24340. <p><a name="NotifyAndroidTV"></a>
  24341. <h3>NotifyAndroidTV</h3>
  24342. <ul>
  24343. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24344. hier: <a href='commandref.html#NotifyAndroidTV'>NotifyAndroidTV</a><br/>
  24345. </ul>
  24346. <a name="OBIS"></a>
  24347. <h3>OBIS</h3>
  24348. <div class='langLinks'>[<a href='commandref.html#OBIS'>EN</a> DE]</div>
  24349. <ul>
  24350. Modul fĂźr Smartmeter, die ihre Daten im OBIS-Standard senden. Hierbei ist es egal, ob die Daten als reiner Text oder aber SML-kodiert kommen.
  24351. <br><br>
  24352. <b>Define</b>
  24353. <ul>
  24354. <code>define &lt;name&gt; OBIS device|none [MeterType] </code><br>
  24355. <br>
  24356. &lt;device&gt; gibt den seriellen Port an.
  24357. <br><br>
  24358. Optional: MeterType kann sein:
  24359. <ul><li>VSM102 -&gt; Voltcraft VSM102</li>
  24360. <li>E110 -&gt; Landis&&;Gyr E110</li>
  24361. <li>E350USB -&gt; Landis&&;Gyr E350 USB-Version</li>
  24362. <li>Standard -&gt; Daten kommen als plainText</li>
  24363. <li>SML -&gt; Smart Message Language</li></ul>
  24364. <br>
  24365. Beispiel: <br>
  24366. <code>define myPowerMeter OBIS /dev/ttyPlugwise@@9600,7,E,1 VSM102</code>
  24367. <br>
  24368. <br>
  24369. </ul>
  24370. <b>Attribute</b>
  24371. <ul><li>
  24372. <code>offset_feed <br>offset_energy</code><br>
  24373. Wenn das Smartmeter hinter einem Zähler des EVU's sitzt, kann hiermit der Zähler des
  24374. Smartmeters an den des EVU's angepasst werden.
  24375. </li><li>
  24376. <code>channels</code><br>
  24377. Hiermit kĂśnnen die einzelnen Kanal-Readings mittels RegExes umbenannt werden.<BR>
  24378. Beispiel: <code>attr myOBIS channels {"1.0.96.5.5.255"=>"Status","1.0.0.0.0.255"=>"Info","16.7"=>"Verbrauch"}></code>
  24379. </li><li>
  24380. <code>directions</code><br>
  24381. Manche SmartMeter senden im Statusbyte die Stromrichtung.
  24382. In diesem Fall gibt es ein extra Reading "dir_total_consumption" welches standardmä�ig "in" and "out" beinhaltet<BR>
  24383. Hiermit kann dieser Text geändert werden, z.B.:
  24384. <code>attr myOBIS directions {">" => "pwr consuming", "<"=>"pwr feeding"}</code>
  24385. </li><li>
  24386. <code>interval</code><br>
  24387. Abrufinterval der Daten. (Bringt nur im Polling-Mode was)
  24388. </li><li>
  24389. <code>algignTime</code><br>
  24390. Richtet den Zeitpunkt von <interval> nach einer bestimmten Uhrzeit aus.
  24391. </li><li>
  24392. <code>pollingMode</code><br>
  24393. Hiermit wird von Direktbenachrichtigung auf Polling umgestellt.
  24394. Bei Smartmetern, welche von selbst im Sekundentakt senden,
  24395. kann das zu einer spĂźrbaren Senkung der Prozessorleistung fĂźhren.
  24396. </li><li>
  24397. <code>unitReadings</code><br>
  24398. Hängt bei den Readings auch die Einheiten an, zB w, wH, A usw.
  24399. </li><li>
  24400. <code>valueBracket</code><br>
  24401. Legt fest, ob der Wert aus dem ersten oder zweiten Klammernpaar genommen wird.
  24402. Standard ist "second"
  24403. </li>
  24404. <br>
  24405. </ul></ul>
  24406. <p> <p>
  24407. <a name="ONKYO_AVR" id="ONKYO_AVR"></a>
  24408. </p>
  24409. <h3>
  24410. ONKYO_AVR
  24411. </h3>
  24412. <div class='langLinks'>[<a href='commandref.html#ONKYO_AVR'>EN</a> DE]</div>
  24413. <ul>
  24414. Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
  24415. </ul>
  24416. <ul>
  24417. <a href='http://fhem.de/commandref.html#ONKYO_AVR'>ONKYO_AVR</a>
  24418. </ul>
  24419. <p> <p>
  24420. <a name="ONKYO_AVR_ZONE" id="ONKYO_AVR_ZONE"></a>
  24421. </p>
  24422. <h3>
  24423. ONKYO_AVR_ZONE
  24424. </h3>
  24425. <div class='langLinks'>[<a href='commandref.html#ONKYO_AVR_ZONE'>EN</a> DE]</div>
  24426. <ul>
  24427. Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
  24428. </ul>
  24429. <ul>
  24430. <a href='http://fhem.de/commandref.html#ONKYO_AVR_ZONE'>ONKYO_AVR_ZONE</a>
  24431. </ul>
  24432. <p><a name="OPENWEATHER"></a>
  24433. <h3>OPENWEATHER</h3>
  24434. <div class='langLinks'>[<a href='commandref.html#OPENWEATHER'>EN</a> DE]</div>
  24435. <div>
  24436. <ul>
  24437. <a name="OPENWEATHERdefine"></a>
  24438. Das Modul extrahiert Wetterdaten Ăźber die <a href="http://www.wetter.com/apps_und_mehr/website/api/dokumentation">"openweather"-Schnittstelle (API)</a> von <a href="http://www.wetter.com">www.wetter.com</a>.
  24439. <br/>
  24440. Zuvor ist eine Registrierung auf der Webseite notwendig.
  24441. <br/>
  24442. Das Modul nutzt die Perl-Module HTTP::Request, LWP::UserAgent, HTML::Parse und Digest::MD5.
  24443. <br>
  24444. Fßr detailierte Anleitungen bitte die <a href="http://www.fhemwiki.de/wiki/OPENWEATHER"><b>FHEM-Wiki</b></a> konsultieren und ergänzen.
  24445. <br/><br/>
  24446. <b>Define</b>
  24447. <ul>
  24448. <br>
  24449. <code>define &lt;name&gt; OPENWEATHER &lt;Projekt&gt; &lt;Ortscode&gt; &lt;apiSchlĂźssel&gt; [Sprache]</code>
  24450. <br>
  24451. Beispiel:
  24452. <br>
  24453. <code>define wetter OPENWEATHER projectx DE0001020 3c551bc20819c19ee88d</code>
  24454. <br/><br/>
  24455. Um die unteren Parameter zu erhalten, ist die Registrierung eines neuen Projektes auf <a href="http://www.wetter.com/apps_und_mehr/website/api/projekte/">www.wetter.com</a> notwendig.
  24456. <br/><br/>
  24457. <li><code>&lt;Projekt&gt;</code>
  24458. <br>
  24459. Name des benutzerspezifischen 'openweather'-Projektes (erzeugt Ăźber ein Konto auf wetter.com).
  24460. </li><br>
  24461. <li><code>&lt;Ortscode&gt;</code>
  24462. <br>
  24463. Code des Ortes, fĂźr den die Wettervorhersage ben&ouml;tigt wird. Er kann direkt aus der Adresszeile der jeweiligen Vorhersageseite genommen werden. Zum Beispiel <i>DE0009042</i> aus:
  24464. <br>
  24465. <i>http://www.wetter.com/wetter_aktuell/aktuelles_wetter/deutschland/rostock/<u>DE0009042</u>.html</i>
  24466. </li><br>
  24467. <li><code>&lt;apiSchlĂźssel&gt;</code>
  24468. <br>
  24469. Geheimer Schlßssel, den man erhält, nachdem man ein neues 'Openweather'-Projekt auf der Website registriert hat.
  24470. </li><br>
  24471. <li><code>[Sprache]</code>
  24472. <br>
  24473. Optional. Standardsprache fĂźr die Wettersituation ist Deutsch. Mit <i>en</i> kann man zu Englisch und mit <i>es</i> zu Spanisch wechseln.
  24474. </li><br>
  24475. &Uuml;ber die Funktion <code>OPENWEATHER_Html</code> wird ein HTML-Code fĂźr ein vertikal arrangierte Wettervorhersage erzeugt.
  24476. <br>
  24477. Beispiel:
  24478. <br>
  24479. <code>define MyForecast weblink htmlCode { OPENWEATHER_Html("MyWeather") }</code>
  24480. <br/><br/>
  24481. </ul>
  24482. <a name="OPENWEATHERset"></a>
  24483. <b>Set</b>
  24484. <ul>
  24485. <br>
  24486. <li><code>set &lt;name&gt; update</code>
  24487. <br>
  24488. Startet sofort ein neues Auslesen der Wetterdaten.
  24489. </li><br>
  24490. </ul>
  24491. <a name="OPENWEATHERget"></a>
  24492. <b>Get</b>
  24493. <ul>
  24494. <br>
  24495. <li><code>get &lt;name&gt; apiResponse</code>
  24496. <br>
  24497. Zeigt die RĂźckgabewerte der Website an.
  24498. </li><br>
  24499. </ul>
  24500. <a name="OPENWEATHERattr"></a>
  24501. <b>Attribute</b>
  24502. <ul>
  24503. <br>
  24504. <li><code>disable &lt;0 | 1&gt;</code>
  24505. <br>
  24506. Automatische Aktualisierung ist angehalten, wenn der Wert auf 1 gesetzt wird.
  24507. </li><br>
  24508. <li><code>INTERVAL &lt;Abfrageintervall&gt;</code>
  24509. <br>
  24510. Abfrageintervall in Sekunden (Standard und kleinster Wert ist 3600 = 1 Stunde). 0 stoppt die automatische Aktualisierung
  24511. </li><br>
  24512. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  24513. </ul>
  24514. <br/>
  24515. <a name="OPENWEATHERreading"></a>
  24516. <b>Vorhersagewerte</b>
  24517. <ul>
  24518. Wichtig! Die Vorhersagewerte (in Klammern) mßssen zuerst in den Vorhersageeinstellungen des Projektes auf wetter.com ausgewählt werden.
  24519. <br/>&nbsp;<br/>
  24520. <li><b>fc</b><i>0|1|2</i><b>_...</b> - Vorhersagewerte fĂźr <i>heute|morgen|Ăźbermorgen</i></li>
  24521. <li><b>fc</b><i>0</i><b>_...<i>06|11|17|23</i></b> - Vorhersagewerte fĂźr <i>heute</i> um <i>06|11|17|23</i> Uhr</li>
  24522. <li><b>fc</b><i>0</i><b>_chOfRain</b> - <i>heutige</i> Niederschlagswahrscheinlichkeit in % (pc)</li>
  24523. <li><b>fc</b><i>0</i><b>_temp</b><i>Min|Max</i> - <i>Mindest|Maximal</i>temperatur <i>heute</i> in °C (tn, tx)</li>
  24524. <li><b>fc</b><i>0</i><b>_temp</b><i>Min06</i> - <i>Mindest</i>temperatur <i>heute</i> um <i>06:00</i> Uhr in °C</li>
  24525. <li><b>fc</b><i>0</i><b>_valHours</b><i>06</i> - GĂźltigkeitszeitraum der Prognose von <i>heute</i> ab <i>6:00 Uhr</i> in Stunden (p)</li>
  24526. <li><b>fc</b><i>0</i><b>_weather</b> - Wetterzustand <i>heute</i> (w_txt)</li>
  24527. <li><b>fc</b><i>0</i><b>_weatherCode</b> - Code des Wetterzustand <i>heute</i> (w)</li>
  24528. <li><b>fc</b><i>0</i><b>_wday</b> - AbkĂźrzung des Wochentags von <i>heute</i> (d)</li>
  24529. <li><b>fc</b><i>0</i><b>_wind</b> - Windgeschwindigkeit <i>heute</i> in km/h (ws)</li>
  24530. <li><b>fc</b><i>0</i><b>_windDir</b> - Windrichtung <i>heute</i> in ° (Grad) (wd)</li>
  24531. <li><b>fc</b><i>0</i><b>_windDirTxt</b> - Windrichtung <i>heute</i> in Textform (wd_txt)</li>
  24532. <li>etc.</li>
  24533. </ul>
  24534. <br/>
  24535. </ul>
  24536. </div>
  24537. <p><a name="OREGON"></a>
  24538. <h3>OREGON</h3>
  24539. <ul>
  24540. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24541. hier: <a href='commandref.html#OREGON'>OREGON</a><br/>
  24542. </ul>
  24543. <a name="OWAD"></a>
  24544. <h3>OWAD</h3>
  24545. <ul>
  24546. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24547. hier: <a href='commandref.html#OWAD'>OWAD</a><br/>
  24548. </ul>
  24549. <a name="OWCOUNT"></a>
  24550. <h3>OWCOUNT</h3>
  24551. <ul>
  24552. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24553. hier: <a href='commandref.html#OWCOUNT'>OWCOUNT</a><br/>
  24554. </ul>
  24555. <a name="OWDevice"></a>
  24556. <h3>OWDevice</h3>
  24557. <div class='langLinks'>[<a href='commandref.html#OWDevice'>EN</a> DE]</div>
  24558. <ul>
  24559. <br>
  24560. <a name="OWDevicedefine"></a>
  24561. <b>Definition</b>
  24562. <ul>
  24563. <code>define &lt;name&gt; OWDevice &lt;address&gt; [&lt;interval&gt;]</code>
  24564. <br><br>
  24565. Definiert ein 1-Wire- Gerät. 1-Wire- Geräte werden anhand ihrer Adresse &lt;address&gt; definiert. Diese wird
  24566. durch den zuvor eingerichteten <a href="#OWServer">OWServer</a> bereitgestellt.
  24567. <br><br>
  24568. Ger&auml;te hinter 1-wire-Hubs (DS2409, Adressfamilie 1F) m&uuml;ssen &uuml;ber den vollen Pfad adressiert werden, z.B.
  24569. <code>1F.0AC004000000/main/26.A157B6000000</code> (kein f&uuml;hrender Schr&auml;gstrich). Sie werden nicht
  24570. automatisch erkannt.
  24571. <br><br>
  24572. Wird zusätzlich &lt;interval&gt; angegeben, ruft OWServer alle &lt;interval&gt; Sekunden
  24573. einen Datensatz des Gerätes ab.
  24574. <br><br>
  24575. Jedes OWDevice ist ein eigenständiges Gerät. Seine Eigenschaften werden erstmals zum Zeitpunkt der Definition
  24576. abgefragt. Die durch "get" oder "set" erzeugten, sowie durch den zyklischen Abruf gelieferten readings,
  24577. kĂśnnen mit dem Kommando <code><a href="#list">list</a> &lt;name&gt;</code> angezeigt werden.
  24578. <br><br>
  24579. Folgende 1-Wire- und iButton- Komponenten werden aktuell unterstĂźtzt:
  24580. <ul>
  24581. <li>DS2401 - Im Chip integrierte Seriennummer</li>
  24582. <li>DS1990A - iButton mit fester Seriennummer</li>
  24583. <li>DS2405 - Adressierbarer Schalter</li>
  24584. <li>DS18S20 - Hochpräzisions-Digital-Thermosensor</li>
  24585. <li>DS1920 - iButton-Thermosensor</li>
  24586. <li>DS2406, DS2407 - Dualer adressierbarer Schalter mit 1 kbit Speicher</li>
  24587. <li>DS2436 - Batterie-ID/Monitor- Schaltkreis</li>
  24588. <li>DS2423 - Dual-Zählerbaustein mit Speicherfunktion</li>
  24589. <li>DS2450 - Vierfach-A/D Umsetzer</li>
  24590. <li>DS1822 - Econo-Thermosensor</li>
  24591. <li>DS2433 - 4kbit 1-Wire RAM</li>
  24592. <li>DS2415 - Zeitgeber- Schaltkreis </li>
  24593. <li>DS1904 - iButton-Echtzeituhr</li>
  24594. <li>DS2438 - Smart-Batterie-Monitor</li>
  24595. <li>DS2417 - Zeitgeber-Schaltkreis mit Interrupt</li>
  24596. <li>DS18B20 - Thermosensor mit programmierbarer AuflĂśsung</li>
  24597. <li>DS2408 - 8-kanaliger adressierbarer Schalter</li>
  24598. <li>DS2413 - 2-kanaliger adressierbarer Schalter</li>
  24599. <li>DS1825 - Thermosensor mit programmierbarer AuflĂśsung und ID</li>
  24600. <li>EDS0066 - Vielfachsensor fĂźr Temperatur und Luftdruck</li>
  24601. <li>LCD - LCD-Ansteuerung von Louis Swart</li>
  24602. </ul>
  24603. <br>
  24604. Das Hinzufßgen weiterer Geräte ist im Modulcode (subroutine <code>OWDevice_GetDetails</code>) sehr einfach mÜglich.
  24605. <br><br>
  24606. <b>Achtung: Dieses Modul ist weder verwandt noch verwendbar mit den 1-Wire Modulen, deren Namen nur aus Gro�buchstaben bestehen!</b>
  24607. <br><br>
  24608. <b>Bitte beachten:</b> Um einer Verwechselung entgegenzuwirken, stÜ�t das reading "state" der Geräte keine Events an.<br><br>
  24609. Beispiele zur Einrichtung:
  24610. <ul>
  24611. <code>
  24612. define myOWServer OWServer localhost:4304<br><br>
  24613. get myOWServer devices<br>
  24614. 10.487653020800 DS18S20<br><br>
  24615. define myT1 10.487653020800<br><br>
  24616. list myT1 10.487653020800<br>
  24617. Internals:<br>
  24618. ...<br>
  24619. Readings:<br>
  24620. 2012-12-22 20:30:07 temperature 23.1875<br>
  24621. Fhem:<br>
  24622. ...<br>
  24623. getters:<br>
  24624. address<br>
  24625. family<br>
  24626. id<br>
  24627. power<br>
  24628. type<br>
  24629. temperature<br>
  24630. templow<br>
  24631. temphigh<br>
  24632. polls:<br>
  24633. temperature<br>
  24634. setters:<br>
  24635. alias<br>
  24636. templow<br>
  24637. temphigh<br>
  24638. ...<br>
  24639. </code>
  24640. </ul>
  24641. <br>
  24642. </ul>
  24643. <a name="OWDeviceset"></a>
  24644. <b>Set-Befehle</b>
  24645. <ul>
  24646. <li><code>set &lt;name&gt; interval &lt;value&gt;</code>
  24647. <br>
  24648. <code>value</code> ßberschreibt das Abrufintervall der Datensätze. Der Wert ist in Sekunden anzugeben.
  24649. </li><br>
  24650. <li><code>set &lt;name&gt; &lt;reading&gt; &lt;value&gt;</code>
  24651. <br>
  24652. Setzt das &lt;reading&gt; auf &lt;value&gt; fßr das 1-Wire-Gerät &lt;name&gt;. Die verwendbaren Werte werden durch die
  24653. jeweiligen 1-wire-Geräte bestimmt.
  24654. <br><br>
  24655. Beispiel:
  24656. <ul>
  24657. <code>set myT1 templow 5</code><br>
  24658. </ul>
  24659. <br>
  24660. </li>
  24661. </ul>
  24662. <a name="OWDeviceget"></a>
  24663. <b>Get-Befehle</b>
  24664. <ul>
  24665. <code>get &lt;name&gt; &lt;reading&gt; &lt;value&gt;</code>
  24666. <br>
  24667. Holt das &lt;reading&gt; des 1- Wire Geräte- &lt;name&gt;. Die verwendbaren Werte werden durch die
  24668. jeweiligen 1-wire-Geräte bestimmt.
  24669. <br><br>
  24670. Beispiel:
  24671. <ul>
  24672. <code>get myT1 temperature</code><br>
  24673. </ul>
  24674. <br>
  24675. </ul>
  24676. <a name="OWDeviceattr"></a>
  24677. <b>Attribute</b>
  24678. <ul>
  24679. <a name="IODev"></a>
  24680. <li>IODev:
  24681. Bestimmt die OWServer-Instanz, welche fĂźr das Senden und Abrufen der Daten
  24682. eines OWDevice-Gerätes genutzt werden soll. Hinweis: Während des Starts
  24683. ordnet FHEM die neuen OWDevice-Geräte der jeweils zuletzt definierten OWServer-Instanz zu.
  24684. Deshalb verfährt man idealerweise so, dass man zuerst eine OWServer-Instanz und
  24685. anschlie�end die zugehÜrigen OWDevice-Geräte definiert. Danach definiert man die
  24686. nächste OWServer-Instanz, gefolgt von den zugehÜrigen OWDevice-Geräten, usw.
  24687. </li>
  24688. <li>trimvalues: Entfernt voran- und nachgestellte Leerzeichen aus den readings. Standartwert ist 1 (ein).</li>
  24689. <li>cstrings: Interpretiert die readings als C-String, d.h. h&ouml;rt mit dem ersten 0-Byte zu lesen auf. Standardwert ist 0 (off).</li>
  24690. <li>polls: Eine per Komma getrennte Liste der abzurufenden readings. Mit diesem Attribut unterdrßckt man alle standartmä�ig abgerufenen readings und ersetzt sie durch die eigene Zusammenstellung.</li>
  24691. <li>interfaces: Ersetzt die durch dieses Gerät erzeugten Interfaces.</li>
  24692. <li>model: Angabe des Gerätetyps, z.B.: DS18S20.</li>
  24693. <li>resolution: Angabe der AuflĂśsung fĂźr die Temperaturmessung in bits, zur VerfĂźgung stehen: 9, 10, 11 oder 12.
  24694. Hinweis: Geringere AuflĂśsungen bewirken schnellere Reaktionen des Busses. Dies kann z.B. bei umfangreichen 1-Wire- Installationen hilfreich sein,
  24695. um eventuelle Stillstände von FHEM zu vermindern.</li>
  24696. <li><a href="#eventMap">eventMap</a></li>
  24697. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  24698. </ul>
  24699. <br><br>
  24700. </ul>
  24701. <p><a name="OWFS"></a>
  24702. <h3>OWFS</h3>
  24703. <ul>
  24704. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24705. hier: <a href='commandref.html#OWFS'>OWFS</a><br/>
  24706. </ul>
  24707. <a name="OWID"></a>
  24708. <h3>OWID</h3>
  24709. <ul>
  24710. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24711. hier: <a href='commandref.html#OWID'>OWID</a><br/>
  24712. </ul>
  24713. <a name="OWLCD"></a>
  24714. <h3>OWLCD</h3>
  24715. <ul>
  24716. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24717. hier: <a href='commandref.html#OWLCD'>OWLCD</a><br/>
  24718. </ul>
  24719. <a name="OWMULTI"></a>
  24720. <h3>OWMULTI</h3>
  24721. <ul>
  24722. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24723. hier: <a href='commandref.html#OWMULTI'>OWMULTI</a><br/>
  24724. </ul>
  24725. <a name="OWSWITCH"></a>
  24726. <h3>OWSWITCH</h3>
  24727. <ul>
  24728. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24729. hier: <a href='commandref.html#OWSWITCH'>OWSWITCH</a><br/>
  24730. </ul>
  24731. <a name="OWServer"></a>
  24732. <h3>OWServer</h3>
  24733. <div class='langLinks'>[<a href='commandref.html#OWServer'>EN</a> DE]</div>
  24734. <ul>
  24735. <br>
  24736. <a name="OWServerdefine"></a>
  24737. <b>Definition</b>
  24738. <ul>
  24739. <code>define &lt;name&gt; OWServer &lt;protocol&gt; [&lt;version&gt;]</code>
  24740. <br><br>
  24741. Definiert eine logische OWServer-Instanz, die sich mit einem owserver
  24742. verbindet. owserver ist die Serverkomponente des
  24743. <a href="http://owfs.org">1-Wire Dateisystems</a>. Sie ermĂśglicht den Zugriff auf
  24744. alle 1-Wire-Busteilnehmer eines Systems.
  24745. &lt;protocol&gt; hat das Format &lt;hostname&gt;:&lt;port&gt;.
  24746. Nähere Informationen dazu gibt es in
  24747. der <a href="http://owfs.org/index.php?page=owserver_protocol">owserver Dokumentation</a>.
  24748. <p>
  24749. Die OWServer-Instanz verwendet
  24750. <a href="http://owfs.cvs.sourceforge.net/viewvc/owfs/owfs/module/ownet/perl5/OWNet/lib/OWNet.pm">OWNet.pm von Sourceforge</a>,
  24751. um sich mit dem owserver zu verbinden.
  24752. Gegenw&auml;rtig werden OWNet-Module f&uuml;r die Versionen 2.8p17 and 3.1p5
  24753. mit FHEM verteilt. Man kann manuell weitere Versionen hinzuf&uuml;gen,
  24754. indem man OWNet.pm aus
  24755. <a href="https://sourceforge.net/projects/owfs/files/owfs/">einer der
  24756. verf&uuml;gbaren Versionen</a> extrahiert und als
  24757. <code>FHEM/lib/OWNet-&lt;version&gt.pm</code> in der FHEM-Verzeichnisstruktur
  24758. speichert.
  24759. <p>
  24760. Die erste Verbindung mit dem owserver wird mit der Version 3.1p5 aufgebaut,
  24761. es sei denn, dass man ausdr&uuml;cklich eine andere Version mit dem
  24762. optionalen Parameter
  24763. <code>&lt;version&gt;</code> vorschl&auml;gt. Man sollte eine
  24764. OWNet-Modulversion vorschlagen, die der tats&auml;chlichen Version von
  24765. owserver entspricht, falls FHEM nach dem Verbindungsaufbau zum owserver
  24766. h&auml;ngt.
  24767. <p>
  24768. Die OWServer-Instanz erkennt die Version von owserver automatisch und
  24769. w&auml;hlt das passende OWNet-Modul aus der Liste der verf&uuml;gbaren
  24770. OWNet-Module aus. Wenn kein passendes OWNet-Modul gefunden wird, wird die
  24771. urspr&uuml;nglich vorgeschlagene Version verwendet. Die alptraumhafte Situation
  24772. mit zwei OWServer-Instanzen, die sich mit owserver-Instanzen in
  24773. unterschiedlichen Versionen verbinden, wird nicht korrekt gehandhabt.
  24774. Die Versionen von Server und Modul werden zum Nachschauen in den Internals der
  24775. OWServer-Instanz gespeichert.
  24776. <p>
  24777. Die ow*-Pakete in der Version 3.1p5 bei Debian Stretch und
  24778. die ow*-Pakete in der Version 2.8p17 bei Debian Jessie sind gut.
  24779. Die ow*-Pakete in der Version 2.9 bei Debian Jessie in Kombination mit den
  24780. OWNet-Modulen bei FHEM k&ouml;nnen Auff&auml;lligkeiten zeigen (R&uuml;ckmeldung
  24781. willkommen). F&uuml;r
  24782. Debian Jessie kann man
  24783. <a href="http://forum.fhem.de/index.php?action=dlattach;topic=12219.0;attach=2463">owfs_2.8p17-1_all.zip</a>
  24784. auspacken und owserver, Abh&auml;ngigkeiten und was man sonst so braucht
  24785. mittels <code>dpkg -i &lt;package&gt;.deb</code> installieren.
  24786. <p>
  24787. Bitte Auff&auml;lligkeiten und Erfolgsmeldungen zu Versionen im
  24788. <a href="https://forum.fhem.de/index.php/board,26.0.html">1Wire-Board des FHEM-Forums</a> berichten.
  24789. <p>
  24790. Eine typische funktionierende Konfigurationsdatei <code>/etc/owfs.conf</code> sieht so aus:<p>
  24791. <code>
  24792. # server uses device /dev/onewire<br>
  24793. server: device = /dev/onewire<br>
  24794. # clients other than server use server<br>
  24795. ! server: server = localhost:4304<br>
  24796. # port<br>
  24797. server: port = 4304<br>
  24798. # owhttpd<br>
  24799. http: port = 2121<br>
  24800. # owftpd<br>
  24801. ftp: port = 2120<br>
  24802. </code>
  24803. <p>
  24804. Die vorhandenen 1-Wire- Busteilnehmer werden als <a href="#OWDevice">OWDevice</a> -Geräte definiert.
  24805. Wenn <a href="#autocreate">autocreate</a> aktiviert ist, werden beim Start von FHEM alle Geräte automatisch erkannt und eingerichtet.
  24806. <br><br>
  24807. <b>Achtung: Dieses Modul ist weder verwandt noch verwendbar mit den 1-Wire Modulen, deren Namen nur aus Gro�buchstaben bestehen!</b>
  24808. <br><br>
  24809. Beispiele fĂźr die Einrichtung:
  24810. <ul>
  24811. <code>define myLocalOWServer OWServer localhost:4304</code><br>
  24812. <code>define myRemoteOWServer OWServer 192.168.1.100:4304</code><br>
  24813. <code>define myRemoteOWServer OWServer raspi:4304</code><br>
  24814. </ul>
  24815. <br>
  24816. Hinweis: Sollten keine Geräte erkannt werden, kann man versuchen in der owserver- Konfigurationsdatei (owfs.conf) zwei Servereinträge anzulegen:
  24817. Einen mit <code>localhost</code> und einen mit dem "FQDN", bzw. dem Hostnamen, oder der IP-Adresse des Computers, auf dem die Software "owserver" läuft.
  24818. <br><br>
  24819. </ul>
  24820. <a name="OWServerset"></a>
  24821. <b>Set- Befehle</b>
  24822. <ul>
  24823. <code>set &lt;name&gt; &lt;value&gt;</code>
  24824. <br><br>
  24825. wobei <code>value</code> fĂźr einen der folgenden Befehle steht:<br><br>
  24826. <li><code>reopen</code><br>
  24827. Erneuert die Verbindung zum owserver.
  24828. </li>
  24829. <li>owserver (OWFS) -spezifische Einstellungen:
  24830. <ul>
  24831. <li><code>timeout/directory</code></li>
  24832. <li><code>timeout/ftp</code></li>
  24833. <li><code>timeout/ha7</code></li>
  24834. <li><code>timeout/network</code></li>
  24835. <li><code>timeout/presence</code></li>
  24836. <li><code>timeout/serial</code></li>
  24837. <li><code>timeout/server</code></li>
  24838. <li><code>timeout/stable</code></li>
  24839. <li><code>timeout/uncached</code></li>
  24840. <li><code>timeout/usb</code></li>
  24841. <li><code>timeout/volatile</code></li>
  24842. <li><code>timeout/w1</code></li>
  24843. <li><code>units/pressure_scale</code></li>
  24844. <li><code>units/temperature_scale</code></li>
  24845. </ul>
  24846. </li>
  24847. Nähere Informationen zu diesen Einstellungen gibt es im <a href="http://owfs.org/uploads/owserver.1.html#sect41">owserver- Manual</a>.
  24848. <br>
  24849. </ul>
  24850. <br><br>
  24851. <a name="OWServerget"></a>
  24852. <b>Get- Befehle</b>
  24853. <ul>
  24854. <code>get &lt;name&gt; &lt;value&gt;</code>
  24855. <br><br>
  24856. wobei <code>value</code> fĂźr einen der folgenden Befehle steht:<br><br>
  24857. <li><code>devices</code><br>
  24858. Gibt eine Liste der Adressen und Typen aller von owserver erkannten Geräte aus. Au�erdem
  24859. werden die entsprechenden <a href="#OWDevice">OWDevice-</a> Namen angezeigt, soweit sie bereits definiert sind.
  24860. </li>
  24861. <li><code>errors</code><br>
  24862. Liefert eine Fehlerstatistik zurĂźck.</li>
  24863. <li>owserver (OWFS) -spezifische Einstellungen:
  24864. <ul>
  24865. <li><code>/settings/timeout/directory</code></li>
  24866. <li><code>/settings/timeout/ftp</code></li>
  24867. <li><code>/settings/timeout/ha7</code></li>
  24868. <li><code>/settings/timeout/network</code></li>
  24869. <li><code>/settings/timeout/presence</code></li>
  24870. <li><code>/settings/timeout/serial</code></li>
  24871. <li><code>/settings/timeout/server</code></li>
  24872. <li><code>/settings/timeout/stable</code></li>
  24873. <li><code>/settings/timeout/uncached</code></li>
  24874. <li><code>/settings/timeout/usb</code></li>
  24875. <li><code>/settings/timeout/volatile</code></li>
  24876. <li><code>/settings/timeout/w1</code></li>
  24877. <li><code>/settings/units/pressure_scale</code></li>
  24878. <li><code>/settings/units/temperature_scale</code></li>
  24879. <li><code>/uncached/alarm</code></li>
  24880. </ul>
  24881. </li>
  24882. Nähere Informationen zu diesen Einstellungen gibt es im <a href="http://owfs.org/uploads/owserver.1.html#sect41">owserver- Manual</a>.
  24883. <br>
  24884. </ul>
  24885. <p>
  24886. <a name="OWServerattr"></a>
  24887. <b>Attribute</b>
  24888. <ul>
  24889. <li>nonblocking<br>
  24890. Holt alle readings (OWServer / <a href="#OWDevice">OWDevice</a>) Ăźber einen Tochterprozess. Dieses Verfahren stellt sicher,
  24891. dass FHEM während der Kommunikation mit owserver nicht angehalten wird.<br>
  24892. Beispiel:<br>
  24893. <code> attr &lt;name&gt; nonblocking 1</code>
  24894. </li>
  24895. <li><a href="#eventMap">eventMap</a></li>
  24896. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  24897. </ul>
  24898. <br>
  24899. Hinweis: Falls in FHEM trotzdem ungewÜhnliche Stillstände auftreten, sollte das Attribut <code>nonblocking</code> wieder deaktiviert werden.<br>
  24900. </ul>
  24901. <p><a name="OWTEMP"></a>
  24902. <h3>OWTEMP</h3>
  24903. <ul>
  24904. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24905. hier: <a href='commandref.html#OWTEMP'>OWTEMP</a><br/>
  24906. </ul>
  24907. <a name="OWTHERM"></a>
  24908. <h3>OWTHERM</h3>
  24909. <ul>
  24910. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24911. hier: <a href='commandref.html#OWTHERM'>OWTHERM</a><br/>
  24912. </ul>
  24913. <a name="OWVAR"></a>
  24914. <h3>OWVAR</h3>
  24915. <ul>
  24916. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24917. hier: <a href='commandref.html#OWVAR'>OWVAR</a><br/>
  24918. </ul>
  24919. <a name="OWX"></a>
  24920. <h3>OWX</h3>
  24921. <div class='langLinks'>[<a href='commandref.html#OWX'>EN</a> DE]</div>
  24922. <ul>
  24923. <a href="http://fhemwiki.de/wiki/Interfaces_f%C3%BCr_1-Wire">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#OWX">OWX</a>
  24924. </ul>
  24925. <p><a name="OWX_ASYNC"></a>
  24926. <h3>OWX_ASYNC</h3>
  24927. <ul>
  24928. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24929. hier: <a href='commandref.html#OWX_ASYNC'>OWX_ASYNC</a><br/>
  24930. </ul>
  24931. <a name="OWX_CCC"></a>
  24932. <h3>OWX_CCC</h3>
  24933. <div class='langLinks'>[<a href='commandref.html#OWX_CCC'>EN</a> DE]</div>
  24934. <ul>
  24935. <a href="http://fhemwiki.de/wiki/Interfaces_f%C3%BCr_1-Wire">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#OWX">OWX</a>
  24936. </ul>
  24937. <p><a name="OWX_FRM"></a>
  24938. <h3>OWX_FRM</h3>
  24939. <div class='langLinks'>[<a href='commandref.html#OWX_FRM'>EN</a> DE]</div>
  24940. <ul>
  24941. <a href="http://fhemwiki.de/wiki/Interfaces_f%C3%BCr_1-Wire">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#OWX">OWX</a>
  24942. </ul>
  24943. <p><a name="OWX_SER"></a>
  24944. <h3>OWX_SER</h3>
  24945. <div class='langLinks'>[<a href='commandref.html#OWX_SER'>EN</a> DE]</div>
  24946. <ul>
  24947. <a href="http://fhemwiki.de/wiki/Interfaces_f%C3%BCr_1-Wire">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#OWX">OWX</a>
  24948. </ul>
  24949. <p><a name="OWX_TCP"></a>
  24950. <h3>OWX_TCP</h3>
  24951. <div class='langLinks'>[<a href='commandref.html#OWX_TCP'>EN</a> DE]</div>
  24952. <ul>
  24953. <a href="http://fhemwiki.de/wiki/Interfaces_f%C3%BCr_1-Wire">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#OWX">OWX</a>
  24954. </ul>
  24955. <p><a name="PCA301"></a>
  24956. <h3>PCA301</h3>
  24957. <ul>
  24958. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24959. hier: <a href='commandref.html#PCA301'>PCA301</a><br/>
  24960. </ul>
  24961. <a name="PHC"></a>
  24962. <h3>PHC</h3>
  24963. <ul>
  24964. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  24965. hier: <a href='commandref.html#PHC'>PHC</a><br/>
  24966. </ul>
  24967. <a name="PHILIPS_AUDIO"></a>
  24968. <h3>PHILIPS_AUDIO</h3>
  24969. <div class='langLinks'>[<a href='commandref.html#PHILIPS_AUDIO'>EN</a> DE]</div>
  24970. <ul>
  24971. <a name="PHILIPS_AUDIOdefine"></a>
  24972. <b>Define</b><br><br>
  24973. <ul>
  24974. <code>
  24975. define &lt;name&gt; PHILIPS_AUDIO &lt;device model&gt; &lt;ip-address&gt; [&lt;status_interval&gt;]<br><br>
  24976. define &lt;name&gt; PHILIPS_AUDIO &lt;device model&gt; [&lt;off_status_interval&gt;] [&lt;on_status_interval&gt;]
  24977. </code>
  24978. <br><br>
  24979. Mit Hilfe dieses Moduls lassen sich Philips Audio Netzwerk Player wie z.B. MCi, Streamium oder Fidelio im lokalen Netzwerk steuern.<br>
  24980. Ger&auml;te, die &uuml;ber die myRemote App oder einen internen HTTP Server am Port 8889 sollten theoretisch ebenfalls bedient werden k&ouml;nnen.<br>
  24981. (http://[ip Nummer des Ger&auml;tes]:8889/index)<br>
  24982. <br>
  24983. (Getestet mit: AW9000, NP3500, NP3700 und NP3900)
  24984. <br><br>
  24985. Beispiel:<br>
  24986. <ul><br>
  24987. <code>
  24988. define PHAUDIO_player PHILIPS_AUDIO NP3900 192.168.0.15
  24989. <br>
  24990. <br>
  24991. # 60 Sekunden Intervall<br>
  24992. define PHAUDIO_player PHILIPS_AUDIO NP3900 192.168.0.15 <b>60</b>
  24993. <br>
  24994. <br>
  24995. # 60 Sekunden Intervall f&uuml;r "off" und 10 Sekunden f&uuml;r "on"<br>
  24996. define PHAUDIO_player PHILIPS_AUDIO NP3900 192.168.0.15 <b>60 10</b>
  24997. </code>
  24998. <br><br>
  24999. <i>Bemerkung: Aufgrund der relativ langsamen Verarbeitung von Befehlen durch den Player selbst wurde das minimale Intervall <b>auf 5 Sekunden limitiert</b>. Dadurch sollten potentielle Ger&auml;tefreezes reduziert werden.</i>
  25000. </ul>
  25001. </ul><br>
  25002. <a name="PHILIPS_AUDIOset"></a>
  25003. <b>Set</b>
  25004. <ul>
  25005. <code>
  25006. set &lt;name&gt; &lt;command&gt; [&lt;parameter&gt;]
  25007. </code>
  25008. <br><br>
  25009. <i>Bemerkung: Befehle und Parameter sind case-sensitive</i><br>
  25010. <ul><br>
  25011. <li><b>favoriteAdd</b> &ndash; F&uuml;gt den aktuellen Audiostream zu Favoriten hinzu</li>
  25012. <li><b>favoriteRemove</b> &ndash; L&ouml;scht den aktuellen Audiostream aus den Favoriten</li>
  25013. <li><b>getFavorites</b> &ndash; Liest aus die gespeicherten Favoriten aus dem Ger&auml;t (kann einige Zeit dauern...)</li>
  25014. <li><b>getMediaRendererDesc</b> &ndash; Liest aus Ger&auml;tspezifische Informationen aus (siehe auch deviceInfo reading)</li>
  25015. <li><b>getPresets</b> &ndash; Liest aus die gespeicherten Presets aus dem Ger&auml;t (kann einige Zeit dauern...)</li>
  25016. <li><b>input</b> &ndash; Schaltet auf den folgenden Eingang</li>
  25017. <ul>
  25018. <li><b>analogAux</b> &ndash; AUX input (nur AW9000)</li>
  25019. <li><b>digital1Coaxial</b> &ndash; digital coaxial input (nur AW9000)</li>
  25020. <li><b>digital2Optical</b> &ndash; digital optical input (nur AW9000)</li>
  25021. <li><b>internetRadio</b> &ndash; Internet Radio</li>
  25022. <li><b>mediaLibrary</b> &ndash; Media Library (UPnP/DLNA server) (nicht verf&uuml;gbar beim AW9000)</li>
  25023. <li><b>mp3Link</b> &ndash; Analoger MP3 Link (nicht verf&uuml;gbar beim AW9000)</li>
  25024. <li><b>onlineServices</b> &ndash; Online Services</li>
  25025. </ul>
  25026. <li><b>mute [ on | off ]</b> &ndash; Stummschaltung (an/aus)</li>
  25027. <li><b>player</b> &ndash; Player-Befehle</li>
  25028. <ul>
  25029. <li><b>next</b> &ndash; N&auml;chstee Audiostream</li>
  25030. <li><b>prev</b> &ndash; Letzter Audiostream</li>
  25031. <li><b>play-pause</b> &ndash; Play/pause des aktuellen Audiostreams</li>
  25032. <li><b>stop</b> &ndash; Stoppt das Abspielen des aktuellen Audiostreams</li>
  25033. </ul>
  25034. <li><b>repeat [ single | all | off]</b> &ndash; Stellt den repeat mode ein</li>
  25035. <li><b>selectFavorite [ name ]</b> &ndash; W&auml;hlt einen Favoriten. Leer falls keine Favoriten vorhanden (s. getFavorites)</li>
  25036. <li><b>selectFavoriteByNumber [ number ]</b> &ndash; W&auml;hlt einen Favoriten anhand seiner Speichernummer. Leer falls keine Favoriten vorhanden (s. getFavorites)</li>
  25037. <li><b>selectPreset [ name ]</b> &ndash; W&auml;hlt einen Preset. Leer falls keine Presets vorhanden (s. getPresets)</li>
  25038. <li><b>selectPresetByNumber [ number ]</b> &ndash; W&auml;hlt einen Preset anhand seiner Speichernummer. Leer falls keine Presets vorhanden (see also getPresets)</li>
  25039. <li><b>selectStream [ name ]</b> &ndash; Context-sensitive. W&auml;hlt einen Audiostream. H&auml;ngt vom aktuellen Inhalt der Playerlist ab. Ein 'c'-Pr&auml;fix repr&auml;sentiert einen 'Container' (Directory). ein 'i'-Pr&auml;fix repr&auml;sentiert ein 'Item' (audio stream).</li></li>
  25040. <li><b>shuffle [ on | off ]</b> &ndash; W&auml;hlt den gew&uuml;nschten Shuffle Modus</li>
  25041. <li><b>standbyButton</b> &ndash; Emuliert den standby-Knopf. Toggelt zwischen standby und power on</li>
  25042. <li><b>volume</b> &ndash; Setzt die relative Lautst&auml;rke 0...100%</li>
  25043. <li><b>volumeDown</b> &ndash; Setzt die Lautst&auml;rke um ein Dekrement herunter</li>
  25044. <li><b>volumeStraight</b> &ndash; Setzt die devicespezifische Lautst&auml;rke 0...64</li>
  25045. <li><b>volumeUp</b> &ndash; Setzt die Lautst&auml;rke um ein Inkrement herauf</li>
  25046. </ul>
  25047. </ul>
  25048. <br>
  25049. <a name="PHILIPS_AUDIOget"></a>
  25050. <b>Get</b>
  25051. <ul>
  25052. <code>
  25053. get &lt;name&gt; &lt;reading&gt &lt;reading name&gt;
  25054. </code>
  25055. <ul>
  25056. <br>
  25057. <li><b>deviceInfo</b> &ndash; Liefert devicespezifische Information</li>
  25058. <li><b>reading</b></li>
  25059. <ul>
  25060. <li><b>input</b> &ndash; Liefert den aktuellen Eingang oder '-' falls kein Audiostream aktiv</li>
  25061. <li><b>listItem_xxx</b> &ndash; Liefert Eintr&auml;ge der Playerliste (limitiert auf 999 Eintr&auml;ge)</li>
  25062. <li><b>networkError</b> &ndash; Liefert einen potentiellen Netzwerkfehler</li>
  25063. <li><b>networkRequest</b> &ndash; Liefert die aktuelle Netzwerkaktivit&auml;t (idle/busy)</li>
  25064. <li><b>power</b> &ndash; Liefert den Power-Status (on/off)</li>
  25065. <li><b>playerAlbum</b> &ndash; Liefert den Albumnamen des aktiven Audiostreams</li>
  25066. <li><b>playerAlbumArt</b> &ndash; Liefert die Albumart des aktiven Audiostreams</li>
  25067. <li><b>playerListStatus</b> &ndash; Liefert den aktuellen Zusatand der Playlist (busy/ready)</li>
  25068. <li><b>playerListTotalCount</b> &ndash; Liefert die Anzahl der Playlisteintr&auml;ge</li>
  25069. <li><b>playerPlayTime</b> &ndash; Liefert die aktuell Audiostreamspieldauer</li>
  25070. <li><b>playerPlaying</b> &ndash; Zeigt an, ob Audiostream abgespielt wird (yes/no)</li>
  25071. <li><b>playerRadioStation</b> &ndash; Liefert den Stationsnamen des Radiosenders</li>
  25072. <li><b>playerRadioStationInfo</b> &ndash; Liefert zus&auml;tzliche Informationen des Radiosenders</li>
  25073. <li><b>playerRepeat</b> &ndash; Zeigt den Reapeat Mode an (off/single/all)</li>
  25074. <li><b>playerShuffle</b> &ndash; Zeigt den aktuellen Shuffle mode an (on/off)</li>
  25075. <li><b>playerState</b> &ndash; Zeigt den Playerzustand an (home/browsing/playing)</li>
  25076. <li><b>playerStreamFavorite</b> &ndash; Zeigt an, ob aktueller Audiostream ein Favorit ist (yes/no)</li>
  25077. <li><b>playerStreamRating</b> &ndash; Zeigt das rating des Audiostreams</li>
  25078. <li><b>playerTitle</b> &ndash; Zeigt den Titel des Audiostreams an</li>
  25079. <li><b>playerTotalTime</b> &ndash; Zeigt die Audiostreamdauer an</li>
  25080. <li><b>presence</b> &ndash; Liefert den presence status (present/absent)</li>
  25081. <li><b>state</b> &ndash; Lifert den aktuellen Ger&auml;testatus (on/off)</li>
  25082. <li><b>totalFavorites</b> &ndash; Liefert die Anzahl gepseicherter Favoriten (s. getFavorites)</li>
  25083. <li><b>totalPresets</b> &ndash; Liefert die Anzahl gepseicherter Presets (see getPresets)</li>
  25084. <li><b>volume</b> &ndash; Liefert die relative Lutst&auml;rke (0...100%)</li>
  25085. <li><b>volumeStraight</b> &ndash; Liefert die devicespezifische Lautst&auml;rke (0...64)</li>
  25086. </ul>
  25087. </ul>
  25088. <br>
  25089. </ul>
  25090. <a name="PHILIPS_AUDIOattr"></a>
  25091. <b>Attribute</b><br><br>
  25092. <ul>
  25093. <ul>
  25094. <li><b>autoGetFavorites</b> &ndash; Automatisches Auslesen der Favoriten beim Modulstart falls keine vorhanden (default off)</li>
  25095. <li><b>autoGetPresets</b> &ndash; Automatisches Auslesen der Presets beim Modulstart falls keine vorhanden (default off)</li>
  25096. <li><b>do_not_notify</b></li>
  25097. <li><b>httpBufferTimeout</b> &ndash; Optionalles Attribut f&uuml;r den internen http buffer timeount (default 10 Sekunden)</li>
  25098. <li><b>maxListItems</b> &ndash; Definiert die max. Anzahl der anzuzeigenden Playerlisteintr&auml;ge (default 100)</li>
  25099. <li><b>playerBrowsingTimeout</b> &ndash; Definiert den Inaktivit&auml;ts-Timeout beim Browsen der Playerlist. Nach diesem Timeout f&auml;llt das Modul in den "home"-State zur&uuml;ck. Die Playerreadings werden wieder aktualisiert (default 180 Sekunden)</li>
  25100. <li><b>readingFnAttributes</b></li>
  25101. <li><b>requestTimeout</b> &ndash; Optionalles Attribut f&uuml;r http responses (default 4 Sekunden)</li>
  25102. </ul>
  25103. </ul>
  25104. </ul>
  25105. <p><a name="PHTV"></a>
  25106. <h3>PHTV</h3>
  25107. <div class='langLinks'>[<a href='commandref.html#PHTV'>EN</a> DE]</div>
  25108. <ul>
  25109. Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden.
  25110. Die englische Version ist hier zu finden:
  25111. </ul>
  25112. <ul>
  25113. <a href='http://fhem.de/commandref.html#PHTV'>PHTV</a>
  25114. </ul>
  25115. <p><a name="PID20"></a>
  25116. <h3>PID20</h3>
  25117. <ul>
  25118. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  25119. hier: <a href='commandref.html#PID20'>PID20</a><br/>
  25120. </ul>
  25121. <a name="PIFACE"></a>
  25122. <h3>PIFACE</h3>
  25123. <ul>
  25124. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  25125. hier: <a href='commandref.html#PIFACE'>PIFACE</a><br/>
  25126. </ul>
  25127. <a name="PIONEERAVR"></a>
  25128. <h3>PIONEERAVR</h3>
  25129. <div class='langLinks'>[<a href='commandref.html#PIONEERAVR'>EN</a> DE]</div>
  25130. <ul>
  25131. Dieses Modul erlaubt es einen Pioneer AV Receiver via Fhem zu steuern (nur die MAIN-Zone, etwaige andere Zonen können mit dem Modul PIONEERAVRZONE gesteuert werden) wenn eine Datenverbindung via Ethernet oder RS232 hergestellt werden kann.
  25132. Es erlaubt Fhem
  25133. <ul>
  25134. <li>Den Receiver ein/auszuschalten</li>
  25135. <li>die Lautstärke zu ändern</li>
  25136. <li>die Eingangsquelle auszuwählen</li>
  25137. <li>und weitere Parameter zu kontrollieren</li>
  25138. </ul>
  25139. <br><br>
  25140. Dieses Modul basiert auf der <a href="http://www.pioneerelectronics.com/StaticFiles/PUSA/Files/Home%20Custom%20Install/Elite%20&%20Pioneer%20FY14AVR%20IP%20&%20RS-232%207-31-13.zip">Pioneer documentation</a>
  25141. und ist mit einem Pioneer AV Receiver VSX-923 von <a href="http://www.pioneer.de">Pioneer</a> getestet.
  25142. <br><br>
  25143. Achtung: Dieses Modul benötigt die Perl-Module Device::SerialPort oder Win32::SerialPort
  25144. wenn die Datenverbindung via USB bzw. rs232 Port erfolgt.
  25145. <br><br>
  25146. Dieses Modul versucht
  25147. <ul>
  25148. <li>die Datenverbindung zwischen Fhem und Pioneer AV Receiver offen zu halten. Wenn die Verbindung abbricht, versucht das Modul
  25149. einmal die Verbindung wieder herzustellen</li>
  25150. <li>Daten vom/zum Pioneer AV Receiver dem Modul PIONEERAVRZONE (für die Kontrolle weiterer Zonen des Pioneer AV Receiver)
  25151. zur Verfügung zu stellen.</li>
  25152. </ul>
  25153. Solange die Datenverbindung zwischen Fhem und dem Pioneer AV Receiver offen ist, kann kein anderes Gerät (z.B. ein Smartphone)
  25154. auf dem gleichen Port eine Verbindung zum Pioneer AV Receiver herstellen.
  25155. Einige Pioneer AV Receiver bieten mehr als einen Port für die Datenverbindung an. Pioneer empfiehlt Port 23 sowie 49152-65535, "Invalid number:00000,08102".
  25156. <br><br>
  25157. <a name="PIONEERAVRdefine"></a>
  25158. <b>Define</b>
  25159. <ul>
  25160. <code>define &lt;name&gt; PIONEERAVR telnet &lt;IPAddress:Port&gt;</code><br><br>
  25161. or<br><br>
  25162. <code>define &lt;name&gt; PIONEERAVR serial &lt;SerialDevice&gt;[&lt;@BaudRate&gt;]</code>
  25163. <br><br>
  25164. Definiert ein Fhem device für einen Pioneer AV Receiver (Kommunikationsschnittstelle und Steuerung der Main - Zone). Die Schlüsselwörter <code>telnet</code> bzw.
  25165. <code>serial</code> sind fix. Der Standard Port für die Ethernet Verbindung bei Pioneer AV Receiver ist 23
  25166. (laut der oben angeführten Pioneer Dokumentation) - oder 8102 (laut Fhem-Forumsberichten).<br>
  25167. Note: PIONEERAVRZONE-Devices zur Steuerung der Zone2, Zone3 und/oder HD-Zone werden per autocreate beim Eintreffen der ersten Nachricht für eine der Zonen erzeugt.
  25168. <br><br>
  25169. Beispiele:
  25170. <ul>
  25171. <code>define VSX923 PIONEERAVR telnet 192.168.0.91:23</code><br>
  25172. <code>define VSX923 PIONEERAVR serial /dev/ttyS0</code><br>
  25173. <code>define VSX923 PIONEERAVR serial /dev/ttyUSB0@9600</code><br>
  25174. </ul>
  25175. <br>
  25176. </ul>
  25177. <a name="PIONEERAVRset"></a>
  25178. <b>Set</b>
  25179. <ul>
  25180. <code>set &lt;name&gt; &lt;was&gt; [&lt;value&gt;]</code>
  25181. <br><br>
  25182. "was" ist eines von
  25183. <li><b>bass <-6 ... 6></b> - Bass von -6dB bis + 6dB (funktioniert nur wenn tone = on und der ListeningMode es erlaubt)</li>
  25184. <li><b>channel <1 ... 9></b> - Setzt den Tuner Preset ("gespeicherten Sender"). Nur verfügbar, wenn Input = 2 (Tuner), wie in http://www.fhemwiki.de/wiki/DevelopmentGuidelinesAV beschrieben</li>
  25185. <li><b>channelDown</b> - Setzt den nächst niedrigeren Tuner Preset ("gespeicherten Sender"). Wenn vorher channel = 2, so wird nachher channel = 1. Nur verfügbar, wenn Input = 2 (Tuner).</li>
  25186. <li><b>channelStraight <A1...G9></b> - </li> Setzt den Tuner Preset ("gespeicherten Sender") mit Werten, wie sie im Display des Pioneer AV Receiver angezeigt werden (z.B. A1). Nur verfügbar, wenn Input = 2 (Tuner).
  25187. <li><b>channelUp</b> - Setzt den nächst höheren Tuner Preset ("gespeicherten Sender"). Nur verfügbar, wenn Input = 2 (Tuner).</li>
  25188. <li><b>down</b> - "Pfeiltaste nach unten". Für die gleichen Eingangsquellen wie "play"</li>
  25189. <li><b>enter</b> - "Eingabe" - Entspricht der "Enter-Taste" der Fernbedienung. Für die gleichen Eingangsquellen wie "play"</li>
  25190. <li><b>eq <on|off></b> - Schalten den Equalizer ein oder aus.</li>
  25191. <li><b>fwd</b> - Schnellvorlauf. Für die gleichen Eingangsquellen wie "play"</li>
  25192. <li><b>hdmiOut <1+2|1|2|off></b> - Schaltet die HDMI-Ausgänge 1 und/oder 2 des Pioneer AV Receivers ein bzw. aus.</li>
  25193. <li><b>input <nicht am Pioneer AV Receiver deaktivierte Eingangsquelle></b> - Schaltet die Eingangsquelle (z.B. CD, HDMI 1,...) auf die Ausgänge der Main-Zone. Die Liste der verfügbaren (also der nicht deaktivierten)
  25194. Eingangsquellen wird beim Start von Fhem und auch mit <code>get <name> statusRequest</code> eingelesen. Wurden die Eingänge am Pioneer AV Receiver umbenannt, wird der neue Name des Eingangs angezeigt.</li>
  25195. <li><b>inputDown</b> - vorherige Eingangsquelle der Main Zone auswählen</li>
  25196. <li><b>inputUp</b> - nächste Eingangsquelle der Main Zone auswählen</li>
  25197. <li><b>left</b> - "Pfeiltaste nach links". Für die gleichen Eingangsquellen wie "play"</li>
  25198. <li><b>listeningMode</b> - Setzt einen ListeningMode, z.B. autoSourround, direct, action,...</li>
  25199. <li><b>mcaccMemory <1...6></b> - Setzt einen der bis zu 6 gespeicherten MCACC Einstellungen der Main Zone</li>
  25200. <li><b>menu</b> - "Menu-Taste" der Fernbedienung. Für die gleichen Eingangsquellen wie "play"</li>
  25201. <li><b>mute <on|off|toggle></b> - Stummschalten der Main Zone des Pioneer AV Receivers. "mute = on" bedeutet: stumm</li>
  25202. <li><b>networkStandby <on|off></b> - Schaltet Network standby ein oder aus. Um einen Pioneer AV Receiver mit diesem Modul aus dem Standby einzuschalten, muss Network Standby = on sein. Mit <code>set &lt;name&gt; networkStandby on</code> sollte sich das machen lassen.</li>
  25203. <li><b>next</b> - für die gleichen Eingangsquellen wie "play"</li>
  25204. <li><b>off</b> - Ausschalten der Main Zone in den Standby Modus.</li>
  25205. <li><b>on</b> - Einschalten der Main Zone aus dem Standby Modus. Das funktioniert nur, wenn am Pioneer AV Receiver "Network Standby" "on" eingestellt ist. Siehe dazu auch "networkStandby" weiter unten.</li>
  25206. <li><b>pause</b> - Unterbricht die Wiedergabe für die gleichen Eingangsquellen wie "play"</li>
  25207. <li><b>play</b> - Startet die Wiedergabe für folgende Eingangsquellen:
  25208. <ul>
  25209. <li>usbDac</li>
  25210. <li>ipodUsb</li>
  25211. <li>xmRadio</li>
  25212. <li>homeMediaGallery</li>
  25213. <li>sirius</li>
  25214. <li>adapterPort</li>
  25215. <li>internetRadio</li>
  25216. <li>pandora</li>
  25217. <li>mediaServer</li>
  25218. <li>favorites</li>
  25219. <li>mhl</li>
  25220. </ul>
  25221. </li>
  25222. <li><b>prev</b> - Wechselt zum vorherigen Titel. Für die gleichen Eingangsquellen wie "play".</li>
  25223. <li><b>raw <PioneerKommando></b> - Sendet den Befehl <code><PioneerKommando></code> unverändert an den Pioneer AV Receiver. Eine Liste der verfügbaren Pioneer Kommandos ist in dem Link zur Pioneer Dokumentation oben enthalten</li>
  25224. <li><b>remoteControl <attr></b> - wobei <attr> eines von folgenden sein kann:
  25225. <ul>
  25226. <li>cursorDown</li>
  25227. <li>cursorRight</li>
  25228. <li>cursorLeft</li>
  25229. <li>cursorEnter</li>
  25230. <li>cursorReturn</li>
  25231. <li>homeMenu</li>
  25232. <li>statusDisplay</li>
  25233. <li>audioParameter</li>
  25234. <li>hdmiOutputParameter</li>
  25235. <li>videoParameter</li>
  25236. <li>homeMenu</li>
  25237. Simuliert die Tasten der Fernbedienung. Achtung: mit cursorXX können die Eingänge nicht beeinflusst werden -> set <name> up ... kann zur Steuerung der Inputs verwendet werden.
  25238. </ul>
  25239. </li>
  25240. <li><b>reopen</b> - Versucht die Datenverbindung zwischen Fhem und dem Pioneer AV Receiver wieder herzustellen</li>
  25241. <li><b>repeat</b> - Wiederholung für folgende Eingangsquellen: AdapterPort, Ipod, Favorites, InternetRadio, MediaServer. Wechselt zyklisch zwischen
  25242. <ul>
  25243. <li>keine Wiederholung</li>
  25244. <li>Wiederholung des aktuellen Titels</li>
  25245. <li>Wiederholung aller Titel</li>
  25246. </ul>
  25247. </li>
  25248. <li><b>return</b> - "Zurück"... Entspricht der "Return-Taste" der Fernbedienung. Für die gleichen Eingangsquellen wie "play"</li>
  25249. <li><b>rev</b> - "Rückwärtssuchlauf". Für die gleichen Eingangsquellen wie "play"</li>
  25250. <li><b>right</b> - "Pfeiltaste nach rechts". Für die gleichen Eingangsquellen wie "play"</li>
  25251. <li><b>selectLine01 - selectLine08</b> - für die gleichen Eingangsquellen wie "play".Wird am Bildschirm ein Pioneer-Menu angezeigt, kann hiermit die gewünschte Zeile direkt angewählt werden</li>
  25252. <li><b>shuffle</b> - Zufällige Wiedergabe für die gleichen Eingangsquellen wie "repeat". Wechselt zyklisch zwischen Zufallswiedergabe "ein" und "aus".</li>
  25253. <li><b>signalSelect <auto|analog|digital|hdmi|cycle></b> - Setzt den zu verwendenden Eingang (bei Eingängen mit mehreren Anschlüssen) </li>
  25254. <li><b>speakers <off|A|B|A+B></b> - Schaltet die Lautsprecherausgänge ein/aus.</li>
  25255. <li><b>standingWave <on|off></b> - Schaltet Standing Wave der Main Zone aus/ein</li>
  25256. <li><b>statusRequest</b> - Fragt Informationen vom Pioneer AV Receiver ab und aktualisiert die readings entsprechend</li>
  25257. <li><b>stop</b> - Stoppt die Wiedergabe für die gleichen Eingangsquellen wie "play"</li>
  25258. <li><b>toggle</b> - Ein/Ausschalten der Main Zone in/von Standby</li>
  25259. <li><b>tone <on|bypass></b> - Schaltet die Klangsteuerung ein bzw. auf bypass</li>
  25260. <li><b>treble <-6 ... 6></b> - Höhen (treble) von -6dB bis + 6dB (funktioniert nur wenn tone = on und der ListeningMode es erlaubt)</li>
  25261. <li><b>up</b> - "Pfeiltaste nach oben". Für die gleichen Eingangsquellen wie "play"</li>
  25262. <li><b>volume <0 ... 100></b> - Lautstärke der Main Zone in % der Maximallautstärke</li>
  25263. <li><b>volumeDown</b> - Lautstärke der Main Zone um 0.5dB verringern</li>
  25264. <li><b>volumeUp</b> - Lautstärke der Main Zone um 0.5dB erhöhen</li>
  25265. <li><b>volumeStraight<-80.5 ... 12></b> - Direktes Einstellen der Lautstärke der Main Zone mit einem Wert, wie er am Display des Pioneer AV Receiver angezeigt wird</li>
  25266. <li><a href="#setExtensions">set extensions</a> (ausser <code>&lt;blink&gt;</code> ) werden unterstützt</li>
  25267. <br><br>
  25268. Beispiel:
  25269. <ul>
  25270. <code>set VSX923 on</code><br>
  25271. </ul>
  25272. <br>
  25273. <code>set &lt;name&gt; reopen</code>
  25274. <br><br>
  25275. Schließt und öffnet erneut die Datenverbindung von Fhem zum Pioneer AV Receiver.
  25276. Kann nützlich sein, wenn die Datenverbindung nicht automatisch wieder hergestellt werden kann.
  25277. <br><br>
  25278. </ul>
  25279. <a name="PIONEERAVRget"></a>
  25280. <b>Get</b>
  25281. <ul>
  25282. <code>get &lt;name&gt; raw &lt;Befehl&gt;</code>
  25283. <br><br>
  25284. liefert bei diesem Modul keine Werte zurück, sondern fragt den Pioneer AVR nach dem aktuellen Status (z.B. der Lautstärke). Sobald der Pioneer AVR antwortet (die Zeit, bis der Pioneer AVR antwortet, ist nicht vorhersehbar), aktualisiert das Modul die Readings bzw. Internals des PioneerAVR devices.
  25285. Falls unten keine Beschreibung für das "get-Kommando" angeführt ist, siehe gleichnamiges "Set-Kommando"
  25286. <li><b>loadInputNames</b> - liest die Namen der Eingangsquellen vom Pioneer AV Receiver und überprüft, ob sie aktiviert sind</li>
  25287. <li><b>audioInfo</b> - Holt die aktuellen Audio Parameter vom Pioneer AV receiver (z.B. audioInputSignal, audioInputFormatXX, audioOutputFrequency)</li>
  25288. <li><b>display</b> - Aktualisiert das reading 'display' und 'displayPrevious' mit der aktuellen Anzeige des Displays Pioneer AV Receiver</li>
  25289. <li><b>bass</b> - aktualisiert das reading 'bass'</li>
  25290. <li><b>channel</b> - </li>
  25291. <li><b>currentListIpod</b> - aktualisiert die readings currentAlbum, currentArtist, etc. </li>
  25292. <li><b>currentListNetwork</b> - </li>
  25293. <li><b>input</b> - </li>
  25294. <li><b>listeningMode</b> - </li>
  25295. <li><b>listeningModePlaying</b> - </li>
  25296. <li><b>macAddress</b> - </li>
  25297. <li><b>avrModel</b> - Versucht vom Pioneer AV Receiver die Modellbezeichnung (z.B. VSX923) einzulesen und im gleichnamigen INTERNAL abzuspeichern</li>
  25298. <li><b>mute</b> - </li>
  25299. <li><b>networkPorts</b> - Versucht vom Pioneer AV Receiver die offenen Ethernet Ports einzulesen und als INTERNAL networkPort1 ... networkPort4 abzuspeichern</li>
  25300. <li><b>networkSettings</b> - Versucht vom Pioneer AV Receiver die Netzwerkparameter (IP, Gateway, Netmask, Proxy, DHCP, DNS1, DNS2) einzulesen und in INTERNALS abzuspeichern</li>
  25301. <li><b>networkStandby</b> - Versucht vom Pioneer AV Receiver den Parameter networkStandby (kann on oder off sein) einzulesen und als INTERNAL abzuspeichern</li>
  25302. <li><b>power</b> - Versucht vom Pioneer AV Receiver in Erfahrung zu bringen, ob die Main Zone eingeschaltet oder in Standby ist.</li>
  25303. <li><b>signalSelect</b> - </li>
  25304. <li><b>softwareVersion</b> - Fragt den Pioneer AV Receiver nach der aktuell im Receiver verwendeten Software Version und speichert diese als INTERNAL</li>
  25305. <li><b>speakers</b> - </li>
  25306. <li><b>speakerSystem</b> - Fragt die aktuell verwendete Lautsprecheranwendung vom Pioneer AV Receiver ab. Mögliche Werte sind z.B. "ZONE 2", "Normal(SB/FH)", "5.1ch C+Surr Bi-Amp",...</li>
  25307. <li><b>tone</b> - </li>
  25308. <li><b>tunerFrequency</b> - Fragt die aktuell eingestellte Frequenz des Tuners ab</li>
  25309. <li><b>tunerChannelNames</b> - Sollten für die Tuner Presets Namen im Pioneer AV Receiver gespeichert sein, werden sie hiermit abgefragt</li>
  25310. <li><b>treble</b> - </li>
  25311. <li><b>volume</b> - </li>
  25312. </ul>
  25313. <br><br>
  25314. <a name="PIONEERAVRattr"></a>
  25315. <b>Attribute</b>
  25316. <br><br>
  25317. <ul>
  25318. <li>
  25319. <b>connectionCheck</b> &nbsp;&nbsp;1..120,off&nbsp;&nbsp; Pingt den Pioneer AV Receiver alle X Sekunden um den Datenverbindungsstatus zu überprüfen. Standard: 60 Sekunden.
  25320. </li>
  25321. <li>
  25322. <b> timeout</b> &nbsp;&nbsp;1,2,3,4,5,7,10,15&nbsp;&nbsp;Zeit in Sekunden, innerhalb der der Pioneer AV Receiver auf einen Ping antwortet. Standard: 3 Sekunden.
  25323. </li>
  25324. <li>
  25325. <b>statusUpdateStart &lt;enable|disable&gt;</b> - Ein-/Ausschalten des Status Updates (lesen aller Parameter vom Pioneer AV Receiver, dauert bis zu einer Minute) beim Start des Moduls.
  25326. Mit "disable" lässt sich das Status Update abschalten, FHEM startet schneller, das Pioneer Modul zeigt eventuell nicht korrekte readings.
  25327. </li>
  25328. <li><b>statusUpdateReconnect &lt;enable|disable&gt;</b> - Ein-/Ausschalten des Status Updates (lesen aller Parameter vom Pioneer AV Receiver, dauert bis zu einer Minute) nach dem Wiederherstellen der Datenverbindung zum Pioneer AV Receiver.
  25329. Mit "disable" lässt sich das Status Update abschalten, FHEM bleibt reaktiver beim reconnect, das Pioneer Modul zeigt eventuell nicht korrekte readings.</li>
  25330. <li><b>logTraffic &lt;loglevel&gt;</b> - Ermöglicht das Protokollieren ("Loggen") der Datenkommunikation vom/zum Pioneer AV Receiver.
  25331. Steuerzeichen werden angezeigt z.B. ein doppelter Rückwärts-Schrägstrich wird als einfacher Rückwärts-Schrägstrich angezeigt,
  25332. \n wird für das Steuerzeichen "line feed" angezeigt, etc.</li>
  25333. <li><b><a href="#verbose">verbose</a></b> - Beeinflusst die Menge an Informationen, die dieses Modul protokolliert. 0: möglichst wenig in die Fhem Logdatei schreiben, 5: möglichst viel in die Fhem Logdatei schreiben</li>
  25334. <li><b>volumeLimit &lt;0 ... 100&gt;</b> - beschränkt die maximale Lautstärke (in %). Selbst wenn manuell am Pioneer AV Receiver eine höher Lautstärke eingestellt wird, regelt Fhem die Lautstärke auf volumeLimit zurück.</li>
  25335. <li><b>volumeLimitStraight &lt; -80 ... 12&gt;</b> - beschränkt die maximale Lautstärke (Werte wie am Display des Pioneer AV Receiver angezeigt). Selbst wenn manuell am Pioneer AV Receiver eine höher Lautstärke eingestellt wird, regelt Fhem die Lautstärke auf volumeLimit zurück.</li>
  25336. </ul>
  25337. <br><br>
  25338. <b>Generated Readings/Events:</b>
  25339. <br/><br/>
  25340. <ul>
  25341. <li><b>audioAutoPhaseControlMS</b> - aktuell konfigurierte Auto Phase Control in ms</li>
  25342. <li><b>audioAutoPhaseControlRevPhase</b> - aktuell konfigurierte Auto Phase Control reverse Phase -> 1 bedeutet: reverse phase</li>
  25343. <li><b>audioInputFormat<XXX></b> - Zeigt ob im Audio Eingangssignal der Kanal XXX vorhanden ist (1 bedeutet: ist vorhanden)</li>
  25344. <li><b>audioInputFrequency</b> - Frequenz des Eingangssignals</li>
  25345. <li><b>audioInputSignal</b> - Art des Inputsignals (z.B. ANALOG, PCM, DTS,...)</li>
  25346. <li><b>audioOutputFormat<XXX></b> - Zeigt ob im Audio Ausgangssignal der Kanal XXX vorhanden ist (1 bedeutet: ist vorhanden)</li>
  25347. <li><b>audioOutputFrequency</b> - Frequenz des Ausgangssignals</li>
  25348. <li><b>bass</b> - aktuell konfigurierte Bass-Einstellung</li>
  25349. <li><b>channel</b> - Tuner Preset (1...9)</li>
  25350. <li><b>channelStraight</b> - Tuner Preset wie am Display des Pioneer AV Receiver angezeigt, z.B. A2</li>
  25351. <li><b>display</b> - Text, der aktuell im Display des Pioneer AV Receivers angezeigt wird</li>
  25352. <li><b>displayPrevious</b> - Zuletzt im Display angezeigter Text</li>
  25353. <li><b>eq</b> - Status des Equalizers des Pioneer AV Receivers (on|off)</li>
  25354. <li><b>hdmiOut</b> - welche HDMI-Ausgänge sind aktiviert?</li>
  25355. <li><b>input</b> - welcher Eingang ist ausgewählt</li>
  25356. <li><b>inputsList</b> - Mit ":" getrennte Liste der aktivierten/verfügbaren Eingänge</li>
  25357. <li><b>listeningMode</b> - Welcher Hörmodus (Listening Mode) ist eingestellt</li>
  25358. <li><b>listeningModePlaying</b> - Welcher Hörmodus (Listening Mode) wird aktuell verwendet</li>
  25359. <li><b>mcaccMemory</b> - MCACC Voreinstellung</li>
  25360. <li><b>mute</b> - Stummschaltung</li>
  25361. <li><b>power</b> - Main Zone eingeschaltet oder in Standby?</li>
  25362. <li><b>pqlsWorking</b> - aktuelle PQLS Einstellung</li>
  25363. <li><b>presence</b> - Kann der Pioneer AV Receiver via Ethernet erreicht werden?</li>
  25364. <li><b>screenHirarchy</b> - Hierarchie des aktuell angezeigten On Screen Displays (OSD)</li>
  25365. <li><b>screenLine01...08</b> - Inhalt der Zeile 01...08 des OSD</li>
  25366. <li><b>screenLineHasFocus</b> - Welche Zeile des OSD hat den Fokus?</li>
  25367. <li><b>screenLineNumberFirst</b> - Lange Listen werden im OSD zu einzelnen Seiten mit je 8 Zeilen angezeigt. Die oberste Zeile im OSD repräsentiert welche Zeile in der gesamten Liste?</li>
  25368. <li><b>screenLineNumberLast</b> - Lange Listen werden im OSD zu einzelnen Seiten mit je 8 Zeilen angezeigt. Die unterste Zeile im OSD repräsentiert welche Zeile in der gesamten Liste?</li>
  25369. <li><b>screenLineNumbersTotal</b> - Wie viele Zeilen hat die im OSD anzuzeigende Liste insgesamt?</li>
  25370. <li><b>screenLineNumbers</b> - Wie viele Zeilen hat das OSD</li>
  25371. <li><b>screenLineType01...08</b> - Welchen Typs ist die Zeile 01...08? Z.B. "directory", "Now playing", "current Artist",...</li>
  25372. <li><b>screenName</b> - Name des OSD</li>
  25373. <li><b>screenReturnKey</b> - Steht die "Return-Taste" in diesem OSD zur Verfügung?</li>
  25374. <li><b>screenTopMenuKey</b> - Steht die "Menu-Taste" in diesem OSD zur Verfügung?</li>
  25375. <li><b>screenToolsKey</b> - Steht die "Tools-Taste" (Menu, Edit, iPod control) in diesem OSD zur Verfügung?</li>
  25376. <li><b>screenType</b> - Typ des OSD, z.B. "message", "List", "playing(play)",...</li>
  25377. <li><b>speakerSystem</b> - Zeigt, wie die hinteren Surround-Lautsprecheranschlüsse und die B-Lautsprecheranschlüsse verwendet werden</li>
  25378. <li><b>speakers</b> - Welche Lautsprecheranschlüsse sind aktiviert?</li>
  25379. <li><b>standingWave</b> - Einstellung der Steuerung stark resonanter tiefer Frequenzen im Hörraum</li>
  25380. <li>
  25381. <b>state</b> - Wird beim Verbindungsaufbau von Fhem mit dem Pioneer AV Receiver gesetzt. Mögliche Werte sind disconnected, innitialized, off, on, opened
  25382. </li>
  25383. <li>
  25384. <b>stateAV</b> - Status aus der Sicht des USers: Kombiniert die readings presence, power, mute und playStatus zu einem Status (on|off|absent|stopped|playing|paused|fast-forward|fast-rewind).
  25385. </li>
  25386. <li><b>tone</b> - Ist die Klangsteuerung eingeschalten?</li>
  25387. <li><b>treble</b> - Einstellung des Höhenreglers</li>
  25388. <li><b>tunerFrequency</b> - Tunerfrequenz</li>
  25389. <li><b>volume</b> - Eingestellte Lautstärke (0%-100%)</li>
  25390. <li><b>volumeStraight</b> - Eingestellte Lautstärke, so wie sie auch am Display des Pioneer AV Receivers angezeigt wird</li>
  25391. </ul>
  25392. <br/><br/>
  25393. </ul>
  25394. <p><a name="PIONEERAVRZONE"></a>
  25395. <h3>PIONEERAVRZONE</h3>
  25396. <div class='langLinks'>[<a href='commandref.html#PIONEERAVRZONE'>EN</a> DE]</div>
  25397. <ul>
  25398. <br>
  25399. <a name="PIONEERAVRZONEdefine"></a>
  25400. <b>Define</b>
  25401. <ul>
  25402. <code>define &lt;name&gt; PIONEERAVRZONE &lt;zone&gt; </code>
  25403. <br><br>
  25404. Definiert ein PioneerAVR device fĂźr eine Zone Zone (zone2, zone3 or hdZone).<p>
  25405. Im Allgemeinen verwendet das logische device PIONEERAVRZONE das zuletzt definierte PIONEERAVR device fĂźr die Kommunikation mit dem Pioneer AV Receiver.
  25406. Mit dem Atribut <code>IODev</code> kann das PIONEERAVRZONE device jedes PIONEERAVR device zur Kommunikation verwenden,
  25407. z.B. <code>attr myPioneerAvrZone2 IODev myPioneerAvr</code>.
  25408. <br><br>
  25409. Examples:
  25410. <ul>
  25411. <code>define myPioneerAvrZone2 PIONEERAVRZONE zone2</code><br>
  25412. <code>attr myPioneerAvrZone2 IODev myPIONEERAVR</code>
  25413. </ul>
  25414. <br>
  25415. </ul>
  25416. <a name="PIONEERAVRZONEset"></a>
  25417. <b>Set</b>
  25418. <ul>
  25419. <code>set &lt;name&gt; &lt;was&gt; [&lt;value&gt;]</code>
  25420. <br><br>
  25421. wobei &lt;was&gt; eines der folgenden Befehle sein kann:
  25422. <li>reopen</li>
  25423. <li>off <br>Zone in den Standby-Modus schalten</li>
  25424. <li>on <br>Zone aus dem Standby-Modus Einschalten</li>
  25425. <li>toggle <br>Zone Ein/Ausschalten</li>
  25426. <li>volume <0 ... 100><br>Zonenlautstärke in % der maximalen Lautstärke</li>
  25427. <li>volumeUp<br>Zonenlautstärke um 0.5dB erhÜhen</li>
  25428. <li>volumeDown<br>Zonenlautstärke um 0.5dB verringern</li>
  25429. <li>volumeStraight<-80.5 ... 12><br>Einstellen der Zonenlautstärke mit einem Wert, wie er am Display des Pioneer AV Receiver angezeigt wird</li>
  25430. <li>mute <on|off|toggle></li>
  25431. <li>input <nicht am Pioneer AV Receiver deaktivierte Eingangsquelle><br> Die Liste der verfĂźgbaren (also der nicht deaktivierten)
  25432. Eingangsquellen wird beim Start von Fhem und auch mit <code>get <name> statusRequest</code> eingelesen</li>
  25433. <li>inputUp<br>nächste Eingangsquelle fßr die Zone auswählen</li>
  25434. <li>inputDown<br>vorherige Eingangsquelle fßr die Zone auswählen</li>
  25435. <li><a href="#setExtensions">set extensions</a> (ausser <code>&lt;name&gt;</code>) werden unterstĂźtzt</li>
  25436. <br><br>
  25437. Beispiel:
  25438. <ul>
  25439. <code>set VSX923Zone2 on</code><br>
  25440. </ul>
  25441. <br><br>
  25442. </ul>
  25443. <a name="PIONEERAVRZONEget"></a>
  25444. <b>Get</b>
  25445. <ul>
  25446. <li><code>get &lt;name&gt; input</code>
  25447. <br><br>
  25448. reading fĂźr die Eingangsquelle aktualisieren
  25449. </li>
  25450. </ul>
  25451. <br><br>
  25452. <a name="PIONEERAVRattr"></a>
  25453. <b>Attributes</b>
  25454. <br><br>
  25455. <ul>
  25456. <li>IOdev Name des device welches die Kommunikation mit dem Pioneer AV Receiver zur VerfĂźgung stellt</li>
  25457. <li><a href="#verbose">verbose</a></li>
  25458. </ul>
  25459. <br><br>
  25460. </ul>
  25461. <p><a name="PLAYBULB"></a>
  25462. <h3>MiPow Playbulb</h3>
  25463. <div class='langLinks'>[<a href='commandref.html#PLAYBULB'>EN</a> DE]</div>
  25464. <p><span style="text-decoration: underline;"><strong>PLAYBULB -Smart Light von MIPOW.COM</strong></span></p>
  25465. <p>Dieses Modul integriert diverse Smart Leuchten von MIPOW in FHEM und zeigt ihre Einstellungen an.</p>
  25466. <p>&nbsp;</p>
  25467. <p><a name="PLAYBULBdefine"></a><strong>Define</strong><br /><code>define &lt;name&gt; PLAYBULB &lt;MAC-ADDRESS&gt;</code></p>
  25468. <p>Beispiel: <code>define PlaybulbCandle PLAYBULB 0B:0B:0C:D0:E0:F0</code></p>
  25469. <p>&nbsp;</p>
  25470. <p>Mit diesem Kommando wird ein neues PLAYBULB Device im Raum PLAYBULB angelegt. Der Parameter &lt;MAC-ADDRESS&gt; definiert die Bluetooth MAC Address der Mipow Smart Leuchte.</p>
  25471. <p>&nbsp;</p>
  25472. <p style="padding-left: 90px;"><strong>Vorbedingungen</strong>: Es wird ein Bluetooth LE 4.0 Stick, sowie eine funktionierende bluez Installation oder aehnlich vorausgesetzt. (Eine gute Anleitung findedsich hier: <a href="http://www.elinux.org/RPi_Bluetooth_LE)">http://www.elinux.org/RPi_Bluetooth_LE)</a></p>
  25473. <p style="padding-left: 90px;">Derzeit sieht es so aus, als ob die Devices nur eine aktive Verbindung akzeptieren.</p>
  25474. <p><br /><a name="PLAYBULBreadings"></a><strong>Readings</strong></p>
  25475. <ul>
  25476. <ul>
  25477. <ul>
  25478. <li>battery - Batterielevel in Prozent</li>
  25479. <li>color - Zeigt an ob der Farbmodus an oder aus ist</li>
  25480. <li>devicename - Geraetename</li>
  25481. <li>effect - Zeigt an, welcher effect ausgewaehlt ist: (Flash; Pulse; RainbowJump; RainbowFade; Candle; none)</li>
  25482. <li>onoff - Zeigt an, ob das Geraet an (1) oder aus (0) ist</li>
  25483. <li>rgb - Zeigt die gewaehlte Farbe in HEX vom Typ rgb (Beispiel: FF0000 ist satt rot)</li>
  25484. <li>sat - Zeigt die gewaehlte Saettigung von 0 bis 255 (scheint invertiert zu sein; 0 ist volle Saettigung)</li>
  25485. <li>speed - Zeigt die gewaehlte Effektgeschwindigkeit (moeglich sind: 20; 70; 120; 170)</li>
  25486. <li>state - Aktueller Zustand des Devices</li>
  25487. </ul>
  25488. </ul>
  25489. </ul>
  25490. <p><a name="PLAYBULBset"></a><strong>Set</strong></p>
  25491. <ul>
  25492. <ul>
  25493. <ul>
  25494. <li>on - Schaltet das Geraet ein</li>
  25495. <li>off - Schaltet das Geraet aus</li>
  25496. <li>rgb - Farbwaehler,RGB; ermoeglicht jede Farbe, Saettigung und Helligkeit einzustellen</li>
  25497. <li>sat - Schieber zur Einstellung der Saettigungvon 0 bis 255, Schrittweite 5</li>
  25498. <li>effect - Flash,Pulse,RainbowJump,RainbowFade,Candle,none; aktiviert den gewaehlten Effekt</li>
  25499. <li>speed - Schieberegler: Werte sind 170, 120, 70, 20</li>
  25500. <li>color - on,of; Schaltet das Geraet auf RGB oder weiss</li>
  25501. <li>statusRequest - Ist notwendig, um den Zustand des Geraetes abzufragen</li>
  25502. <li>deviceName - Aendert den Namen des Bluetoothdevice z.B. "PlaybulbCandle"</li>
  25503. </ul>
  25504. </ul>
  25505. </ul>
  25506. <p><br /><strong>Get na</strong></p>
  25507. <p>&nbsp;</p>
  25508. <p><strong>Attributes&nbsp; </strong></p>
  25509. <ul>
  25510. <ul>
  25511. <ul>
  25512. <li>model<br />BTL300_v5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Candle Firmware 5<br />BTL300_v6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Candle Firmware 6<br />BTL201_v2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Smart<br />BTL201M_V16&nbsp; # Smart (1/2017)<br />BTL505_v1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Stripe<br />BTL400M_v18&nbsp; # Garden<br />BTL100C_v10&nbsp; # Color LED</li>
  25513. <li>sshHost - IP oder FQDN fĂźr SSH remote Kontrolle</li>
  25514. </ul>
  25515. </ul>
  25516. </ul>
  25517. <p><br /><a name="PLAYBULBstate"></a><strong>state</strong></p>
  25518. <ul>
  25519. <ul>
  25520. <ul>
  25521. <li>set attribut model&nbsp;- wird nach der Erstdefinition angezeigt</li>
  25522. <li>on - Device ist an</li>
  25523. <li>off - Device ist aus</li>
  25524. <li>unreachable - Verbindung zum device verloren</li>
  25525. </ul>
  25526. </ul>
  25527. </ul>
  25528. <p><br /><br /><br /><span style="text-decoration: underline;"><strong>Weitere Beispiel und readings:</strong></span><br /><a href="https://forum.fhem.de/index.php/topic,60829.msg522226.html#msg522226">Forum thread</a></p>
  25529. <p>&nbsp;</p>
  25530. <p><a name="POKEYS"></a>
  25531. <h3>POKEYS</h3>
  25532. <ul>
  25533. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  25534. hier: <a href='commandref.html#POKEYS'>POKEYS</a><br/>
  25535. </ul>
  25536. <a name="PRESENCE"></a>
  25537. <h3>PRESENCE</h3>
  25538. <div class='langLinks'>[<a href='commandref.html#PRESENCE'>EN</a> DE]</div>
  25539. <ul>
  25540. Das PRESENCE Module bietet mehrere M&ouml;glichkteiten um die Anwesenheit von Handys/Smartphones oder anderen mobilen Ger&auml;ten (z.B. Tablets) zu erkennen.
  25541. <br><br>
  25542. Dieses Modul bietet dazu mehrere Modis an um Anwesenheit zu erkennen. Diese sind:<br><br>
  25543. <ul>
  25544. <li><b>lan-ping</b> - Eine Erkennung auf Basis von Ping-Tests im lokalen LAN/WLAN</li>
  25545. <li><b>fritzbox</b> - Eine Erkennung aufgrund der internen Abfrage des Status auf der FritzBox (nur m&ouml;glich, wenn FHEM auf einer FritzBox l&auml;uft)</li>
  25546. <li><b>local-bluetooth</b> - Eine Erkennung auf Basis von Bluetooth-Abfragen durch den FHEM Server. Das Ger&auml;t muss dabei in Empfangsreichweite sein, aber nicht sichtbar sein</li>
  25547. <li><b>function</b> - Eine Erkennung mithilfe einer selbst geschriebenen Perl-Funktion, welche den Anwesenheitsstatus ermittelt.</li>
  25548. <li><b>shellscript</b> - Eine Erkennung mithilfe eines selbst geschriebenen Skriptes oder Programm (egal in welcher Sprache).</li>
  25549. <li><b>event</b> - Eine Erkennung basierend auf Events einer anderen Definition in FHEM. </li>
  25550. <li><b>lan-bluetooth</b> - Eine Erkennung durch Bluetooth-Abfragen via Netzwerk (LAN/WLAN) in ein oder mehreren R&auml;umen</li>
  25551. </ul>
  25552. <br>
  25553. Jeder Modus kann optional mit spezifischen Pr&uuml;f-Intervallen ausgef&uuml;hrt werden.<br><br>
  25554. <ul>
  25555. <li>check-interval - Das normale Pr&uuml;finterval in Sekunden f&uuml;r eine Anwesenheitspr&uuml;fung. Standardwert: 30 Sekunden</li>
  25556. <li>present-check-interval - Das Pr&uuml;finterval in Sekunden, wenn ein Ger&auml;t anwesend (<i>present</i>) ist. Falls nicht angegeben, wird der Wert aus check-interval verwendet</li>
  25557. </ul>
  25558. <br><br>
  25559. <a name="PRESENCE_define"></a>
  25560. <b>Define</b><br><br>
  25561. <ul><b>Modus: lan-ping</b><br><br>
  25562. <code>define &lt;name&gt; PRESENCE lan-ping &lt;IP-Addresse oder Hostname&gt; [ &lt;Interval&gt; [ &lt;Anwesend-Interval&gt; ] ]</code><br>
  25563. <br>
  25564. Pr&uuml;ft ob ein Ger&auml;t &uuml;ber Netzwerk (&uuml;blicherweise WLAN) auf Ping-Anfragen reagiert und setzt entsprechend den Anwesenheitsstatus.<br><br>
  25565. <u>Beispiel</u><br><br>
  25566. <code>define iPhone PRESENCE lan-ping 192.168.179.21</code><br><br>
  25567. <b>Modus: fritzbox</b><br><br>
  25568. <code>define &lt;name&gt; PRESENCE fritzbox &lt;Ger&auml;tename/MAC-Adresse&gt; [ &lt;Interval&gt; [ &lt;Anwesend-Interval&gt; ] ]</code><br>
  25569. <br>
  25570. Pr&uuml;ft ob ein Ger&auml;t welches per WLAN mit der FritzBox verbunden ist, erreichbar durch Abfrage des Status mit dem Befehl ctlmgr_ctl.
  25571. Der Ger&auml;tename (Parameter: &lt;Ger&auml;tename&gt;) muss dem Namen entsprechen, welcher im Men&uuml;punkt "Heimnetz" auf der FritzBox-Oberfl&auml;che angezeigt wird oder kann durch die MAC-Adresse im Format XX:XX:XX:XX:XX:XX ersetzt werden.<br><br>
  25572. <i>Dieser Modus ist nur verwendbar, wenn FHEM auf einer FritzBox l&auml;uft! Die Erkennung einer Abwesenheit kann ca. 10-15 Minuten dauern!</i><br><br>
  25573. <u>Beispiel</u><br><br>
  25574. <code>define iPhone PRESENCE fritzbox iPhone-6</code><br>
  25575. <code>define iPhone PRESENCE fritzbox 00:06:08:05:0D:00</code><br><br>
  25576. <b>Modus: local-bluetooth</b><br><br>
  25577. <code>define &lt;name&gt; PRESENCE local-bluetooth &lt;Bluetooth-Adresse&gt; [ &lt;Interval&gt; [ &lt;Anwesend-Interval&gt; ] ]</code><br>
  25578. <br>
  25579. Pr&uuml;ft ob ein Bluetooth-Ger&auml;t abgefragt werden kann und meldet dies als Anwesenheit. F&uuml;r diesen Modus wird der Shell-Befehl "hcitool" ben&ouml;tigt
  25580. (wird durch das Paket <a href="http://www.bluez.org" target="_new">bluez</a> bereitgestellt), sowie ein funktionierender Bluetooth-Empf&auml;nger (intern oder als USB-Stick)<br><br>
  25581. <u>Beispiel</u><br><br>
  25582. <code>define iPhone PRESENCE local-bluetooth 0a:4f:36:d8:f9:8</code><br><br>
  25583. <b>Modus: function</b><br><br>
  25584. <code>define &lt;name&gt; PRESENCE function {...} [ &lt;Interval&gt; [ &lt;Anwesend-Interval&gt; ] ]</code><br>
  25585. <br>
  25586. Pr&uuml;ft den Anwesenheitsstatus mithilfe einer selbst geschriebenen Perl-Funktion (z.B. SNMP Abfrage).<br><br>
  25587. Diese Funktion muss 0 (Abwesend) oder 1 (Anwesend) zur&uuml;ckgeben. Ein entsprechendes Beispiel findet man im <a href="http://www.fhemwiki.de/wiki/Anwesenheitserkennung" target="_new">FHEM-Wiki</a>.<br><br>
  25588. <u>Beispiel</u><br><br>
  25589. <code>define iPhone PRESENCE function {snmpCheck("10.0.1.1","0x44d77429f35c")</code><br><br>
  25590. <b>Mode: shellscript</b><br><br>
  25591. <code>define &lt;name&gt; PRESENCE shellscript "&lt;Skript-Pfad&gt; [&lt;arg1&gt;] [&lt;argN&gt;]..." [ &lt;Interval&gt; [ &lt;Anwesend-Interval&gt; ] ]</code><br>
  25592. <br>
  25593. Pr&uuml;ft den Anwesenheitsstatus mithilfe eines selbst geschrieben Skripts oder Programmes (egal in welcher Programmier-/Skriptsprache)<br><br>
  25594. Der Aufruf dieses Skriptes muss eine 0 (Abwesend) oder 1 (Anwesend) auf der <u>Kommandozeile (STDOUT)</u> ausgeben. Alle anderen Werte/Ausgaben werden als Fehler behandelt.<br><br>
  25595. <u>Beispiel</u><br><br>
  25596. <code>define iPhone PRESENCE shellscript "/opt/check_device.sh iPhone"</code><br><br>
  25597. <b>Mode: event</b><br><br>
  25598. <code>define &lt;name&gt; PRESENCE event &lt;Abwesend-Regexp&gt; &lt;Anwesend-Regexp&gt;</code><br>
  25599. <br>
  25600. Lauscht auf Events von anderen Definitionen innerhalb von FHEM um die Anwesenheit darzustellen.
  25601. Die regul&auml;ren Ausdr&uuml;cke f&uuml;r An- und Abwesenheit entsprechen dabei der Syntax von <a href="#notify">notify</a>.<br><br>
  25602. Sobald innerhalb von FHEM ein Event gefeuert wird, welches auf die Abwesend-Regexp bzw. Anwesend-Regexp passt, wird der Status entsprechend in PRESENCE gesetzt.<br><br>
  25603. <u>Beispiel</u><br><br>
  25604. <code>define Anwesenheit PRESENCE event Tuerschalter:off Tuerschalter:on</code><br><br>
  25605. <b>Modus: lan-bluetooth</b><br><br>
  25606. Pr&uuml;ft ein Bluetooth-Ger&auml;t auf Anwesenheit &uuml;ber Netzwerk mit Hilfe von presenced oder collectord. Diese k&ouml;nnen auf jeder Maschine installiert werden,
  25607. welche eine Standard-Perl-Umgebung bereitstellt und &uuml;ber Netzwerk erreichbar ist.
  25608. <br>
  25609. <br>
  25610. <code>define &lt;name&gt; PRESENCE lan-bluetooth &lt;Bluetooth-Adresse&gt; &lt;IP-Adresse&gt;[:Port] [ &lt;Interval&gt; ]</code><br>
  25611. <br>
  25612. Der Standardport ist 5111 (presenced). Alternativ kann man den Port 5222 (collectord) nutzen. Generell ist der Port aber frei w&auml;hlbar.<br><br>
  25613. <u>Beispiel</u><br><br>
  25614. <code>define iPhone PRESENCE lan-bluetooth 0a:4f:36:d8:f9:89 127.0.0.1:5222</code><br><br>
  25615. <u>presenced</u><br><br>
  25616. <ul>Der presenced ist ein Perl Netzwerkdienst, welcher eine Bluetooth-Anwesenheitserkennung von ein oder mehreren Ger&auml;ten &uuml;ber Netzwerk bereitstellt.
  25617. Dieser lauscht standardm&auml;&szlig;ig auf TCP Port 5111 nach eingehenden Verbindungen von dem PRESENCE Modul oder einem collectord.<br>
  25618. <PRE>
  25619. Usage:
  25620. presenced -d [-p &lt;port&gt;] [-P &lt;filename&gt;]
  25621. presenced [-h | --help]
  25622. Options:
  25623. -p, --port
  25624. TCP Port which should be used (Default: 5111)
  25625. -P, --pid-file
  25626. PID file for storing the local process id (Default: /var/run/presenced.pid)
  25627. -d, --daemon
  25628. detach from terminal and run as background daemon
  25629. -v, --verbose
  25630. Print detailed log output
  25631. -h, --help
  25632. Print detailed help screen
  25633. </PRE>
  25634. Zur Bluetooth-Abfrage wird der Shell-Befehl "hcitool" verwendet (Paket: <a href="http://www.bluez.org" target="_new">bluez</a>)
  25635. um sogenannte "Paging-Request" an die gew&uuml;nschte Bluetooth Adresse (z.B. 01:B4:5E:AD:F6:D3) durchzuf&uuml;hren. Das Ger&auml;t muss dabei nicht sichtbar sein, allerdings st&auml;ndig aktiviert sein
  25636. um Bluetooth-Anfragen zu beantworten.
  25637. <br><br>
  25638. Wenn ein Ger&auml;t anwesend ist, wird dies an FHEM &uuml;bermittelt zusammen mit dem Ger&auml;tenamen als Reading.<br><br>
  25639. Der presenced ist zum Download verf&uuml;gbar als:<br><br>
  25640. <ul>
  25641. <li>Perl Skript: <a href="https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/presenced" target="_new">presenced</a></li>
  25642. <li>.deb Paket f&uuml;r Debian/Raspbian (architekturunabh&auml;ngig): <a href="https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/deb/presenced-1.5.deb" target="_new">presenced-1.5.deb</a></li>
  25643. </ul>
  25644. </ul><br><br>
  25645. <u>lepresenced</u><br><br>
  25646. <ul>lepresenced ist ein Perl Netzwerkdienst, der analog zu presenced eine
  25647. Bluetooth-Anwesenheitserkennung von ein oder mehreren Ger&auml;ten
  25648. &uuml;ber Netzwerk bereitstellt. Im Gegensatz zu presenced unterst&uuml;tzt
  25649. lepresenced <u>Bluetooth 4.0 (Low Energy) Ger&auml;te wie z. B. Gigaset G-Tags,
  25650. FitBit Charges.</u>
  25651. lepresenced lauscht standardm&auml;&szlig;ig auf TCP Port 5333 und wartet
  25652. auf eingehende Verbindungen des PRESENCE-Moduls bzw. von collectord.<br>
  25653. <PRE>
  25654. Usage:
  25655. lepresenced --bluetoothdevice &lt;bluetooth device&gt; --listenaddress &lt;listen address&gt; --listenport &lt;listen port&gt; --loglevel &lt;log level&gt; --daemon
  25656. lepresenced -b &lt;bluetooth device&gt; -a &lt;listen address&gt; -p &lt;listen port> -l &lt;log level> -d
  25657. valid log levels:
  25658. LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG. Default: LOG_INFO
  25659. Examples:
  25660. lepresenced --bluetoothdevice hci0 --listenaddress 127.0.0.1 --listenport 5333 --daemon
  25661. lepresenced --loglevel LOG_DEBUG --daemon
  25662. </PRE>
  25663. Zur Bluetooth-Abfrage wird der Befehl <i>hcitool lescan</i> (Paket:
  25664. <a href="http://www.bluez.org" target="_new">bluez</a>) verwendet, der
  25665. fortw&auml;hrend auf die Beacons der Bluetooth-LE-Ger&auml;te lauscht.
  25666. <br><br>
  25667. Wenn ein Ger&auml;t anwesend ist, wird dies an FHEM &uuml;bermittelt zusammen mit dem Ger&auml;tenamen als Reading.<br><br>
  25668. Der le presenced ist zum Download verf&uuml;gbar als:<br><br>
  25669. <ul>
  25670. <li>Perl Skript: <a href="https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/lepresenced" target="_new">lepresenced</a></li>
  25671. <li>.deb Paket (architekturunabh&auml;ngig) unter <a href="https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/deb/" target="_new">contrib/PRESENCE/deb/</a></li>
  25672. </ul>
  25673. </ul><br><br>
  25674. <u>collectord</u><br><br>
  25675. <ul>
  25676. Der collectord ist ein Perl Netzwerk Dienst, welcher Verbindungen zu mehreren presenced-Instanzen verwaltet um eine koordinierte Suche nach ein oder mehreren Bluetooth-Ger&auml;ten &uuml;ber Netzwerk durchzuf&uuml;hren.<br><br>
  25677. Er lauscht auf TCP port 5222 nach eingehenden Verbindungen von einem PRESENCE Modul.
  25678. <PRE>
  25679. Usage:
  25680. collectord -c &lt;configfile&gt; [-d] [-p &lt;port&gt;] [-P &lt;pidfile&gt;]
  25681. collectord [-h | --help]
  25682. Options:
  25683. -c, --configfile &lt;configfile&gt;
  25684. The config file which contains the room and timeout definitions
  25685. -p, --port
  25686. TCP Port which should be used (Default: 5222)
  25687. -P, --pid-file
  25688. PID file for storing the local process id (Default: /var/run/collectord.pid)
  25689. -d, --daemon
  25690. detach from terminal and run as background daemon
  25691. -v, --verbose
  25692. Print detailed log output
  25693. -l, --logfile &lt;logfile&gt;
  25694. log to the given logfile
  25695. -h, --help
  25696. Print detailed help screen
  25697. </PRE>
  25698. Bevor der collectord verwendet werden kann, ben&ouml;tigt er eine Konfigurationsdatei in welcher alle R&auml;ume mit einem presenced-Agenten eingetragen sind. Diese Datei sieht wie folgt aus:
  25699. <br><br>
  25700. <PRE>
  25701. # Raum Definitionen
  25702. # =================
  25703. #
  25704. [Raum-Name] # Name des Raumes
  25705. address=192.168.0.10 # IP-Adresse oder Hostname
  25706. port=5111 # TCP Port welcher benutzt werden soll (standardm&auml;&szlig;ig 5111)
  25707. presence_timeout=120 # Pr&uuml;finterval in Sekunden f&uuml;r jede Abfrage eines Ger&auml;tes, welches anwesend ist
  25708. absence_timeout=20 # Pr&uuml;finterval in Sekunden f&uuml;r jede Abfrage eines Ger&auml;tes, welches abwesend ist
  25709. [Wohnzimmer]
  25710. address=192.168.0.11
  25711. port=5111
  25712. presence_timeout=180
  25713. absence_timeout=20
  25714. </PRE>
  25715. <br>
  25716. Wenn ein Ger&auml;t in irgend einem Raum anwesend ist, wird dies an FHEM &uuml;bermittelt, zusammen mit dem Ger&auml;tenamen und dem Raum, in welchem das Ger&auml;t erkannt wurde.<br><br>
  25717. Der collectord ist zum Download verf&uuml;gbar als:<br><br>
  25718. <ul>
  25719. <li>Perl Skript: <a href="https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/collectord" target="_new">collectord</a></li>
  25720. <li>.deb Paket f&uuml;r Debian (architekturunabh&auml;ngig): <a href="https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/deb/collectord-1.8.1.deb" target="_new">collectord-1.8.1.deb</a></li>
  25721. </ul>
  25722. </ul>
  25723. </ul>
  25724. <br>
  25725. <a name="PRESENCE_set"></a>
  25726. <b>Set</b>
  25727. <ul>
  25728. <li><b>statusRequest</b> - Startet einen sofortigen Check.</li>
  25729. <li><b>power</b> - Startet den powerCmd-Befehl welche durch den Parameter powerCmd angegeben ist (Nur wenn das Attribut "powerCmd" definiert ist)</li>
  25730. <li><b>overrideInterval</b> - �bersteuert das Prßfinterval auf die ßbergebene Dauer in Sekunden (Nicht im Modus "event" und "lan-bluetooth" anwendbar)</li>
  25731. <li><b>clearOverride</b> - Entfernt eine zuvor gesetzte �bersteuerung des Prßfintervals (Nur anwendbar, wenn zuvor eine �bersteuerung mit dem Set-Befehl overrideInterval stattgefunden hat)</li>
  25732. </ul>
  25733. <br>
  25734. <a name="PRESENCE_get"></a>
  25735. <b>Get</b>
  25736. <ul>
  25737. N/A
  25738. </ul>
  25739. <br>
  25740. <a name="PRESENCE_attr"></a>
  25741. <b>Attributes</b><br><br>
  25742. <ul>
  25743. <li><a href="#do_not_notify">do_not_notify</a></li>
  25744. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  25745. <li><a name="PRESENCE_disable">disable</a></li>
  25746. Wenn dieses Attribut aktiviert ist, wird die Anwesenheitserkennung nicht mehr durchgef&uuml;hrt.<br><br>
  25747. M&ouml;gliche Werte: 0 => Erkennung durchf&uuml;hren , 1 => Keine Erkennungen durchf&uuml;hren<br>
  25748. Standardwert ist 0 (Erkennung durchf&uuml;hren)<br><br>
  25749. <li><a name="PRESENCE_absenceThreshold">absenceThreshold</a></li> <i>(Nicht im Modus "event" anwendbar)</i><br>
  25750. Die Anzahl an Checks, welche in "absent" resultieren m&uuml;ssen, bevor der Status der PRESENCE-Definition auf "absent" wechselt.
  25751. Mit dieser Funktion kann man die Abwesenheit eines Ger&auml;tes verifizieren bevor der Status final auf "absent" ge&auml;ndert wird.
  25752. Wenn dieses Attribut auf einen Wert &gt;1 gesetzt ist, werden die Readings "state" und "presence" auf den Wert "maybe absent" gesetzt,
  25753. bis der Status final auf "absent" wechselt.<br><br>
  25754. Standardwert ist 1 (keine Abwesenheitsverifizierung)<br><br>
  25755. <li><a name="PRESENCE_presenceThreshold">presenceThreshold</a></li> <i>(Nicht im Modus "event" anwendbar)</i><br>
  25756. Die Anzahl an Checks, welche in "present" resultieren m&uuml;ssen, bevor der Status der PRESENCE-Definition auf "present" wechselt.
  25757. Mit dieser Funktion kann man die Anwesenheit eines Ger&auml;tes verifizieren bevor der Status final auf "present" ge&auml;ndert wird.
  25758. Wenn dieses Attribut auf einen Wert &gt;1 gesetzt ist, werden die Readings "state" und "presence" auf den Wert "maybe present" gesetzt,
  25759. bis der Status final auf "present" wechselt.<br><br>
  25760. Standardwert ist 1 (keine Anwesenheitsverifizierung)<br><br>
  25761. <li><a name="PRESENCE_absenceTimeout">absenceTimeout</a></li> <i>(Nur im Modus "event" anwendbar)</i><br>
  25762. Die Dauer, die nach einem "absent"-Event gewartet werden soll, bis der Status der PRESENCE-Definition tats&auml;chlich auf "absent" ge&auml;ndert werden soll.
  25763. Die Dauer kann dabei im Format HH:MM:SS angegeben werden, wobei Stunden und Minuten optional sind.
  25764. Wenn dieses Attribut auf einen g&uuml;ltigen Wert gesetzt ist, werden die Readings "state" und "presence" bei einem "absent"-Event zun&auml;chst auf den Wert "maybe absent" gesetzt.
  25765. Sobald das parametrisierte Zeitfenster um ist, wird der Status final auf "absent" gesetzt.<br><br>
  25766. Standardwert ist 0 Sekunden (keine Statusverz&ouml;gerung)<br><br>
  25767. <li><a name="PRESENCE_presenceTimeout">presenceTimeout</a></li> <i>(Nur im Modus "event" anwendbar)</i><br>
  25768. Die Dauer, die nach einem "present"-Event gewartet werden soll, bis der Status der PRESENCE-Definition tats&auml;chlich auf "present" ge&auml;ndert werden soll.
  25769. Die Dauer kann dabei im Format HH:MM:SS angegeben werden, wobei Stunden und Minuten optional sind.
  25770. Wenn dieses Attribut auf einen g&uuml;ltigen Wert gesetzt ist, werden die Readings "state" und "presence" bei einem "present"-Event zun&auml;chst auf den Wert "maybe present" gesetzt.
  25771. Sobald das parametrisierte Zeitfenster um ist, wird der Status final auf "present" gesetzt.<br><br>
  25772. Standardwert ist 0 Sekunden (keine Statusverz&ouml;gerung)<br><br>
  25773. <li><a name="PRESENCE_retryInterval">retryInterval</a></li> <i>(Nicht im Modus "event" oder "lan-bluetooth" anwendbar)</i><br>
  25774. Das PrĂźfinterval, welches im Falle eines vorzeitig abgebrochenen Checks genutzt wird, um eine Wiederholung auszufĂźhren. Dazu wird im Falle eines abgebrochenen
  25775. Checks der nächste Check nach der ßbergebenen Dauer in Sekunden ausgefßhrt. Diese sollte geringer sein als das reguläre Prßfinterval.
  25776. <br><br>
  25777. Standardwert ist 10 Sekunden<br><br>
  25778. <li><a name="PRESENCE_retryCount">retryCount</a></li> <i>(Nicht im Modus "event" oder "lan-bluetooth" anwendbar)</i><br>
  25779. Die maximale Anzahl an Wiederholungen, sollte ein Check vorzeitig abgebrochen werden. Sobald ein Check vorzeitigabbricht, werden maximal die Ăźbergebene Anzahl an Wiederholung
  25780. innerhalb des in retryInterval konfigurierten Interval ausgefĂźhrt um in kĂźrzerer Zeit ein valides Ergebnis zu erhalten.
  25781. <br><br>
  25782. Standardwert ist 3 Wiederholungen<br><br>
  25783. <li><a name="PRESENCE_pingCount">pingCount</a></li> (Nur im Modus "ping" anwendbar)<br>
  25784. Ver&auml;ndert die Anzahl der Ping-Pakete die gesendet werden sollen um die Anwesenheit zu erkennen.
  25785. Je nach Netzwerkstabilit&auml;t k&ouml;nnen erste Pakete verloren gehen oder blockiert werden.<br><br>
  25786. Standardwert ist 4 (Versuche)<br><br>
  25787. <li><a name="PRESENCE_bluetoothHciDevice">bluetoothHciDevice</a></li> (Nur im Modus "local-bluetooth" anwendbar)<br>
  25788. Sofern man mehrere Bluetooth-Empf&auml;nger verf&uuml;gbar hat, kann man mit diesem Attribut ein bestimmten Empf&auml;nger ausw&auml;hlen, welcher zur Erkennung verwendet werden soll (bspw. hci0, hci1, ...). Es muss dabei ein vorhandener HCI-Ger&auml;tename angegeben werden wie z.B. <code>hci0</code>.
  25789. <br><br>
  25790. <li><a name="PRESENCE_fritzboxCheckSpeed">fritzboxCheckSpeed</a></li> (Nur im Modus "fritzbox")<br>
  25791. Zus&auml;tzlich zum Status des Ger&auml;ts wird die aktuelle Verbindungsgeschwindigkeit ausgegeben<br>
  25792. Das macht nur bei WLAN Ger&auml;ten Sinn, die direkt mit der FritzBox verbunden sind. Bei abwesenden Ger&auml;ten wird als Geschwindigkeit 0 ausgegeben.
  25793. <br><br>
  25794. M&ouml;gliche Werte: 0 => Geschwindigkeit nicht pr&uuml;fen, 1 => Geschwindigkeit pr&uuml;fen<br>
  25795. Standardwert ist 0 (Keine Geschwindigkeitspr&uuml;fung)
  25796. <br><br>
  25797. <li><a name="PRESENCE_powerCmd">powerCmd</a></li><br>
  25798. Ein FHEM-Befehl, welcher das Ger&auml;t schalten kann.<br><br>
  25799. Wenn der power-Befehl ausgef&uuml;hrt wird (set-Befehl: power) werden folgende Platzhalter durch ihre entsprechenden Werte ersetzt:<br><br>
  25800. <ul>
  25801. <li><code>$NAME</code> - Name der PRESENCE-Definition</li>
  25802. <li><code>$ADDRESS</code> - Die &uuml;berwachte Addresse der PRESENCE Definition, wie sie im define-Befehl angegeben wurde.</li>
  25803. <li><code>$ARGUMENT</code> - Das Argument, was dem Set-Befehl "power" &uuml;bergeben wurde. (z.B. "on" oder "off")</li>
  25804. </ul>
  25805. <br>
  25806. Beispielhafte FHEM-Befehle:<br><br>
  25807. <ul>
  25808. <li><code>set PowerSwitch_1 on</code></li>
  25809. <li><code>set PowerSwitch_1 $ARGUMENT</code></li>
  25810. <li><code>"/opt/power_on.sh $ADDRESS"</code></li>
  25811. <li><code>{powerOn("$ADDRESS", "username", "password")}</code></li>
  25812. </ul>
  25813. </ul>
  25814. <br>
  25815. <a name="PRESENCE_events"></a>
  25816. <b>Generierte Readings/Events:</b><br><br>
  25817. <ul>
  25818. <u>Generelle ReadingsEvents:</u><br><br>
  25819. <ul>
  25820. <li><b>state</b>: (absent|maybe absent|present|maybe present|disabled|error|timeout) - Der Anwesenheitsstatus eine Ger&auml;tes (absent = abwesend; present = anwesend) oder "disabled" wenn das <a href="#PRESENCE_disable">disable</a>-Attribut aktiviert ist</li>
  25821. <li><b>presence</b>: (absent|maybe absent|present|maybe present) - Der Anwesenheitsstatus eine Ger&auml;tes (absent = abwesend; present = anwesend). Der Wert "maybe absent" (vielleicht abwesend) tritt nur auf, sofern das Attribut <a href="#PRESENCE_absenceThreshold">absenceThreshold</a> aktiviert ist. Der Wert "maybe present" (vielleicht anwesend) tritt nur auf, sofern das Attribut <a href="#PRESENCE_presenceThreshold">presenceThreshold</a> aktiviert ist.</li>
  25822. <li><b>powerCmd</b>: (executed|failed) - Ausf&uuml;hrung des power-Befehls war erfolgreich.</li>
  25823. </ul><br><br>
  25824. <u>Bluetooth-spezifische Readings/Events:</u><br><br>
  25825. <ul>
  25826. <li><b>device_name</b>: $name - Der Name des Bluetooth-Ger&auml;tes, wenn es anwesend (Status: present) ist</li>
  25827. </ul><br><br>
  25828. <u>FRITZ!Box-spezifische Readings/Events:</u><br><br>
  25829. <ul>
  25830. <li><b>speed</b>: $speed - Die Netzwerkdeschwindigkeit des Ger&auml;tes, sofern das Attribut <a href="#PRESENCE_fritzboxCheckSpeed">fritzboxCheckSpeed</a> aktiviert ist.</li>
  25831. </ul><br><br>
  25832. <u>presenced-/collectord-spezifische Readings/Events:</u><br><br>
  25833. <ul>
  25834. <li><b>command_accepted</b>: $command_accepted (yes|no) - Wurde das letzte Kommando an den presenced/collectord akzeptiert (yes = ja, no = nein)?</li>
  25835. <li><b>room</b>: $room - Wenn das Modul mit einem collectord verbunden ist, zeigt dieses Event den Raum an, in welchem dieses Ger&auml;t erkannt wurde (Raumname entsprechend der Konfigurationsdatei des collectord)</li>
  25836. </ul>
  25837. </ul>
  25838. </ul>
  25839. <p><a name="PROPLANTA"></a>
  25840. <h3>PROPLANTA</h3>
  25841. <div class='langLinks'>[<a href='commandref.html#PROPLANTA'>EN</a> DE]</div>
  25842. <div>
  25843. <ul>
  25844. <a name="PROPLANTAdefine"></a>
  25845. Das Modul extrahiert Wetterdaten von der Website <a href="http://www.proplanta.de">www.proplanta.de</a>.
  25846. <br/>
  25847. Es stellt eine Vorhersage fßr 12 Tage zur Verfßgung - während der ersten 7 Tage im 3-Stunden-Intervall.
  25848. <br>
  25849. Dieses Modul erzeugt eine hohe CPU-Last. Es wird deshalb empfohlen, die auszulesenden Vorhersagetage zu reduzieren.
  25850. <br>
  25851. <i>Es nutzt die Perl-Module HTTP::Request, LWP::UserAgent und HTML::Parse</i>.
  25852. <br>
  25853. Fßr detaillierte Anleitungen bitte die <a href="http://www.fhemwiki.de/wiki/PROPLANTA"><b>FHEM-Wiki</b></a> konsultieren und ergänzen.
  25854. <br/><br/>
  25855. <b>Define</b>
  25856. <ul>
  25857. <br>
  25858. <code>define &lt;Name&gt; PROPLANTA [Stadt] [Ländercode]</code>
  25859. <br>
  25860. Beispiel:
  25861. <br>
  25862. <code>define wetter PROPLANTA Bern ch</code>
  25863. <br>
  25864. <code>define wetter PROPLANTA Wittingen+(Niedersachsen)</code>
  25865. <br>&nbsp;
  25866. <li><code>[Stadt]</code>
  25867. <br>
  25868. Optional. Die Stadt muss auf <a href="http://www.proplanta.de">www.proplanta.de</a> auswählbar sein.
  25869. <br>
  25870. Wichtig!! Auf die <b>gro�en</b> Anfangsbuchstaben achten. Leerzeichen im Stadtnamen werden durch ein + (Plus) ersetzt.
  25871. </li><br>
  25872. <li><code>[Ländercode]</code>
  25873. <br>
  25874. Optional. MĂśgliche Werte: de (Standard), at, ch, fr, it
  25875. </li><br>
  25876. �ber die Funktion <code>PROPLANTA_Html</code> wird ein HTML-Code fßr eine Vorhersage fßr die angegebenen Anzahl Tage (standardmä�ig 3) erzeugt.
  25877. <br>
  25878. Beispiel:
  25879. <br>
  25880. <code>define Vorschau weblink htmlCode {PROPLANTA_Html("Wetter"[, Tage])}</code>
  25881. <br/><br/>
  25882. </ul>
  25883. <br>
  25884. <a name="PROPLANTAset"></a>
  25885. <b>Set</b>
  25886. <ul>
  25887. <br>
  25888. <li><code>set &lt;name&gt; update</code>
  25889. <br>
  25890. Startet sofort ein neues Auslesen der Wetterdaten.
  25891. </li><br>
  25892. </ul>
  25893. <a name="PROPLANTAattr"></a>
  25894. <b>Attribute</b>
  25895. <ul>
  25896. <br>
  25897. <li><code>forecastDays &lt;4-14&gt;</code>
  25898. <br>
  25899. Anzahl Tage, fĂźr die die Vorhersage ausgelesen werden soll. Standard ist 14 Tage (inkl. heute).
  25900. </li><br>
  25901. <li><code>INTERVAL &lt;Abfrageintervall&gt;</code>
  25902. <br>
  25903. Abfrageintervall in Sekunden (Standard 3600 = 1 Stunde)
  25904. </li><br>
  25905. <li><code>URL &lt;Internetadresse&gt;</code>
  25906. <br>
  25907. Internetadresse, von der die Daten ausgelesen werden (Ăźberschreibt die Werte im 'define'-Term)
  25908. </li><br>
  25909. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  25910. </ul>
  25911. <br><br>
  25912. <a name="PROPLANTAreading"></a>
  25913. <b>Vorhersagewerte</b>
  25914. <ul>
  25915. <br>
  25916. <li><b>fc</b><i>0|1|2|3...|13</i><b>_...</b> - Vorhersagewerte fĂźr <i>heute|morgen|Ăźbermorgen|in 3|...|13 Tagen</i></li>
  25917. <li><b>fc</b><i>0</i><b>_...<i>00|03|06|09|12|15|18|21</i></b> - Vorhersagewerte fĂźr <i>heute</i> um <i>00|03|06|09|12|15|18|21</i> Uhr</li>
  25918. <li><b>fc</b><i>0</i><b>_chOfRain</b><i>Day|Night</i> - <i>heutiges</i> Niederschlagsrisiko <i>tagsĂźber|nachts</i> in %</li>
  25919. <li><b>fc</b><i>1</i><b>_chOfRain</b><i>15</i> - <i>morgiges</i> Niederschlagsrisiko um <i>15</i>:00 Uhr in %</li>
  25920. <li><b>fc</b><i>2</i><b>_cloud</b><i>15</i> - Wolkenbedeckungsgrad <i>Ăźbermorgen</i> um <i>15</i>:00 Uhr in %</li>
  25921. <li><b>fc</b><i>0</i><b>_dew</b> - Taubildung <i>heute</i> (0=keine, 1=leicht, 2=mä�ig, 3=stark)</li>
  25922. <li><b>fc</b><i>0</i><b>_evapor</b> - Verdunstung <i>heute</i> (0=keine, 1=gering, 2=mä�ig, 3=stark)</li>
  25923. <li><b>fc</b><i>0</i><b>_frost</b> - Bodenfrost <i>heute</i> (0=nein, 1=ja)</li>
  25924. <li><b>fc</b><i>0</i><b>_gust</b><i>15</i> - maximale WindbĂśen <i>heute</i> um <i>15</i>:00 Uhr in km/h</li>
  25925. <li><b>fc</b><i>1</i><b>_moon</b><i>Rise|Set</i> - Mond<i>auf|unter</i>gang <i>morgen</i></li>
  25926. <li><b>fc</b><i>0</i><b>_rad</b> - Globalstrahlung <i>heute</i></li>
  25927. <li><b>fc</b><i>0</i><b>_rain</b><i>15</i> - Niederschlagsmenge <i>heute</i> um <i>15</i>:00 Uhr in mm</li>
  25928. <li><b>fc</b><i>0</i><b>_sun</b> - relative Sonnenscheindauer <i>heute</i> in % (zwischen Sonnenauf- und -untergang)</li>
  25929. <li><b>fc</b><i>0</i><b>_temp</b><i>Min|Max</i> - <i>Minimal|Maximal</i>temperatur <i>heute</i> in °C</li>
  25930. <li><b>fc</b><i>1</i><b>_temp</b><i>15</i> - Temperatur <i>morgen</i> um <i>15</i>:00 Uhr in °C</li>
  25931. <li><b>fc</b><i>0</i><b>_uv</b> - UV-Index <i>heute</i></li>
  25932. <li><b>fc</b><i>0</i><b>_weather</b><i>Morning|Day|Evening|Night</i> - Wetterzustand <i>heute morgen|tagsĂźber|abends|nachts</i></li>
  25933. <li><b>fc</b><i>0</i><b>_weather</b><i>Day</i><b>Icon</b> - Icon Wetterzustand <i>heute tagsĂźber</i></li>
  25934. <li><b>fc</b><i>0</i><b>_wind</b><i>15</i> - Windgeschwindigkeit <i>heute</i> um <i>15</i>:00 Uhr in km/h</li>
  25935. <li><b>fc</b><i>0</i><b>_windDir</b><i>15</i> - Windrichtung <i>heute</i> um <i>15</i>:00 Uhr in ° (Grad)</li>
  25936. <li>etc.</li>
  25937. </ul>
  25938. <br>
  25939. <b>Aktuelle Werte</b>
  25940. <ul>
  25941. <br>
  25942. <li><b>cloudBase</b><i>Min|Max</i> - HĂśhe der <i>minimalen|maximalen</i> Wolkenuntergrenze in m</li>
  25943. <li><b>dewPoint</b> - Taupunkt in °C</li>
  25944. <li><b>humidity</b> - relative Feuchtigkeit in %</li>
  25945. <li><b>obs_time</b> - Uhrzeit der Wetterbeobachtung</li>
  25946. <li><b>pressure</b> - Luftdruck in hPa</li>
  25947. <li><b>temperature</b> - Temperature in °C</li>
  25948. <li><b>visibility</b> - Sichtweite in km</li>
  25949. <li><b>weather</b> - Wetterzustand</li>
  25950. <li><b>weatherIcon</b> - Icon Wetterzustand</li>
  25951. <li><b>wind</b> - Windgeschwindigkeit in km/h</li>
  25952. <li><b>windDir</b> - Windrichtung in ° (Grad)</li>
  25953. </ul>
  25954. <br><br>
  25955. </ul>
  25956. </div>
  25957. <p><a name="PWM"></a>
  25958. <h3>PWM</h3>
  25959. <ul>
  25960. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  25961. hier: <a href='commandref.html#PWM'>PWM</a><br/>
  25962. </ul>
  25963. <a name="PWMR"></a>
  25964. <h3>PWMR</h3>
  25965. <ul>
  25966. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  25967. hier: <a href='commandref.html#PWMR'>PWMR</a><br/>
  25968. </ul>
  25969. <a name="PW_Circle"></a>
  25970. <h3>PW_Circles</h3>
  25971. <div class='langLinks'>[<a href='commandref.html#PW_Circle'>EN</a> DE]</div>
  25972. <ul>
  25973. Das PW_Circles Modul setzt auf das Plugwise-System auf. Es muss zuerst ein Plugwise-Stick angelegt werden.
  25974. Siehe <a href="#Plugwise">Plugwise</a>.
  25975. <br>
  25976. <a name="PW_Circle define"></a>
  25977. <br>
  25978. <b>Define</b>
  25979. <ul>
  25980. <code>define &lt;name&gt; PW_Circle &lt;ShortAddress&gt;</code> <br>
  25981. <br>
  25982. <code>&lt;ShortAddress&gt;</code>
  25983. <ul>
  25984. gibt die Kurzadresse (die letzten 4 Bytes) des Circles an. <br>
  25985. </ul>
  25986. <br><br>
  25987. </ul>
  25988. <b>Set</b>
  25989. <ul>
  25990. <code>on / off</code> <br>
  25991. <ul>
  25992. Schaltet den Circle ein oder aus<br><br>
  25993. </ul>
  25994. <code>on-for-timer / off-for-timer sec</code> <br>
  25995. <ul>
  25996. Schaltet den Circle fĂźr n Sekunden an oder aus<br><br>
  25997. </ul>
  25998. <code>syncTime</code> <br>
  25999. <ul>
  26000. Synchronisiert die interne Uhr des Circles mit der lokalen Systemzeit<br><br>
  26001. </ul>
  26002. <code>removeNode</code> <br>
  26003. <ul>
  26004. Entfernt den Circle aus dem Plugwise-Netzwerk<br><br>
  26005. </ul>
  26006. <code>ping</code> <br>
  26007. <ul>
  26008. Sendet ein Ping an den Circle und setzt das Reading "ping" im Format "q_in - q_out - pingZeit"<br><br>
  26009. </ul>
  26010. <code>status</code> <br>
  26011. <ul>
  26012. Liest den aktuellen Status des Circles aus<br><br>
  26013. </ul>
  26014. </ul>
  26015. <br><br>
  26016. <b>Attribute</b>
  26017. <ul>
  26018. <code>interval</code> <br>
  26019. <ul>
  26020. Setzt das Abruf-Intervall speziell fĂźr diesen einen Circle<br>
  26021. </ul>
  26022. </ul>
  26023. <br><br>
  26024. <b>Beispiel</b> <br>
  26025. <ul><code>define Circle_2907CC9 PW_Circle 2907CC9</code></ul>
  26026. <br>
  26027. <br>
  26028. </ul>
  26029. =end html
  26030. =cut
  26031. <a name="PW_Scan"></a>
  26032. <h3>PW_Scan</h3>
  26033. <div class='langLinks'>[<a href='commandref.html#PW_Scan'>EN</a> DE]</div>
  26034. <ul>
  26035. Das PW_Scan Modul setzt auf das Plugwise-System auf. Es muss zuerst ein Plugwise-Stick angelegt werden.
  26036. Siehe <a href="#Plugwise">Plugwise</a>.
  26037. <br>
  26038. <a name="PW_Scan define"></a>
  26039. <br>
  26040. <b>Define</b>
  26041. <ul>
  26042. <code>define &lt;name&gt; PW_Scan &lt;ShortAddress&gt;</code> <br>
  26043. <br>
  26044. <code>&lt;ShortAddress&gt;</code>
  26045. <ul>
  26046. gibt die Kurzadresse (die letzten 4 Bytes) des Gerätes an. <br>
  26047. </ul>
  26048. <br><br>
  26049. </ul>
  26050. </ul>
  26051. =end html
  26052. =cut
  26053. <a name="PW_Sense"></a>
  26054. <h3>PW_Sense</h3>
  26055. <div class='langLinks'>[<a href='commandref.html#PW_Sense'>EN</a> DE]</div>
  26056. <ul>
  26057. Das PW_Sense Modul setzt auf das Plugwise-System auf. Es muss zuerst ein Plugwise-Stick angelegt werden.
  26058. Siehe <a href="#Plugwise">Plugwise</a>.
  26059. <br>
  26060. <a name="PW_Sense define"></a>
  26061. <br>
  26062. <b>Define</b>
  26063. <ul>
  26064. <code>define &lt;name&gt; PW_Sense &lt;ShortAddress&gt;</code> <br>
  26065. <br>
  26066. <code>&lt;ShortAddress&gt;</code>
  26067. <ul>
  26068. gibt die Kurzadresse (die letzten 4 Bytes) des Gerätes an. <br>
  26069. </ul>
  26070. <br><br>
  26071. </ul>
  26072. </ul>
  26073. =end html
  26074. =cut
  26075. <a name="PW_Switch"></a>
  26076. <h3>PW_Switch</h3>
  26077. <div class='langLinks'>[<a href='commandref.html#PW_Switch'>EN</a> DE]</div>
  26078. <ul>
  26079. Das PW_Switch Module basiert auf dem Plugwise-System. Es muss zuerst ein Plugwise-Stick angelegt werden.
  26080. Siehe <a href="#PW_Switch">PW_Switch</a>.
  26081. <br>
  26082. <a name="PW_Switch define"></a>
  26083. <br>
  26084. <b>Define</b>
  26085. <ul>
  26086. <code>define &lt;name&gt; PW_Switch &lt;ShortAddress&gt;</code> <br>
  26087. <br>
  26088. <code>&lt;ShortAddress&gt;</code>
  26089. <ul>
  26090. gibt die Kurzadresse (die letzten 4 Bytes) des Circles an. <br>
  26091. </ul>
  26092. <br>
  26093. Beispiel: <br>
  26094. <code>define PW_Switch_2907CC9 PW_Switch 2907CC9</code>
  26095. <br>
  26096. </ul><br>
  26097. <b>Set</b>
  26098. <ul>
  26099. <code>syncTime</code> <br>
  26100. <ul>
  26101. Synchronisiert die interne Uhr des Circles mit der lokalen Systemzeit<br><br>
  26102. </ul>
  26103. <code>removeNode</code> <br>
  26104. <ul>
  26105. Entfernt den Circle aus dem Plugwise-Netzwerk<br><br>
  26106. </ul>
  26107. <code>ping</code> <br>
  26108. <ul>
  26109. Sendet ein Ping an den Circle und setzt das Reading "ping" im Format "q_in - q_out - pingZeit"<br><br>
  26110. </ul>
  26111. </ul>
  26112. <br>
  26113. </ul>
  26114. =end html
  26115. =cut
  26116. <a name="PachLog"></a>
  26117. <h3>PachLog</h3>
  26118. <ul>
  26119. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  26120. hier: <a href='commandref.html#PachLog'>PachLog</a><br/>
  26121. </ul>
  26122. <a name="PiXtendV2"></a>
  26123. <h3>PiXtendV2</h3>
  26124. <div class='langLinks'>[<a href='commandref.html#PiXtendV2'>EN</a> DE]</div>
  26125. <ul>
  26126. PiXtend ist eine speicherprogrammierbare Steuerung auf Basis des Raspberry Pi.
  26127. Dieses FHEM-Modul erm&ouml;glicht dabei den Zugriff auf die Funktionen des PiXtendV2-Boards in der FHEM-Oberfl&auml;che.
  26128. Der PiXtend bietet dabei eine Vielzahl an digitalen und analogen Ein- und Ausg&auml;ngen, die nach Industrie-Standards ausgelegt sind
  26129. und ist aufgrund der sicheren Anschl&uuml;sse auch ideal f&uuml;r die Hausautomatisierung geeignet.
  26130. F&uuml;r mehr Informationen &uuml;ber PiXtend(R) und das FHEM-Modul besuchen Sie unsere Website
  26131. <a href="http://www.PiXtend.de" target="_blank">www.PiXtend.de</a> oder
  26132. <a href="http://www.PiXtend.com" target="_blank">www.PiXtend.com</a>.
  26133. <br><br>
  26134. <a name="PiXtendV2Define"></a>
  26135. <b>Define</b>
  26136. <ul>
  26137. <code>define &lt;name&gt; PiXtendV2 &lt;optional&gt;</code>
  26138. <br><br>
  26139. Der Parameter "optional" bestimmt f&uuml;r welches Hardware-Modell ein FHEM-Ger&auml;t angelegt werden soll, z.B. S oder L.
  26140. Wird der Parameter weggelassen, wird automatisch ein FHEM-Ger&auml;t f&uuml;r Model -S- angelegt.
  26141. <br><br>
  26142. Beispiel:
  26143. <ul>
  26144. <code>define pix PiXtendV2</code> &emsp;&emsp;&emsp;=> erzeugt ein FHEM-Ger&auml;t f&uuml;r Model S<br>
  26145. <code>define pix PiXtendV2 S</code> &emsp;&emsp;=> erzeugt ein FHEM-Ger&auml;t f&uuml;r Model S<br>
  26146. <code>define pix PiXtendV2 L</code> &emsp;&emsp;=> erzeugt ein FHEM-Ger&auml;t f&uuml;r Model L<br>
  26147. </ul>
  26148. </ul>
  26149. <br>
  26150. <a name="PiXtendV2Set"></a>
  26151. <b>Set</b>
  26152. <ul>
  26153. Kommandos um die Basiskonfiguration f&uuml;r den PiXtend durchzuf&uuml;hren, beginnen mit einem "_".<br>
  26154. Unterst&uuml;tzt ein Kommando mehrere Kan&auml;le, muss das "#"-Zeichen durch die Kanal-Nummer ersetzt werden.<br>
  26155. Alle Set-Kommandos sind unabh&auml;ngig von der Gro&szlig;-/Kleinschreibung um die einfache Benutzung zu erm&ouml;glichen.<br>
  26156. F&uuml;r mehr Informationen sehen Sie bitte im Handbuch f&uuml;r den PiXtendV2 im
  26157. <a href="http://www.PiXtend.de/PiXtend/downloads/" target="_blank">Downloadbereich</a>
  26158. unserer Hompage nach.
  26159. <br><br>
  26160. Beispiel:
  26161. <ul>
  26162. <code>set pix relayOut0 on</code><br>
  26163. <code>set pix Relayout0 On</code><br>
  26164. <code>set pix rElAyoUT0 oFf</code><br>
  26165. </ul>
  26166. <br><br>
  26167. <li>_GPIO#Ctrl [input,output,DHT11,DHT22]<br>
  26168. Mit dieser Einstellung kann die Funktion des GPIO eingestellt werden. [input], [output] oder [DHT11] und [DHT22] wenn ein DHT-Sensor an den GPIO angeschlossen ist.
  26169. Wenn ein DHT-Sensor angeschlossen ist und verwendet wird, kann die normale Funktion des GPIO als Eingang/Ausgang nicht gleichzeitig verwendet werden.
  26170. <br><br></li>
  26171. <li>_GPIOPullupsEnable [yes,no]<br>
  26172. Diese Einstellung aktiviert [yes] oder deaktiviert [no] f&uuml;r alle GPIOs die M&ouml;glichkeit die internen PullUp-Widerst&auml;nde durch GPIOOut zu setzen.
  26173. <br><br></li>
  26174. <li>_JumperSettingAI# [5V,10V]<br>
  26175. Diese Einstellung beeinflusst die Berechnung der Spannung durch die analogen Eing&auml;nge und bezieht sich dabei auf die tats&auml;chliche Position des Jumpers
  26176. auf dem PiXtend-Board [5V,10V]. Wenn kein Jumper verwendet wird, entspricht das der Standardeinstellung von [10V].
  26177. <br><br></li>
  26178. <li>_StateLEDDisable [yes,no]<br>
  26179. Diese Einstellung deaktiviert [yes] oder aktiviert [no] die Status-LED auf dem PiXtend. Wenn die LED deaktiviert ist, leuchtet sie im Fehlerfall nicht auf.
  26180. <br><br></li>
  26181. <li>_WatchdogEnable [disable,125ms,1s,8s]<br>
  26182. Diese Einstellung erm&ouml;glicht die Konfiguration des Watchdog-Timers. Wenn der Watchdog konfiguriert ist, geht der PiXtend in den Sicheren Zustand
  26183. &uuml;ber, falls innerhalb der eingestellten Zeit keine g&uuml;ltige &Uuml;bertragung zwischen PiXtend und Raspberry Pi stattgefunden hat.
  26184. Im Sicheren Zustand kann der PiXtend erst wieder angesprochen werden, nachdem ein Reset des PiXtend durchgef&uuml;hrt wurde.
  26185. <br><br></li>
  26186. <li>AnalogOut# []<br>
  26187. Stellt am analogen Ausgang eine Spannung ein. Der &uuml;bergebene Wert kann eine Spannung zwischen 0 V und 10 V
  26188. oder ein Rohwert zwischen 0 und 1023 sein. Um den Wert als Spannung zu &uuml;bergeben, muss der Wert ein "." enthalten,
  26189. auch wenn der Wert ganzzahlig ist.
  26190. <br><br>
  26191. Beispiel:
  26192. <ul>
  26193. <code>set pix analogout0 2.5</code> &emsp;&emsp;=> Setzt den analogen Ausgang 0 auf 2,5 V<br>
  26194. <code>set pix analogout0 4.0</code> &emsp;&emsp;=> Setzt den analogen Ausgang 0 auf 4 V<br>
  26195. <code>set pix analogout0 223</code> &emsp;&emsp;=> Setzt den analogen Ausgang 0 auf 10*(233/1024) = 1,09 V
  26196. </ul>
  26197. <br><br></li>
  26198. <li>DigitalDebounce# [0-255]<br>
  26199. Erm&ouml;glicht das Entprellen der digitalen Eing&auml;nge. Die Einstellung beeinflusst dabei immer zwei Kan&auml;le.
  26200. DigitalDebounce01 beeinflusst somit DigitalIn0 und DigitalIn1.
  26201. Die resultierende Verz&ouml;gerung berechnet sich dabei durch (eingestellten Wert)*(100 ms).
  26202. Der &uuml;bergebene Wert kann eine beliebige Zahl zwischen 0 und 255 sein.
  26203. Entprellen kann sinnvoll sein, falls an den Eing&auml;ngen Schalter oder Taster angeschlossen sind.
  26204. <br><br>
  26205. Beispiel:
  26206. <ul>
  26207. <code>set pix digitaldebounce01 20</code> &emsp;&emsp;=> entprellt DigitalIn0 und DigitalIn1 &uuml;ber (20*100ms) = 2s
  26208. </ul>
  26209. <br><br></li>
  26210. <li>DigitalOut# [on,off,toggle]<br>
  26211. Setzt den digitalen Ausgang auf HIGH [on] oder LOW [off] oder [toggle]t ihn.
  26212. <br><br></li>
  26213. <li>GPIODebounce# [0-255]<br>
  26214. Erm&ouml;glicht das Entprellen der GPIO Eing&auml;nge. Die Einstellung beeinflusst dabei immer zwei Kan&auml;le.
  26215. GPIODebounce01 beeinflusst somit GPIOIn0 und GPIOIn1.
  26216. Die resultierende Verz&ouml;gerung berechnet sich dabei durch (eingestellten Wert)*(100 ms).
  26217. Der &uuml;bergebene Wert kann eine beliebige Zahl zwischen 0 und 255 sein.
  26218. Entprellen kann sinnvoll sein, falls an den Eing&auml;ngen Schalter oder Taster angeschlossen sind.
  26219. <br><br>
  26220. Beispiel:
  26221. <ul>
  26222. <code>set pix gpiodebounce23 33</code> &emsp;&emsp;=> entprellt GPIOIn2 und GPIOIn3 &uuml;ber (33*100ms) = 3,3s
  26223. </ul>
  26224. <br><br></li>
  26225. <li>GPIOOut# [on,off,toggle]<br>
  26226. Setzt den GPIO auf HIGH [on] oder LOW [off] oder [toggle]t ihn, falls er als Ausgang konfiguriert ist.
  26227. Wenn der GPIO als Eingang konfiguriert ist, kann mit diesem Kommando der interne PullUp-Widerstand aktiviert [on], deaktiviert [off] oder
  26228. ge[toggle]t werden. Dazu muss die M&ouml;glichkeit allerdings global durch _GPIOPullupsEnable aktiviert werden.
  26229. <br><br></li>
  26230. <li>PWM<br>
  26231. PiXtendV2 unterst&uuml;tzt mehrere PWM-Modi, die mit diesen Einstellungen konfiguriert werden k&ouml;nnen.
  26232. Zum Beispiel wird ein Servo-Mode um Modellbau-Servomotoren anzusteuern, ein Frequency-Mode oder ein Duty-Cycle-Mode unterst&uuml;zt.
  26233. F&uuml;r mehr Informationen sehen Sie bitte im Handbuch f&uuml;r den PiXtendV2 im
  26234. <a href="http://www.PiXtend.de/PiXtend/downloads/" target="_blank">Downloadbereich</a>
  26235. unserer Hompage nach.
  26236. <br><br>
  26237. PWM#Ctrl0 ben&ouml;tigt einen Wert zwischen 0 und 255<br>
  26238. PWM#Ctrl1 ben&ouml;tigt einen Wert zwischen 0 und 65535 (oder einen Wert zwischen 0 und 255, siehe Ausnahme Model -S-)<br>
  26239. PWM#A/B ben&ouml;tigt einen Wert zwischen 0 und 65535 (oder einen Wert zwischen 0 und 255, siehe Ausnahme Model -S-)
  26240. <br><br></li>
  26241. <li>RelayOut# [on,off,toggle]<br>
  26242. Setzt das Relay auf HIGH [on] oder LOW [off] oder [toggle]t es.
  26243. <br><br></li>
  26244. <li>Reset<br>
  26245. Setzt den Controller auf dem PiXtend zur&uuml;ck, z.B. wenn er sich im Sicheren Zustand befindet, um ihn erneut konfigurieren zu k&ouml;nnen.
  26246. <br><br></li>
  26247. <li>RetainCopy [on,off]<br>
  26248. Wenn RetainCopy aktiviert [on] ist, werden die geschriebenen Daten RetainDataOut vom PiXtend in RetainDataIn zur&uuml;ckgegeben.
  26249. Die Aktivierung kann in Situationen sinnvoll sein, wenn &uuml;berpr&uuml;ft werden soll, welche Daten an den PiXtend geschickt wurden.
  26250. Ist die Funktion deaktiviert [off] werden die zuletzt gespeicherten Daten in RetainDataIn zur&uuml;ckgegeben.
  26251. <br><br></li>
  26252. <li>RetainDataOut [0-(RetainSize-1)] [0-255]<br>
  26253. Der PiXtendV2 unterst&uuml;zt die Speicherung remanenter/persistenter Daten - auch Retain genannt. Diese Daten werden im Falle
  26254. einer Betribsspannungsunterbrechung, beim Ausl&ouml;sen des Watchdog-Timers oder beim Entritt in den Sicheren Zustand gespeichert,
  26255. sofern diese Funktion aktiviert wurde. Die Retain-Daten sind dabei in Bytes organisiert, wobei jedes Byte
  26256. individuell mit einem Wert zwischen 0 und 255 beschrieben werden kann.<br>
  26257. Als ersten Parameter erwartet das Kommando den Index des Bytes, der zwischen 0 und (RetainSize-1) liegt. RetainSize ist in den "Internals" zu finden.
  26258. Als zweiter Parameter wird der Wert erwartet, der gespeichert werden soll.
  26259. <br><br>
  26260. Beispiel:
  26261. <ul>
  26262. <code>set pix retaindataout 0 34</code> &emsp;&emsp;&emsp;=> speichert 34 in Retain-Data-Byte 0<br>
  26263. <code>set pix retaindataout 30 222</code> &emsp;&emsp;=> speichert 222 in Retain-Data-Byte 30
  26264. </ul>
  26265. <br><br></li>
  26266. <li>RetainEnable [on,off]<br>
  26267. Die Funktion um Retain-Daten auf dem PiXtend zu speichern muss erst aktiviert [on] werden. Andernfalls [off] werden keine Daten gespeichert.
  26268. Es ist zu beachten, dass f&uuml;r den Retain-Speicherbereich 10.000 Schreibzyklen unterst&uuml;tzt werden. Dementsprechend
  26269. sollte die Funktion nur aktiviert werden, wenn sie tats&auml;chlich ben&ouml;tigt wird.
  26270. <br><br></li>
  26271. <li>SafeState<br>
  26272. Mit dieser Einstellung kann der PiXtend in den Sicheren Zustand versetzt werden. Wenn die Retain-Speicherung aktiviert ist, werden die Daten gesichert.
  26273. Im Sicheren Zustand kommuniziert der PiXtend nicht mehr mit FHEM. Um den PiXtend neuzustarten muss ein Reset durchgef&uuml;hrt werden.
  26274. <br><br></li>
  26275. </ul>
  26276. <br>
  26277. <a name="PiXtendV2Get"></a>
  26278. <b>Get</b>
  26279. <ul>
  26280. Unterst&uuml;tzt ein Kommando mehrere Kan&auml;le, muss das "#"-Zeichen durch die Kanal-Nummer ersetzt werden.<br>
  26281. Alle Get-Kommandos sind unabh&auml;ngig von der Gro&szlig;-/Kleinschreibung um die einfache Benutzung zu erm&ouml;glichen.<br>
  26282. F&uuml;r mehr Informationen sehen Sie bitte im Handbuch f&uuml;r den PiXtendV2 im
  26283. <a href="http://www.PiXtend.de/PiXtend/downloads/" target="_blank">Downloadbereich</a>
  26284. unserer Hompage nach.<br>
  26285. Die Werte k&ouml;nnen als Text, wobei die Werte in eckigen Klammern stehen oder als rohe Werte zur&uuml;ckgegeben werden.
  26286. Die Einstellung f&uuml;r das Format ist in den Attributen ("PiXtend_GetFormat") zu finden.
  26287. <br><br>
  26288. <li>AnalogIn#<br>
  26289. Gibt den Wert des ausgew&auml;hlten analogen Eingangs zur&uuml;ck.
  26290. Der Wert h&auml;ngt dabei von der Einstellung _JumperSettingAI# und der tats&auml;chlichen Jumper-Position auf dem Board ab, sowie der Messmethode des Kanals ab.
  26291. AnalogIn4 und AnalogIn5 bei Modell -L- sind z.B. Stromeing&auml;nge.
  26292. <br><br></li>
  26293. <li>DigitalIn#<br>
  26294. Gibt den Status on (HIGH) oder off (LOW) des digitalen Eingangs zur&uuml;ck.
  26295. <br><br></li>
  26296. <li>GPIOIn#<br>
  26297. Gibt den Status on (HIGH) oder off (LOW) des GPIOs zur&uuml;ck, unabh&auml;ngig von der Konfiguration (input, output, ..).
  26298. <br><br></li>
  26299. <li>RetainDataIn [0-(RetainSize-1)]<br>
  26300. Gibt den Wert des ausgew&auml;hlten RetainDataIn-Bytes zur&uuml;ck.
  26301. <br><br></li>
  26302. <li>Sensor# [temperature,humidity]<br>
  26303. Wenn ein DHT-Sensor an den entsprechenden GPIO angeschlossen ist und _GPIO#Ctrl auf DHT11 oder DHT22 gesetzt ist
  26304. wird die Temperatur und Luftfeuchtigkeit gemessen und kann ausgelesen werden.
  26305. <br><br>
  26306. Beispiel:
  26307. <ul>
  26308. <code>set pix _GPIO0Ctrl DHT11</code><br>
  26309. <code>get pix Sensor0 temperature</code>
  26310. </ul>
  26311. <br><br></li>
  26312. <li>SysState<br>
  26313. Gibt den Systemstatus [defined, active, error] des FHEM-Moduls zur&uuml;ck.
  26314. <br><br></li>
  26315. <li>UCState<br>
  26316. Gibt den Status des PiXtend zur&uuml;ck. Ist der Status 1, ist alles in Ordnung. Ist der Status allerdings gr&ouml;&szlig;er als 1 ist ein Fehler aufgetreten
  26317. oder steht noch an. In diesem Fall kann der PiXtend nicht konfiguriert werden.
  26318. F&uuml;r mehr Informationen sehen Sie bitte im Handbuch f&uuml;r den PiXtendV2 im
  26319. <a href="http://www.PiXtend.de/PiXtend/downloads/" target="_blank">Downloadbereich</a>
  26320. unserer Hompage nach.
  26321. <br><br></li>
  26322. <li>UCWarnings<br>
  26323. Der zur&uuml;ckgegebene Wert repr&auml;sentiert die Warnungen des PiXtendV2.
  26324. F&uuml;r mehr Informationen sehen Sie bitte im Handbuch f&uuml;r den PiXtendV2 im
  26325. <a href="http://www.PiXtend.de/PiXtend/downloads/" target="_blank">Downloadbereich</a>
  26326. unserer Hompage nach.
  26327. <br><br></li>
  26328. <li>Version<br>
  26329. Gibt die Version des FHEM-Moduls sowie die PiXtend-Version [Model-Hardware-Firmware] zur&uuml;ck.
  26330. <br><br></li>
  26331. </ul>
  26332. <br>
  26333. <a name="PiXtendV2Readings"></a>
  26334. <b>Readings</b>
  26335. <ul>
  26336. Das FHEM-Modul des PiXtend unterst&uuml;zt mehrere Readings, von denen die meisten ein Event ausl&ouml;sen, sobald sie sich &auml;ndern.
  26337. Die Bedeutung der Readings ist &auml;hnlich zu den Get-Kommandos.
  26338. <br><br>
  26339. <li>AnalogIn#<br>
  26340. Zeigt das Ergebnis der Messungen der analogen Eing&auml;nge in V beziehungsweise in mA an.
  26341. <br><br></li>
  26342. <li>DigitalIn#<br>
  26343. Zeigt den Status on (HIGH) oder off (LOW) der digitalen Eing&auml;nge an.
  26344. <br><br></li>
  26345. <li>Firmware<br>
  26346. Zeigt die Firmware-Version an.
  26347. <br><br></li>
  26348. <li>GPIOIn#<br>
  26349. Zeigt den Status on (HIGH) oder off (LOW) der GPIOs, unabh&auml;ngig von deren Konfiguration (input, output, ..).
  26350. <br><br></li>
  26351. <li>Hardware<br>
  26352. Zeigt die Hardware-Version an.
  26353. <br><br></li>
  26354. <li>Model<br>
  26355. Zeigt das Model an.
  26356. <br><br></li>
  26357. <li>RetainDataIn<br>
  26358. Zeigt die Werte von RetainDataIn an. Die Werte von RetainDataIn sind dabei in einer Zeile
  26359. zusammengefasst. Der am weitsten links stehende Wert entspricht Byte0 / RetainDataIn0.
  26360. Die Werte sind durch ein Leerzeichen " " voneinander getrennt und k&ouml;nnen somit einfach in Perl ausgewertet werden:
  26361. <br><br>
  26362. Beispiel:
  26363. <ul>
  26364. <code>my ($str) = ReadingsVal(pix, "RetainDataIn", "?")</code><br>
  26365. <code>if($str ne "?"){</code><br>
  26366. &emsp;<code>my @val = split(/ /, $str);</code> &emsp;&emsp;=> $val[0] enth&auml;lt nun Byte0, $val[1] Byte1, usw<br>
  26367. &emsp;<code>...</code><br>
  26368. <code>}</code>
  26369. </ul>
  26370. <br><br></li>
  26371. <li>Sensor#T/H<br>
  26372. Zeigt die Temperatur (T) in &deg;C und die Luftfeuchtigkeit (H) in % des Sensors an, der an den entsprechenden GPIO angeschlossen ist.
  26373. <br><br></li>
  26374. <li>UCState<br>
  26375. Zeigt den Status des PiXtend an. Ist der Status 1, ist alles in Ordnung. Ist der Status allerdings gr&ouml;&szlig;er als 1 ist ein Fehler aufgetreten
  26376. oder steht noch an. In diesem Fall kann der PiXtend nicht konfiguriert werden.
  26377. F&uuml;r mehr Informationen sehen Sie bitte im Handbuch f&uuml;r den PiXtendV2 im
  26378. <a href="http://www.PiXtend.de/PiXtend/downloads/" target="_blank">Downloadbereich</a>
  26379. unserer Hompage nach.
  26380. <br><br></li>
  26381. <li>UCWarnings<br>
  26382. Der angezeigte Wert repr&auml;sentiert die Warnungen des PiXtendV2.
  26383. F&uuml;r mehr Informationen sehen Sie bitte im Handbuch f&uuml;r den PiXtendV2 im
  26384. <a href="http://www.PiXtend.de/PiXtend/downloads/" target="_blank">Downloadbereich</a>
  26385. unserer Hompage nach.
  26386. <br><br></li>
  26387. </ul>
  26388. <br>
  26389. <a name="PiXtendV2Attr"></a>
  26390. <b>Attributes</b>
  26391. <ul>
  26392. F&uuml;r den Attribut-Namen muss die Gro&szlig;-/Kleinschreibung beachtet werden.
  26393. <br><br>
  26394. <li>PiXtend_GetFormat [text,value]<br>
  26395. &Auml;ndert die Darstellung, wie die Werte durch die Get-Kommandos zur&uuml;ckgegeben werden. Die Werte k&ouml;nnen entweder in einer Nachricht [text] oder als rohe Werte [value] zur&uuml;ckgegeben werden.
  26396. Standard ist die Ausgabe als Text.
  26397. <br><br></li>
  26398. <li>PiXtend_Parameter<br>
  26399. Dieses Attribut kann verwendet werden, um die Einstellungen zur Basiskonfiguration (Set-Kommandos beginnend mit "_") als Attribut zu speichern. Attribute werden im Gegensatz zu Set-Kommandos in der Config-Datei gespeichert.<br>
  26400. Einzelne Kommandos werden durch ein Leerzeichen voneinander getrennt und erhalten ihre Werte nach einem Doppelpunkt.
  26401. <br><br>
  26402. Beispiel:
  26403. <ul>
  26404. <code>attr pix PiXtend_Parameter _gpio0ctrl:dht11 _gpio3ctrl:dht22</code>
  26405. </ul>
  26406. <br><br></li>
  26407. </ul>
  26408. <br>
  26409. </ul>
  26410. <p><a name="Plugwise"></a>
  26411. <h3>Plugwise</h3>
  26412. <div class='langLinks'>[<a href='commandref.html#Plugwise'>EN</a> DE]</div>
  26413. <ul>
  26414. Modul fĂźr das Plugwise-System.
  26415. <br>
  26416. Achtung: Dieses Modul benĂśtigt folgende Perl-Module:
  26417. <ul><li>Device::SerialPort oder Win32::SerialPort</li>
  26418. <li>digest:CRC</li></ul>
  26419. <br><br>
  26420. <b>Define</b>
  26421. <ul>
  26422. <code>define &lt;name&gt; Plugwise &lt;device&gt; </code><br>
  26423. </ul>
  26424. <br>
  26425. &lt;device&gt; Gibt den COM-Port des Plugwise-Stick an.
  26426. Unter Linux ist dies im Normalfall /dev/ttyUSBx, wobei x eine fortlaufende Nummer ist. (zB /dev/ttyUSB0)
  26427. Wobei es unter Linux sinnvoller ist, den Port mittels UDEV-Regeln oder mittels /dev/by-id/ anzugeben.
  26428. Der Plugwise-Stick läuft fix auf 115200 Baud<br>
  26429. <br>
  26430. Beispiel: <br>
  26431. <code>define myPlugwise Plugwise /dev/ttyPlugwise</code>
  26432. <br>
  26433. </ul>
  26434. <br>
  26435. <a name="PLUGWISEset"></a>
  26436. <b>Set</b>
  26437. <ul>
  26438. <code>Scan_Circles</code>
  26439. <ul>
  26440. Startet eine Suche nach neuen Geräten und legt diese per Autocreate an.
  26441. </ul><br><br>
  26442. <code>syncTime</code>
  26443. <ul>
  26444. Syncronisiert die internen RTCs der Geräte mit der aktuellen Systemzeit.
  26445. </ul><br><br>
  26446. <code>reOpen</code>
  26447. <ul>
  26448. �ffnet den COM-Port neu (zB bei zu vielen Fehlern, nach deren Behebung)
  26449. </ul><br><br>
  26450. </ul>
  26451. <br><br>
  26452. <b>Attribute</b>
  26453. <ul>
  26454. <code>circlecount</code><br>
  26455. <ul>
  26456. Maximale Anzahl der Geräte, nach denengesucht wird.
  26457. <br><br>
  26458. </ul>
  26459. <code>interval</code><br>
  26460. <ul>Standard-Abfrageintervall der Circles
  26461. </ul><br><br>
  26462. <code>autosync</code><br>
  26463. <ul>Sendet alle >n< Sekunden ein "syncTime" an alle Geräte
  26464. </ul><br><br>
  26465. <code>WattFormat</code><br>
  26466. <ul>String, mit welchem die Power-Readings formatiert werden
  26467. Standard: %0.f
  26468. </ul><br><br>
  26469. <code>showCom</code><br>
  26470. <ul>Schreibt die gesamte Kommunikation (gefiltern nach >regEx<) in das Reading "communication"
  26471. (Am besten mit FileLog oder dem Eventmonitor anzusehen)
  26472. </ul><br><br>
  26473. <br>
  26474. </ul>
  26475. =end html
  26476. =cut
  26477. <a name="PostMe"></a>
  26478. <h3>PostMe</h3>
  26479. <div class='langLinks'>[<a href='commandref.html#PostMe'>EN</a> DE]</div>
  26480. <ul>
  26481. <a href="https://wiki.fhem.de/wiki/Modul_PostMe">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#PostMe">PostMe</a>
  26482. </ul>
  26483. <p><a name="PrecipitationSensor"></a>
  26484. <h3>PrecipitationSensor</h3>
  26485. <ul>
  26486. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  26487. hier: <a href='commandref.html#PrecipitationSensor'>PrecipitationSensor</a><br/>
  26488. </ul>
  26489. <a name="PushNotifier"></a>
  26490. <h3>PushNotifier</h3>
  26491. <div class='langLinks'>[<a href='commandref.html#PushNotifier'>EN</a> DE]</div>
  26492. <ul>
  26493. PushNotifier ist ein Dienst, um Benachrichtigungen von einer vielzahl
  26494. von Quellen auf Deinem Smartphone oder Tablet zu empfangen.<br>
  26495. Du brauchst einen Account um dieses Modul zu verwenden.<br>
  26496. F��r weitere Informationen besuche <a href="http://www.fhemwiki.de/wiki/PushNotifier">FhemWiki PushNotifier</a>.<br>
  26497. <br>
  26498. Diskutiere das Modul <a href="http://forum.fhem.de/index.php/topic,25440.0.html">hier</a>.<br>
  26499. <br>
  26500. <br>
  26501. <a name="PushNotifierDefine"></a>
  26502. <b>Define</b>
  26503. <ul>
  26504. <code>define &lt;name&gt; PushNotifier &lt;apiToken&gt; &lt;appName&gt; &lt;user&gt; &lt;password&gt; &lt;deviceID&gt;</code><br>
  26505. <br>
  26506. Du musst einen Account erstellen, um das apiToken zu bekommen.<br>
  26507. Und du musst eine Anwendung erstellen, um einen appToken zu bekommen.<br>
  26508. <br>
  26509. Beispiel:
  26510. <ul>
  26511. <code>define PushNotifier1 PushNotifier 01234 appname user password 012</code>
  26512. </ul>
  26513. </ul>
  26514. <br>
  26515. <a name="PushNotifierSet"></a>
  26516. <b>Set</b>
  26517. <ul>
  26518. <code>set &lt;PushNotifier_device&gt; message </code>
  26519. <br>
  26520. <br>
  26521. Beispiele:
  26522. <ul>
  26523. <code>set PushNotifier1 message Dies ist ein Text.</code><br>
  26524. </ul>
  26525. Zeilenumbruch:
  26526. <ul>
  26527. <code>set PushNotifier1 message Dies ist ein Text._Neue Zeile.</code><br>
  26528. </ul>
  26529. </ul>
  26530. <br>
  26531. <b>Get</b> <ul>N/A</ul><br>
  26532. <br>
  26533. <a name="PushNotifierEvents"></a>
  26534. <b>Generated events:</b>
  26535. <ul>
  26536. N/A
  26537. </ul>
  26538. </ul>
  26539. <p><a name="Pushalot"></a>
  26540. <h3>Pushalot</h3>
  26541. <div class='langLinks'>[<a href='commandref.html#Pushalot'>EN</a> DE]</div>
  26542. <ul>
  26543. Pusalot ist ein Dienst, um Benachrichtigungen von einer vielzahl
  26544. von Quellen auf ein Windows Phone Device zu empfangen.<br>
  26545. Du brauchst einen Account um dieses Modul zu verwenden.<br>
  26546. FĂźr weitere Informationen Ăźber den Dienst besuche <a href="https://pushalot.com" target="_blank">pushalot.com</a>.<br>
  26547. <br>
  26548. Diskutiere das Modul <a href="http://forum.fhem.de/index.php/topic,37775.0.html" target="_blank">hier</a>.<br>
  26549. <br>
  26550. <br>
  26551. <a name="PushalotDefine"></a>
  26552. <b>Define</b>
  26553. <ul>
  26554. <code>define &lt;name&gt; Pushalot &lt;token&gt; [&lt;source&gt;]</code><br>
  26555. <br>
  26556. <table>
  26557. <colgroup>
  26558. <col style="width: 100px";"></col>
  26559. <col></col>
  26560. </colgroup>
  26561. <tr>
  26562. <td>&lt;token&gt;</td>
  26563. <td>Der Token der den pushalot-Account identifiziert. Um diesen zu bekommen, muss ein Account erstellt werden.</td>
  26564. </tr>
  26565. <tr>
  26566. <td>&lt;source&gt;</td>
  26567. <td>Definiert den Absender, der in der Nachricht angezeigt werden soll.</td>
  26568. </tr>
  26569. </table>
  26570. <br>
  26571. Beispiel:
  26572. <ul>
  26573. <code>define Pushalot PushNotification 123234 FHEM</code>
  26574. </ul>
  26575. </ul>
  26576. <br>
  26577. <a name="PushalotSet"></a>
  26578. <b>Set</b>
  26579. <ul>
  26580. <code>set &lt;Pushalot_device&gt; "&lt;message&gt;" ["&lt;title&gt;"] ["&lt;image&gt;"] ["&lt;link&gt;"] ["&lt;link_title&gt;"] ["&lt;important&gt;"] ["&lt;silent&gt;"]</code>
  26581. <br>
  26582. <br>
  26583. <table>
  26584. <colgroup>
  26585. <col style="width: 100px";"></col>
  26586. <col></col>
  26587. </colgroup>
  26588. <tr>
  26589. <td>&lt;message&gt;</td>
  26590. <td>Der Nachrichten-Text.</td>
  26591. </tr>
  26592. <tr>
  26593. <td>&lt;title&gt;</td>
  26594. <td>Der Titel der Nachricht.</td>
  26595. </tr>
  26596. <tr>
  26597. <td>&lt;image&gt;</td>
  26598. <td>Optionale Bild-URL die in der Nachricht angezeigt werden soll.</td>
  26599. </tr>
  26600. <tr>
  26601. <td>&lt;link&gt;</td>
  26602. <td>Ein optionaler Link der an die Nachricht angehängt werden soll.</td>
  26603. </tr>
  26604. <tr>
  26605. <td>&lt;link_title&gt;</td>
  26606. <td>Optionaler Link Titel. Wenn kein Titel angegeben wird, ist dieser die URL.</td>
  26607. </tr>
  26608. <tr>
  26609. <td>&lt;important&gt;</td>
  26610. <td>True|False: True wenn die Nachricht als 'wichtig' markiert werden soll, sonst False (Default)</td>
  26611. </tr>
  26612. <tr>
  26613. <td>&lt;silent&gt;</td>
  26614. <td>True|False: True wenn die Nachricht 'still' ausgeliefert werden soll (kein Benachrichtigungssound wird abgespielt), ansonsten False (Default)</td>
  26615. </tr>
  26616. <tr>
  26617. <td>&lt;time_to_live&gt;</td>
  26618. <td>Zeit in Minuten nach der die Nachricht automatisch entfernt wird. Achtung: Der Pushalot Service prĂźft zu lĂśschende Nachrichten alle 5 Minuten</td>
  26619. </tr>
  26620. </table>
  26621. <br>
  26622. Beispiele:
  26623. <ul>
  26624. <code>set PushNotification message "Das ist meine Nachricht."</code><br>
  26625. <code>set PushNotification message "Das ist meine Nachricht." "Mit Titel"</code><br>
  26626. <code>set PushNotification message "Das ist meine Nachricht." "Mit Titel" "http://www.xyz.com/image.png"</code><br>
  26627. <code>set PushNotification message "Das ist meine Nachricht." "Mit Titel" "http://www.xyz.com/image.png" "http://www.xyz.com"</code><br>
  26628. <code>set PushNotification message "Das ist meine Nachricht." "Mit Titel" "http://www.xyz.com/image.png" "http://www.xyz.com" "Link Titel" </code><br>
  26629. <code>set PushNotification message "Das ist meine Nachricht." "Mit Titel" "http://www.xyz.com/image.png" "http://www.xyz.com" "Link Titel" True</code><br>
  26630. <code>set PushNotification message "Das ist meine Nachricht." "Mit Titel" "http://www.xyz.com/image.png" "http://www.xyz.com" "Link Title" True False</code><br>
  26631. <code>set PushNotification message "Das ist meine Nachricht." "Mit Titel" "http://www.xyz.com/image.png" "http://www.xyz.com" "Link Title" True False 5</code><br>
  26632. </ul>
  26633. <br>
  26634. Notes:
  26635. <ul>
  26636. </ul>
  26637. </ul>
  26638. <br>
  26639. <b>Get</b> <ul>N/A</ul><br>
  26640. <a name="PushalotAttr"></a>
  26641. <b>Attribute</b> <ul>N/A</ul><br>
  26642. <ul>
  26643. </ul>
  26644. <br>
  26645. <a name="PushalotEvents"></a>
  26646. <b>Generierte events:</b>
  26647. <ul>
  26648. N/A
  26649. </ul>
  26650. </ul>
  26651. <p><a name="Pushbullet"></a>
  26652. <h3>Pushbullet</h3>
  26653. <div class='langLinks'>[<a href='commandref.html#Pushbullet'>EN</a> DE]</div>
  26654. <ul>
  26655. Pushbullet ist ein Dienst, um Benachrichtigungen an unterschiedliche Endgeräte zu senden. Pushbullet
  26656. bietet Apps fĂźr iPhone, Android, Windows (Beta) und Mac OS X sowie Plugins fĂźr Chrome, Firefox und Safari an.<br>
  26657. FĂźr weitere Informationen Ăźber den Dienst besuche <a target="_blank" href="https://pushbullet.com">pushbullet.com</a>.<br>
  26658. <br>
  26659. Diskutiere das Modul <a target="_blank" href="http://forum.fhem.de/index.php/topic,29796.0.html">hier</a>.<br>
  26660. <br><br>
  26661. <a name="Pushbullet_Define"></a>
  26662. <b>Define</b>
  26663. <ul>
  26664. <code>define &lt;name&gt; Pushbullet &lt;accessToken&gt;</code><br>
  26665. <br>
  26666. Notiz:<br>
  26667. JSON muss auf dem FHEM Host installiert sein.<br><br>
  26668. Registriere dich auf pushbullet.com um deine accessToken zu bekommen.<br>
  26669. </ul><br>
  26670. <a name="Pushbullet_Set"></a>
  26671. <b>Set</b>
  26672. <ul>
  26673. <li>clear<br>
  26674. LĂśscht alle Device Readings</li>
  26675. <li>contactAdd name | email<br>
  26676. FĂźgt einen neuen Kontakt hinzu. Leerzeichen im Namen sind erlaubt.</li>
  26677. <li>deviceDelete deviceName<br>
  26678. LĂśscht das Device.</li>
  26679. <li>deviceRename deviceName | neuerDeviceName<br>
  26680. Benennt das Device um.</li>
  26681. <li>link [| Titel | Device]<br>
  26682. Sendet einen Link mit optionalen Titel und Device. Wenn kein Device angegeben ist, geht der Push an alle deine Devices.</li>
  26683. <li>list Item1[, Item2, Item3, ... | Titel | Device]<br>
  26684. Sendet eine Liste mit einem oder mehreren Items, optionalen Titel und Device. Wenn kein Device angegeben ist, geht der Push an alle deine Devices.</li>
  26685. <li>message [| Titel | Device]<br>
  26686. Sendet eine Nachricht mit optionalen Titel und Device. Wenn kein Device angegeben ist, geht der Push an alle deine Devices.</li>
  26687. <br>
  26688. Beispiele:<br>
  26689. <ul>
  26690. <code>set Pushbullet message Das ist eine Nachricht</code><br>
  26691. Sendet eine Push Benachrichtigung mit der Nachricht "Das ist eine Nachricht" ohne vorbestimmten Titel an alle <b>deine</b> Devices.<br><br>
  26692. <code>set Pushbullet message Das ist eine Nachricht | Ein Titel</code><br>
  26693. Sendet eine Push Benachrichtigung mit der Nachricht "Das ist eine Nachricht" mit dem Titel "Ein Titel" an alle <b>deine</b> Devices.<br><br>
  26694. <code>set Pushbullet message This is a message | Ein Titel | iPhone</code><br>
  26695. Sendet eine Push Benachrichtigung mit der Nachricht "Das ist eine Nachricht" mit dem Titel "Ein Titel" an deinen Device iPhone.<br><br>
  26696. <code>set Pushbullet message This is a message | Ein Titel | Max Mustermann</code><br>
  26697. Sendet eine Push Benachrichtigung mit der Nachricht "Das ist eine Nachricht" mit dem Titel "Ein Titel" an deinen Kontakt Max Mustermann.<br><br>
  26698. </ul>
  26699. <br>
  26700. Notiz:<br>
  26701. Leerstellen vor und nach dem Trenner | werden nicht benĂśtigt.
  26702. </ul><br>
  26703. <a name="Pushbullet_Get"></a>
  26704. <b>Get</b>
  26705. <ul>
  26706. <li>devices<br>
  26707. Liest alle Geräte und Kontakte ein und setzt die entsprechenden Readings.</li>
  26708. </ul><br>
  26709. <a name="Pushbullet_Attr"></a>
  26710. <b>Attributes</b>
  26711. <ul>
  26712. <li>defaultDevice<br>
  26713. Standart Device fĂźr Pushnachrichten.</li>
  26714. <li>defaultTitle<br>
  26715. Standart Titel fĂźr Pushnachrichten. Wenn nicht gesetzt ist der Standart Titel FHEM</li>
  26716. </ul>
  26717. </ul>
  26718. <p><a name="Pushover"></a>
  26719. <h3>Pushover</h3>
  26720. <div class='langLinks'>[<a href='commandref.html#Pushover'>EN</a> DE]</div>
  26721. <ul>
  26722. Pushover ist ein Dienst, um Benachrichtigungen von einer vielzahl
  26723. von Quellen auf Deinem Smartphone oder Tablet zu empfangen.<br>
  26724. Du brauchst einen Account um dieses Modul zu verwenden.<br>
  26725. F&uuml;r weitere Informationen &uuml;ber den Dienst besuche <a href="https://pushover.net">pushover.net</a>.<br>
  26726. <br>
  26727. Die Installation des Perl Moduls IO::Socket::SSL ist Voraussetzung zur Nutzung dieses Moduls (z.B. via 'cpan -i IO::Socket::SSL').<br>
  26728. Es wird empfohlen Perl-JSON zu installieren, um erweiterte Funktion wie Supplementary URLs nutzen zu k&ouml;nnen.<br>
  26729. <br>
  26730. Diskutiere das Modul <a href="http://forum.fhem.de/index.php/topic,16215.0.html">hier</a>.<br>
  26731. <br>
  26732. <br>
  26733. <a name="PushoverDefine"></a>
  26734. <b>Define</b>
  26735. <ul>
  26736. <code>define &lt;name&gt; Pushover &lt;token&gt; &lt;user&gt; [&lt;infix&gt;]</code><br>
  26737. <br>
  26738. Du musst einen <a href="https://pushover.net/login">Account erstellen</a>, um den User Key zu bekommen.<br>
  26739. Und du musst <a href="https://pushover.net/apps/build">eine Anwendung erstellen</a>, um einen API APP_TOKEN zu bekommen.<br>
  26740. <br>
  26741. Das Attribut infix ist optional, um einen FHEMWEB uri Namen f&uuml;r die Pushover API Callback Funktion zu definieren.<br>
  26742. Die Callback URL Callback URL kann dann mit dem Attribut callbackUrl gesetzt werden (siehe unten).<br>
  26743. Hinweis: Eine infix uri can innerhalb einer FHEM Instanz nur einmal verwendet werden!<br>
  26744. <br>
  26745. Beispiel:
  26746. <ul>
  26747. <code>define Pushover1 Pushover 01234 56789</code>
  26748. </ul>
  26749. <ul>
  26750. <code>define Pushover1 Pushover 01234 56789 pushCallback1</code>
  26751. </ul>
  26752. </ul>
  26753. <br>
  26754. <a name="PushoverSet"></a>
  26755. <b>Set</b>
  26756. <ul><b>msg</b><ul>
  26757. <code>set &lt;Pushover_device&gt; msg &lt;text&gt; [&lt;option1&gt;=&lt;value&gt; &lt;option2&gt;="&lt;value with space in it&gt;" ...]</code>
  26758. <br>
  26759. <br>
  26760. Die folgenden Optionen k&ouml;nnen genutzt werden, um den Nachrichteninhalt und die Zustellung zu beeinflussen::<br>
  26761. <br>
  26762. <code><b>message</b>&nbsp;&nbsp;&nbsp;</code> - Typ: Text - Dein Nachrichtentext. Die Nutzung dieser Option hat Vorrang; Text au&szlig;erhalb wird verworfen.<br>
  26763. <code><b>device</b>&nbsp;&nbsp;&nbsp;&nbsp;</code> - Typ: Text - Dein selbst vergebener Ger&auml;tename, um die Nachricht direkt an dieses Ger&auml;t zu senden anstatt an alle Ger&auml;te gleichzeitig (mehrere Ger&auml;te k&ouml;nnen mit Komma getrennt angegeben werden). Hier kann auch explizit ein User oder Group Key angegeben werden. Um gezielt ein Ger&auml;t einer/s speziellen User/Group anzusprechen, zuerst den User/Group Key angeben, gefolgt vom Ger&auml;tenamen und einem Doppelpunkt als Trennzeichen.<br>
  26764. <code><b>title</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code> - Typ: Text - Dein Nachrichten Titel, andernfalls wird der App Name wie in der Pushover API festgelegt verwendet.<br>
  26765. <code><b>action</b>&nbsp;&nbsp;&nbsp;&nbsp;</code> - Typ: Text - Entweder ein auszuf&uuml;hrendes FHEM Kommando, wenn der Empf&auml;nger den Link anklickt oder eine <a href="https://pushover.net/api#urls">supplementary URL</a>, die mit der Nachricht zusammen angezeigt werden soll.<br>
  26766. <code><b>url_title</b>&nbsp;</code> - Typ: Text - Ein Titel f&uuml;r das FHEM Kommando oder die supplementary URL, andernfalls wird die URL direkt angezeigt.<br>
  26767. <code><b>priority</b>&nbsp;&nbsp;</code> - Typ: Integer - Sende mit -2, um keine/n Benachrichtigung/Alarm zu generieren. Sende mit -1, um immer eine lautlose Benachrichtigung zu senden. Sende mit 1, um die Nachricht mit <a href="https://pushover.net/api#priority">hoher Priorit&auml;t</a> anzuzeigen und die Ruhezeiten des Empf&auml;ngers zu umgehen. Oder sende mit 2, um zus&auml;tzlich eine Best&auml;tigung des Empf&auml;ngers anzufordern.<br>
  26768. <code><b>retry</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code> - Typ: Integer - Verpflichtend bei einer Nachrichten Priorit&auml;t &gt;= 2.<br>
  26769. <code><b>expire</b>&nbsp;&nbsp;&nbsp;&nbsp;</code> - Typ: Integer - Verpflichtend bei einer Nachrichten Priorit&auml;t &gt;= 2.<br>
  26770. <code><b>cancel_id</b>&nbsp;</code> - Typ: Text - Benutzerdefinierte ID, um Nachrichten mit einer Priorit&auml;t &gt;= 2 sofort ablaufen zu lassen und die wiederholte Benachrichtigung auszuschalten.<br>
  26771. <code><b>timestamp</b>&nbsp;</code> - Typ: Integer - Ein Unix Zeitstempfel mit Datum und Uhrzeit deiner Nachricht, die dem Empf&auml;nger statt der Uhrzeit des Einganges auf den Pushover Servern angezeigt wird. Hat Vorrang bei gesetztem Attribut timestamp=1.<br>
  26772. <code><b>sound</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code> - Typ: Text - Der Name eines vom Empf&auml;ngerger&auml;t unterst&uuml;tzten <a href="https://pushover.net/api#sounds">Klangs</a>, um den vom Empf&auml;nger ausgew&auml;hlten Klang zu &uuml;berschreiben.<br>
  26773. <code><b>attachment</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code> - Typ: Text - Pfad zu einer Bilddatei, welche an die Nachricht angeh&auml;ngt werden soll. Der Basispfad ist relativ zum FHEM Verzeichnis und kann &uuml;ber das storage Attribut &uuml;berschrieben werden.<br>
  26774. <br>
  26775. Beispiele:
  26776. <ul>
  26777. <code>set Pushover1 msg Meine erste Pushover Nachricht.</code><br>
  26778. <code>set Pushover1 msg Meine zweite Pushover Nachricht.\nDiesmal mit zwei Zeilen.</code><br>
  26779. <code>set Pushover1 msg "Eine andere Pushover Nachricht in doppelten Anf&auml;hrungszeichen."</code><br>
  26780. <code>set Pushover1 msg 'Eine andere Pushover Nachricht in einfachen Anf&auml;hrungszeichen.'</code><br>
  26781. <code>set Pushover1 msg message="Pushover Nachricht, die die explizite Nachrichten Option f&uuml;r den Textinhalt verwendet." Dieser Teil des Textes wird ignoriert.</code><br>
  26782. <code>set Pushover1 msg Dies ist eine Nachricht mit einem Titel. title="Dies ist ein Betreff"</code><br>
  26783. <code>set Pushover1 msg Diese Nachricht hat einen Anhang! attachment="demolog/pictures/p1.jpg"</code><br>
  26784. <code>set Pushover1 msg title="Dies ist auch ein Betreff!" Dies ist eine weitere Nachricht mit einem Titel, der am Anfang des Kommandos gesetzt ist.</code><br>
  26785. <code>set Pushover1 msg title=Notfall priority=2 retry=30 expire=3600 Sicherheits-Alarm im Wohnzimmer.</code><br>
  26786. <code>set Pushover1 msg title=Link Schau dir mal diese Website an: url_title="&Ouml;ffnen" action="http://fhem.de/" expire=3600</code><br>
  26787. <code>set Pushover1 msg title=Hinweis expire=3600 Dies ist eine Erinnerung, um etwas zu tun. Der Link verliert in 1h seine G&uuml;ltigkeit. url_title="Hier klicken, um den Befehl auszuf&uuml;hren" action="set device something"</code><br>
  26788. <code>set Pushover1 msg title=Notfall priority=2 retry=30 expire=3600 Sicherheits-Alarm im Wohnzimmer. sound=siren url_title="Hier klicken, um den Befehl auszuf&uuml;hren" action="set device something"</code><br>
  26789. </ul>
  26790. <br>
  26791. </ul></ul>
  26792. <br>
  26793. <br>
  26794. <ul><b>msgCancel</b><ul>
  26795. <code>set &lt;Pushover_device&gt; msgCancel &lt;ID&gt;</code>
  26796. <br>
  26797. <br>
  26798. Stoppt vorzeitig die wiederkehrende Aufforderung zur Best&auml;tigung bei Nachrichten mit Priorit&auml;t &gt;= 2.<br>
  26799. <br>
  26800. Beispiel:
  26801. <ul>
  26802. <code>set Pushover1 msg title=Notfall priority=2 retry=30 expire=3600 Sicherheits-Alarm im Wohnzimmer. sound=siren cancel_id=SicherheitsAlarm</code><br>
  26803. <code>set Pushover1 msgCancel SicherheitsAlarm</code>
  26804. </ul>
  26805. </ul></ul>
  26806. <br>
  26807. <br>
  26808. <ul><b>msg</b> <u>(veraltetes Format)</u><ul>
  26809. <code>set &lt;Pushover_device&gt; msg [title] &lt;msg&gt; [&lt;device&gt; &lt;priority&gt; &lt;sound&gt; [&lt;retry&gt; &lt;expire&gt; [&lt;url_title&gt; &lt;action&gt;]]]</code>
  26810. <br>
  26811. <br>
  26812. Beispiele:
  26813. <ul>
  26814. <code>set Pushover1 msg 'Dies ist ein Text.'</code><br>
  26815. <code>set Pushover1 msg 'Titel' 'Dies ist ein Text.'</code><br>
  26816. <code>set Pushover1 msg 'Titel' 'Dies ist ein Text.' '' 0 ''</code><br>
  26817. <code>set Pushover1 msg 'Notfall' 'Sicherheitsproblem im Wohnzimmer.' '' 2 'siren' 30 3600</code><br>
  26818. <code>set Pushover1 msg 'Erinnerung' 'Dies ist eine Erinnerung an etwas' '' 0 '' 0 3600 'Hier klicken, um Aktion auszuf&uuml;hren' 'set device irgendwas'</code><br>
  26819. <code>set Pushover1 msg 'Notfall' 'Sicherheitsproblem im Wohnzimmer.' '' 2 'siren' 30 3600 'Hier klicken, um Aktion auszuf&uuml;hren' 'set device something'</code><br>
  26820. </ul>
  26821. <br>
  26822. Anmerkungen:
  26823. <ul>
  26824. <li>Bei der Verwendung der ersten beiden Beispiele m&uuml;ssen die entsprechenden Attribute als Ersatz f&uuml;r die fehlenden Parameter belegt sein (s. Attribute)
  26825. </li>
  26826. <li>Wenn device leer ist, wird die Nachricht an alle Ger&auml;te geschickt.
  26827. </li>
  26828. <li>Wenn device ein User oder Group Key ist, wird die Nachricht stattdessen hierhin verschickt. M&ouml;chte man trotzdem ein dediziertes Device angeben, trennt man den Namen mit einem Doppelpunkt ab.
  26829. </li>
  26830. <li>Wenn sound leer ist, dann wird die Standardeinstellung in der App verwendet.
  26831. </li>
  26832. <li>Wenn die Priorit&auml;t h&ouml;her oder gleich 2 ist m&uuml;ssen retry und expire definiert sein.
  26833. </li>
  26834. </ul>
  26835. </ul></ul>
  26836. <br>
  26837. <br>
  26838. <ul><b>glance</b><ul>
  26839. <code>set &lt;Pushover_device&gt; glance [&lt;text&gt;] [&lt;option1&gt;=&lt;value&gt; &lt;option2&gt;="&lt;value with space in it&gt;" ...]</code>
  26840. <br>
  26841. <br>
  26842. Aktualisiert die <a href="https://pushover.net/api/glances">Pushover glances</a> auf einer Apple Watch.<br>
  26843. Die folgenden Optionen k&ouml;nnen genutzt werden, um den Nachrichteninhalt und die Zustellung zu beeinflussen::<br>
  26844. <br>
  26845. <code><b>title</b>&nbsp;&nbsp;&nbsp;</code> - type: text(100 characters) - Eine Beschreibung der Daten, die angezeigt werden, beispielsweise "Verkaufte Dinge".<br>
  26846. <code><b>text</b>&nbsp;&nbsp;&nbsp;&nbsp;</code> - type: text(100 characters) - Textzeile, die in den meisten Ansichten verwendet wird. Die Nutzung dieser Option hat Vorrang; Text au&szlig;erhalb wird verworfen.<br>
  26847. <code><b>subtext</b>&nbsp;</code> - type: text(100 characters) - Eine zweite Zeile mit Text.<br>
  26848. <code><b>count</b>&nbsp;&nbsp;&nbsp;</code> - type: integer(may be negative) - Wird auf kleineren Ansichten dargestellt; n&uuml;tzlich f&uuml;r einfache Z&auml;hlerst&auml;nde.<br>
  26849. <code><b>percent</b>&nbsp;</code> - type: integer(0-100) - Wird bei einigen Ansichten als Fortschrittsbalken/-kreis angezeigt.<br>
  26850. <code><b>device</b>&nbsp;&nbsp;</code> - Typ: Text - Dein selbst vergebener Ger&auml;tename, um die Nachricht direkt an dieses Ger&auml;t zu senden anstatt an alle Ger&auml;te gleichzeitig (mehrere Ger&auml;te k&ouml;nnen mit Komma getrennt angegeben werden). Hier kann auch explizit ein User oder Group Key angegeben werden. Um gezielt ein Ger&auml;t einer/s speziellen User/Group anzusprechen, zuerst den User/Group Key angeben, gefolgt vom Ger&auml;tenamen und einem Doppelpunkt als Trennzeichen.<br>
  26851. <br>
  26852. </ul></ul>
  26853. <br>
  26854. <b>Get</b> <ul>N/A</ul><br>
  26855. <a name="PushoverAttr"></a>
  26856. <b>Attributes</b>
  26857. <ul>
  26858. <li>
  26859. <a href="#do_not_notify">do_not_notify</a>
  26860. </li>
  26861. <li>
  26862. <a href="#disabledForIntervals">disabledForIntervals</a>
  26863. </li>
  26864. <li>
  26865. <a href="#readingFnAttributes">readingFnAttributes</a>
  26866. </li>
  26867. <li><a name="PushoverAttrcallbackUrl"></a><code>callbackUrl</code><br>
  26868. Setzt die Callback URL, um Nachrichten mit Emergency Priorit&auml;t zu best&auml;tigen.
  26869. </li>
  26870. <li><a name="PushoverAttrtimestamp"></a><code>timestamp</code><br>
  26871. Sende den Unix-Zeitstempel mit jeder Nachricht.
  26872. </li>
  26873. <li><a name="title"></a><code>title</code><br>
  26874. Wird beim Senden als Titel verwendet, sofern dieser nicht als Aufrufargument angegeben wurde.
  26875. </li>
  26876. <li><a name="PushoverAttrdevice"></a><code>device</code><br>
  26877. Wird beim Senden als Ger&auml;tename verwendet, sofern dieser nicht als Aufrufargument angegeben wurde. Kann auch generell entfallen, bzw. leer sein, dann wird an alle Ger&auml;te gesendet.
  26878. </li>
  26879. <li><a name="PushoverAttrpriority"></a><code>priority</code><br>
  26880. Wird beim Senden als Priorit&auml;t verwendet, sofern diese nicht als Aufrufargument angegeben wurde. Zul&auml;ssige Werte sind -1 = leise / 0 = normale Priorit&auml;t / 1 = hohe Priorit&auml;t
  26881. </li>
  26882. <li><a name="PushoverAttrexpire"></a><code>expire</code><br>
  26883. Wenn die Nachrichten Priorit&auml;t 2 ist, wird dieser Wert als Standard f&uuml;r expire verwendet, falls dieser nicht in der Nachricht angegeben wurde. Muss 30 oder h&ouml;her sein.
  26884. </li>
  26885. <li><a name="PushoverAttrretry"></a><code>retry</code><br>
  26886. Wenn die Nachrichten Priorit&auml;t 2 ist, wird dieser Wert als Standard f&uuml;r retry verwendet, falls dieser nicht in der Nachricht angegeben wurde.
  26887. </li>
  26888. <li><a name="PushoverAttrsound"></a><code>sound</code><br>
  26889. Wird beim Senden als Titel verwendet, sofern dieser nicht als Aufrufargument angegeben wurde. Kann auch generell entfallen, dann wird der eingestellte Ton der App verwendet.
  26890. </li>
  26891. <li><a name="PushoverAttrstorage"></a><code>storage</code><br>
  26892. Wird als Standardpfad beim Versand von Anh&auml;ngen verwendet, ansonsten wird das globale Attribut modpath benutzt.
  26893. </li>
  26894. </ul>
  26895. <br>
  26896. <a name="PushoverEvents"></a>
  26897. <b>Generated events:</b>
  26898. <ul>
  26899. N/A
  26900. </ul>
  26901. </ul>
  26902. <p><a name="Pushsafer"></a>
  26903. <h3>Pushsafer</h3>
  26904. <div class='langLinks'>[<a href='commandref.html#Pushsafer'>EN</a> DE]</div>
  26905. <ul>
  26906. Pushsafer ist ein Dienst, um Benachrichtigungen von einer Vielzahl
  26907. unterschiedlicher Quellen auf einem iOS-, Android-, Windows 10 Phone oder Desktop-Ger&auml;t zu empfangen.<br>
  26908. Es wird ein personalisierter Account ben&ouml;tigt um dieses Modul zu verwenden.<br>
  26909. Weitere Information zum Pushsafer-Dienst gibt es unter <a href="https://www.pushsafer.com" target="_new">pushsafer.com</a>.<br>
  26910. <br>
  26911. Dieses Modul dient lediglich zum Versand von Nachrichten &uuml;ber Pushsafer.<br>
  26912. <br>
  26913. <br>
  26914. <a name="PushsaferDefine"></a>
  26915. <b>Define</b>
  26916. <ul>
  26917. <code>define &lt;Name&gt; Pushsafer &lt;Schl&uuml;ssel&gt;</code><br>
  26918. <br>
  26919. Der Parameter &lt;Schl&uuml;ssel&gt; muss eine alphanumerische Zeichenkette sein. Hierbei kann es sich um einen regul&auml;ren privaten Schl&uuml;ssel (20 Zeichen lang) handeln oder um einen Email-Alias-Schl&uuml;ssel (15 Zeichen lang), welcher in einem Account entsprechend eingerichtet sein muss.<br>
  26920. <br>
  26921. Beispiel:
  26922. <ul>
  26923. <code>define PushsaferAccount Pushsafer A1b2c3D4E5F6g7h8i9J0</code>
  26924. </ul>
  26925. </ul>
  26926. <br>
  26927. <a name="PushsaferSet"></a>
  26928. <b>Set</b>
  26929. <ul>
  26930. <code>set &lt;Name&gt; message &lt;Nachricht&gt; [&lt;Option1&gt;=&lt;Wert&gt; &lt;Option2&gt;=&lt;Wert&gt; ...]</code><br>
  26931. <br>
  26932. Aktuell wird nur das "message"-Kommando unterst&uuml;tzt um Nachrichten zu versenden.<br>
  26933. <br>
  26934. Der einfachste Anwendungsfall ist das Versenden einer einfachen Textnachricht wie im folgenden Beispiel:<br>
  26935. <br>
  26936. <code>set PushsaferAccount message "Meine erste Pushsafer Nachricht."</code><br>
  26937. <br>
  26938. Um eine mehrzeilige Nachricht zu schicken, kann man den Platzhalter "\n" f&uuml;r einen Zeilenumbruch verwenden:<br>
  26939. <br>
  26940. <code>set PushsaferAccount message "Meine zweite Pushsafer Nachricht.\nDiesmal mit zwei Zeilen."</code><br>
  26941. <br>
  26942. <u>Optionale Zusatzparameter</u><br>
  26943. <br>
  26944. Es ist m&ouml;glich die zu versendende Nachricht durch zus&auml;tzliche Optionen an die eigenen W&uuml;nsche anzupassen. Diese Optionen k&ouml;nnen hinter dem Nachrichtentext beliebig kombiniert werden um die Nachricht zu individualisieren. Die m&ouml;glichen Optionen sind:<br>
  26945. <br>
  26946. <code><b>title</b>&nbsp;&nbsp;&nbsp;&nbsp;</code> - Kurzform: <code>t&nbsp;</code> - Typ: Text - Eine &Uuml;berschrift, die &uuml;ber der Nachricht hervorgehoben angezeigt werden soll.<br>
  26947. <code><b>device</b>&nbsp;&nbsp;&nbsp;</code> - Kurzform: <code>d&nbsp;</code> - Typ: Text - Die Ger&auml;te-ID als Ganzzahl an welche die Nachricht gezielt geschickt werden soll. Um eine Gruppen-ID direkt zu addressieren muss der ID das Pr&auml;fix "gs" vorangestellt werden (Bsp. "gs23" f&uuml;r die Gruppen-ID 23). Standardm&auml;&szlig;ig wird eine Nachricht immer an alle Ger&auml;te geschickt, die mit dem Account verkn&uuml;pft sind.<br>
  26948. <code><b>sound</b>&nbsp;&nbsp;&nbsp;&nbsp;</code> - Kurzform: <code>s&nbsp;</code> - Typ: Ganzzahl - Die Nummer eines Tons, welcher beim Empfang der Nachricht auf dem Zielger&auml;t ert&ouml;nen soll (siehe <a href="https://www.pushsafer.com/de/pushapi" target="_new">pushsafer.com</a> f&uuml;r eine Liste m&ouml;glicher Werte).<br>
  26949. <code><b>icon</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code> - Kurzform: <code>i&nbsp;</code> - Typ: Ganzzahl - Die Nummer eines Icons, welches zusammen mit der Nachricht auf dem Zielger&auml;t angezeigt werden soll (siehe <a href="https://www.pushsafer.com/de/pushapi" target="_new">Pushsafer.com</a> f&uuml;r eine Liste m&ouml;glicher Werte).<br>
  26950. <code><b>vibration</b></code> - Kurzform: <code>v&nbsp;</code> - Typ: Ganzzahl - Die Anzahl, wie oft das Zielger&auml;t vibrieren soll beim Empfang der Nachricht (maximal 3 mal; nur f&uuml;r iOS-/Android-Ger&auml;te nutzbar). Falls nicht benutzt, wird die ger&auml;teinterne Einstellung verwendet.<br>
  26951. <code><b>url</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code> - Kurzform: <code>u&nbsp;</code> - Typ: Text - Eine URL, welche der Nachricht angehangen werden soll. Dies kann eine normale http:// bzw. https:// URL sein, es sind jedoch auch weitere spezielle Schemas m&ouml;glich. Eine Liste aller m&ouml;glichen URL-Schemas gibt es unter <a href="https://www.pushsafer.com/de/url_schemes" target="_new">pushsafer.com</a> .<br>
  26952. <code><b>urlText</b>&nbsp;&nbsp;</code> - Kurzform: <code>ut</code> - Typ: Text - Der Text, welcher zum Anzeigen der URL benutzt werden soll anstatt der Zieladresse.<br>
  26953. <code><b>key</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code> - Kurzform: <code>k&nbsp;</code> - Typ: Text - &Uuml;bersteuert den zu nutzenden Schl&uuml;ssel zur Identifikation aus dem define-Kommando. Es kann hierbei auch ein Email-Alias-Schl&uuml;ssel benutzt werden.<br>
  26954. <code><b>ttl</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code> - Kurzform: <code>l&nbsp;</code> - Typ: Ganzzahl - Die Lebensdauer der Nachricht in Minuten. Sobald die Lebensdauer erreicht ist, wird die Nachricht selbstst&auml;ndig auf allen Ger&auml;ten gel&ouml;scht. Der m&ouml;gliche Wertebereich liegt zwischen 1 - 43200 Minuten (entspricht 30 Tagen).<br>
  26955. <code><b>picture</b>&nbsp;&nbsp;</code> - Kurzform: <code>p&nbsp;</code> - Typ: Text - Anh&auml;ngen eines Bildes zur Nachricht. Dies kann ein Dateipfad zu einer Bilddatei sein (z.B. <code>picture=/home/user/Bild.jpg</code>) oder der Name einer IPCAM-Instanz (im Format: <code>picture=IPCAM:<i>&lt;Name&gt;</i></code>) um die letzte Aufnahme zu senden (Bsp. <code>picture=IPCAM:IpKamera_Einganstuer</code>). Es werden die Dateiformate JPG, PNG und GIF unterst&uuml;zt.<br>
  26956. <code><b>picture2</b>&nbsp;</code> - Kurzform: <code>p2</code> - Typ: Text - Gleiche Syntax wie die Option <code>"picture"</code>.<br>
  26957. <code><b>picture3</b>&nbsp;</code> - Kurzform: <code>p3</code> - Typ: Text - Gleiche Syntax wie die Option <code>"picture"</code>.<br>
  26958. <br>
  26959. Beispiele:<br>
  26960. <br>
  26961. <ul>
  26962. <code>set PushsaferAccount message "Dies ist eine Nachricht mit &Uuml;berschrift." title="Sehr Wichtig!!"</code><br>
  26963. <code>set PushsaferAccount message "Komm runter\nwir warten" title="Mittag ist fertig" device=100</code><br>
  26964. <code>set PushsaferAccount message "Server ist nicht erreichbar" sound=25 icon=5 vibration=3</code><br>
  26965. <code>set PushsaferAccount message "Hier sind die Urlaubsfotos" url="http://www.foo.de/fotos" urlText="Sommerurlaub"</code><br>
  26966. <br>
  26967. It is also possible to use the short-term versions of options:<br>
  26968. <br>
  26969. <code>set PushsaferAccount message "Dies ist eine Nachricht mit &Uuml;berschrift." t="Sehr Wichtig!!"</code><br>
  26970. <code>set PushsaferAccount message "Komm runter\nwir warten" t="Mittag ist fertig" d=100</code><br>
  26971. <code>set PushsaferAccount message "Server ist nicht erreichbar" s=25 i5 v=3</code><br>
  26972. <code>set PushsaferAccount message "Hier sind die Urlaubsfotos" u="http://www.foo.de/fotos" ut="Sommerurlaub"</code><br>
  26973. </ul>
  26974. <br>
  26975. </ul>
  26976. <br>
  26977. <b>Get</b> <ul>N/A</ul><br>
  26978. <a name="PushsaferAttr"></a>
  26979. <a name="PushsaferAttr"></a>
  26980. <b>Attribute</b>
  26981. <ul>
  26982. <li><a href="#do_not_notify">do_not_notify</a></li>
  26983. <li><a href="#disabled">disabled</a></li>
  26984. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  26985. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  26986. </ul>
  26987. <br>
  26988. <a name="PushsaferEvents"></a>
  26989. <b>Generierte Readings/Events:</b><br>
  26990. <ul>
  26991. <li><b>lastSuccess</b> - Die letzte erfolgreiche Statusmeldung vom Pushsafer Server</li>
  26992. <li><b>lastError</b> - Die letzte Fehlermeldung vom Pushsafer Server</li>
  26993. <li><b>availableMessages-<i>&lt;Ger&auml;te-ID&gt;</i>-<i>&lt;Ger&auml;te-Name&gt;</i></b> - Die verbleibende Anzahl an Nachrichten die zu diesem Ger&auml;t noch gesendet werden k&ouml;nnen</li>
  26994. </ul>
  26995. </ul>
  26996. <p><a name="QRCode"></a>
  26997. <h3>QRCode</h3>
  26998. <div class='langLinks'>[<a href='commandref.html#QRCode'>EN</a> DE]</div>
  26999. <ul>
  27000. Mit hilfe dieses Moduls, kann auf einfache Weise eine URL generiert werden, mit
  27001. der vom Dienstleister TEC-IT ein QRCode abgerufen werden kann.<br/>
  27002. Ein Device dieses Moduls kann au�erdem den QRCode auch selbst direkt in FHEMWEB
  27003. darstellen und auch anderen Devices (bspw. weblink) als HTML zur VerfĂźgung stellen.
  27004. <br/><br/>
  27005. <b>HINWEIS:</b> Es ist ohne schriftliche Genehmigung des Dienstaanbieters nur erlaubt,
  27006. maximal 30 QRCode-Abrufe / Minute durchzufĂźhren.<br/><br/>
  27007. Siehe dazu auch die Nutzungsbedingungen von TEC-IT: http://qrcode.tec-it.com/de#TOS
  27008. <br/><br/>
  27009. <a name="QRCodedefine"></a>
  27010. <b>Define</b><br/>
  27011. <ul>
  27012. <code>define &lt;name&gt; QRCode</code>
  27013. <br/><br/>
  27014. </ul>
  27015. <br/>
  27016. <a name="QRCodeset"></a>
  27017. <b>Set</b><br/>
  27018. <ul>
  27019. <code>set &lt;name&gt; update</code><br/>
  27020. FĂźhrt eine aktualisierung der QRCode-Url durch.
  27021. </ul>
  27022. <br/>
  27023. <a name="QRCodeattr"></a>
  27024. <b>Attributes</b><br/><br/>
  27025. <ul>
  27026. <b>QRCode-URL-relevante Attribute</b>
  27027. <br/><br/>
  27028. Die folgenden Attribute sind fĂźr die Erzeugung der Abruf-URL relevant und haben somit<br/>
  27029. direkten Einflu� auf die Erzeugung des QRCode-Images.<br/><br/>
  27030. Fßr diese Attribute wird bei �nderung, standardmä�ig ein automatisches Udate der QRCode-URL<br/>
  27031. durchgefĂźhrt. Dies kann durch setzen des Attirbutes qrNoAutoUpdate (s.w.u.) deaktiviert werden.
  27032. <br/><br/>
  27033. <li><a name="qrData">qrData</a><br/>
  27034. Dieses Attribut legt die Daten fest, die im QRCode kodiert werden sollen.<br/>
  27035. Ist dieses Attribut nicht gesetzt, wird beim update eine entsprechende
  27036. Fehlermeldung erzeugt.
  27037. <br/><br/>
  27038. </li>
  27039. <li><a name="qrSize">qrSize</a><br/>
  27040. Dieses Attribut legt die Gr�e fest, in der das QRCode-Image erstellt werden
  27041. soll.<br/> MÜgliche Ausprägungen sind small, medium (default), large.
  27042. <br/><br/>
  27043. </li>
  27044. <li><a name="qrResolutionDPI">qrResolutionDPI</a><br/>
  27045. Dieses Attribut legt die AuflĂśsung fest, in der das QRCode-Image erstellt werden
  27046. soll.<br/> MĂśgliche Werte liegen zwischen 96 und 600 (Default ist 300dpi)
  27047. <br/><br/>
  27048. </li>
  27049. <li><a name="qrColor">qrColor</a><br/>
  27050. Dieses Attribut legt die Vordergrundfarbe fest, in der das QRCode-Image erstellt werden
  27051. soll.<br/> Der Wert ist ein RGB-Farbwert in Hexadezimaler schreibweise (Bspw. FF0000 fĂźr rot)
  27052. Default ist 000000 (schwarz)
  27053. <br/><br/>
  27054. </li>
  27055. <li><a name="qrBackColor">qrBackColor</a><br/>
  27056. Dieses Attribut legt die Hintergrundfarbe fest, in der das QRCode-Image erstellt werden
  27057. soll.<br/> Der Wert ist ein RGB-Farbwert in Hexadezimaler schreibweise (Bspw. 0000FF fĂźr blau)
  27058. Default ist FFFFFF (wei�).
  27059. <br/><br/>
  27060. </li>
  27061. <li><a name="qrTransparent">qrTransparent</a><br/>
  27062. Dieses Attribut legt fest, ob der Hintergrund transparent sein soll.<br/>
  27063. MĂśgliche Werte sind True fĂźr transparenten Hintergrund und False fĂźr nicht-transparenten
  27064. Hintergrund (default)
  27065. <br/><br/>
  27066. </li>
  27067. <li><a name="qrQuietZone">qrQuietZone</a><br/>
  27068. �ber diesen Wert kann eine Ruhe-Zone, also ein Rand um den eigentlichen QRCode festgelegt
  27069. werden.<br/> Dies ermĂśglicht ggf. ein erleichtertes Erfassen des QRCodes beim Scannen.<br/>
  27070. MĂśgliche Werte sind positive numerische Werte. Default ist 0, wenn das Attribut nicht gesetzt ist.
  27071. <br/><br/>
  27072. </li>
  27073. <li><a name="qrQuietUnit">qrQuietUnit</a><br/>
  27074. �ber diesen Wert kann die Ma�einheit fßr das Festlegen einer Ruhe-Zone eingestellt werden.<br/>
  27075. MÜgliche Ausptägungen sind mm (default), in (=inch), mil (=mils), mod (=Module) oder px (=Pixel).
  27076. <br/><br/>
  27077. </li>
  27078. <li><a name="qrCodepage">qrCodepage</a><br/>
  27079. �ber diesen Wert kann die Zeichentabelle fßr die QRCode-Erzeugung festgelegt werden.<br/>
  27080. MĂśgliche Werte sind UTF8 (default), Cyrillic oder Ansi
  27081. <br/><br/>
  27082. </li>
  27083. <li><a name="qrErrorCorrection">qrErrorCorrection</a><br/>
  27084. �ber diesen Wert kann Fehlerkorrektur fßr die QRCode-Erzeugung festgelegt werden.<br/>
  27085. MĂśgliche Werte sind L (default), M,Q oder H
  27086. <br/><br/>
  27087. </li>
  27088. <b>darstellungsrelevante Attribute</b>
  27089. <br/><br/>
  27090. Die folgenden Attribute haben nur Einflu� auf das Verhalten und die Darstellung in FHEMWEB<br/>
  27091. in der Deatailansicht des QRCode-Devices, bzw. beim Abruf der HTML-Daten mittels
  27092. QRCode_getHtml (s.u.)<br/><br/>
  27093. Im Fehlerfall wird weder der QRCode, noch qrDisplayText dargestellt, sondern eine entsprechend<br/>
  27094. Fehlermeldung stattdessen eingeblendet.
  27095. <br/><br/>
  27096. <li><a name="qrDisplayWidth">qrDisplayWidth</a><br/>
  27097. Breite des Images bei der Darstellung in FHEMWEB in der DetailĂźbersicht<br/>
  27098. Default ist 200
  27099. <br/><br/>
  27100. </li>
  27101. <li><a name="qrDisplayHeigth">qrDisplayHeight</a><br/>
  27102. HĂśhe des Images bei der Darstellung in FHEMWEB in der DetailĂźbersicht<br/>
  27103. Default ist 200
  27104. <br/><br/>
  27105. </li>
  27106. <li><a name="qrDisplayData">qrDisplayData</a><br/>
  27107. Wenn dieses Attribut gesetzt ist, wird unterhalb des QRCodes der Datenteil als einfacher<br/>
  27108. Text dargestellt.
  27109. <br/><br/>
  27110. </li>
  27111. <li><a name="qrDisplayNoImage">qrDisplaNoImage</a><br/>
  27112. Wenn dieses Attribut gesetzt ist, der QRCode nicht in der Detailansicht dargestellt.
  27113. <br/><br/>
  27114. </li>
  27115. <li><a name="qrDisplayText">qrDisplaText</a><br/>
  27116. Hier kann ein beliebiger Text eingetragen werden, der unterhalb des QRCodes eingeblendet werden soll.
  27117. <br/><br/>
  27118. </li>
  27119. <li><a name="qrDisplayNoText">qrDisplaNoText</a><br/>
  27120. Ist dieses Attribut gesetzt, so wird der, im Attribut qrDisplayText eingetragene Text nicht
  27121. eingeblendet, auch ohne das Attribut qrDisplayText zu lĂśschen.
  27122. <br/><br/>
  27123. </li>
  27124. <li><a name="qrNoAutoUpdate">qrNoAutoUpdate</a><br/>
  27125. Ist dieses Attribut gesetzt, so wird bei �nderung eines fßr die QRCode-Erzeugung relevanten<br/>
  27126. Attributs kein automatisches Update der QRCode-URL durchgefĂźhrt.
  27127. <br/><br/>
  27128. </li>
  27129. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  27130. </ul>
  27131. <br/><br/>
  27132. <a name="QRCodereadings"></a>
  27133. <b>Erzeugte Readings</b>
  27134. <br/><br/>
  27135. <ul>
  27136. <br/>
  27137. <li>data<br/>
  27138. Dieses Reading enthält die vom QRCode zu kodierenden Daten.<br/>
  27139. Das ist im Normalfall der Inhalt aus dem Attribut qrData.<br/>
  27140. Im Fehlerfall steht hier stattdessen der entsprechende Fehlertext.
  27141. <br/><br/>
  27142. </li>
  27143. <li>qrcode_url<br/>
  27144. Dies ist die durch <code>set update</code> erzeugte URL, die fĂźr den Abruf des QRCode-Image<br/>
  27145. verwendet wird.
  27146. <br/><br/>
  27147. </li>
  27148. <li>state<br/>
  27149. Status des QRCode-Device.<br/>
  27150. Das ist entweder <code>defined</code>, oder der Zeitpunkt des letzten <code>set update</code>, bzw. auto-update
  27151. <br/><br/>
  27152. </li>
  27153. </ul>
  27154. <br/><br/>
  27155. <a name="QRCodefunctions"></a>
  27156. <b>Enthaltene Funktionen</b>
  27157. <br/><br/>
  27158. Es gibt im Modul eine Funktion, die auch fßr andere Anwendungsfälle einsetzbar ist, wie bspw. in einem weblink
  27159. <br/><br/>
  27160. <ul>
  27161. <br/>
  27162. <li><code>QRCode_getHtml($;$$)</code><br/><br/>
  27163. Die Funktion gibt den HTML-Code zurĂźck, wie er auch fĂźr die Darstellung im QRCode-Device in der<br/>
  27164. Detail-Ansicht verwendet wird.
  27165. <br/><br/>
  27166. Parameter:
  27167. <br/><br/>
  27168. <ul>
  27169. <li>QRCodeDevice<br/>
  27170. Hier ist der Name des QRCode-Devices anzugeben, dessen HTML-Code abgerufen werden soll.
  27171. </li>
  27172. <li>noImage (Optional)<br/>
  27173. Entspricht dem Attribut qrDisplayNoImage<br/>
  27174. Wenn dieser Parameter angezeigt wird, wird also keine Referenz auf QRCode-Image im HTML-Code<br/>
  27175. erzeugt.
  27176. </li>
  27177. <li>noText (Optional)<br/>
  27178. Entspricht dem Attribut qrDisplayNoText<br/>
  27179. Wenn dieser Parameter angezeigt wird, wird also Benutzerdefinierter Text unterhalb des QRCode<br/>
  27180. im HTML-Code erzeugt.
  27181. </li>
  27182. </ul>
  27183. <br/><br/>
  27184. Beispiel:
  27185. <br/><br/>
  27186. <code>QRCode_getHtml('MyQRCode',1,0)</code>
  27187. <br/><br/>
  27188. Damit wird der HTML-Code fßr das (QRCode-)Device MyQRCode abgerufen, das nur das Image enthält,<br>
  27189. aber nicht den Benutzerdefinierten text.
  27190. </li>
  27191. </ul>
  27192. </ul>
  27193. <p> <p>
  27194. <a name="RESIDENTS" id="RESIDENTS"></a>
  27195. </p>
  27196. <h3>
  27197. RESIDENTS
  27198. </h3>
  27199. <div class='langLinks'>[<a href='commandref.html#RESIDENTS'>EN</a> DE]</div>
  27200. <ul>
  27201. <a name="RESIDENTSdefine" id="RESIDENTSdefine"></a> <b>Define</b>
  27202. <ul>
  27203. <code>define &lt;rgr_ResidentsName&gt; RESIDENTS</code><br>
  27204. <br>
  27205. Stellt ein spezielles virtuelles Device bereit, um eine Gruppe von Personen zu repr&auml;sentieren, die zusammen wohnen.<br>
  27206. Es kombiniert dabei logisch die individuellen Status von <a href="#ROOMMATE">ROOMMATE</a> und <a href="#GUEST">GUEST</a> Devices und erlaubt den Status f&uuml;r alle Mitglieder zeitgleich zu &auml;ndern. Basierend auf dem aktuellen Status und anderen Readings k&ouml;nnen andere Aktionen innerhalb von FHEM angesto�en werden.<br>
  27207. <br>
  27208. Beispiele:<br>
  27209. <ul>
  27210. <code># Einzeln<br>
  27211. define rgr_Residents RESIDENTS</code>
  27212. </ul>
  27213. </ul><br>
  27214. <br>
  27215. <a name="RESIDENTSset" id="RESIDENTSset"></a> <b>Set</b>
  27216. <ul>
  27217. <code>set &lt;rgr_ResidentsName&gt; &lt;command&gt; [&lt;parameter&gt;]</code><br>
  27218. <br>
  27219. Momentan sind die folgenden Kommandos definiert.<br>
  27220. <ul>
  27221. <li>
  27222. <b>addGuest</b> &nbsp;&nbsp;-&nbsp;&nbsp; erstellt ein neues GUEST Device und f&uuml;gt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Platzhalternamen eingeben und das wars.
  27223. </li>
  27224. <li>
  27225. <b>addRoommate</b> &nbsp;&nbsp;-&nbsp;&nbsp; erstellt ein neues ROOMMATE Device und f&uuml;gt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Vornamen eingeben und das wars.
  27226. </li>
  27227. <li>
  27228. <b>removeGuest</b> &nbsp;&nbsp;-&nbsp;&nbsp; zeigt alle Mitglieder vom Typ GUEST an und erm&ouml;glicht ein einfaches l&ouml;schen des dazugeh&ouml;rigen Dummy Devices.
  27229. </li>
  27230. <li>
  27231. <b>removeRoommate</b> &nbsp;&nbsp;-&nbsp;&nbsp; zeigt alle Mitglieder vom Typ ROOMMATE an und erm&ouml;glicht ein einfaches l&ouml;schen des dazugeh&ouml;rigen Dummy Devices.
  27232. </li>
  27233. <li>
  27234. <b>state</b> &nbsp;&nbsp;home,gotosleep,asleep,awoken,absent,gone&nbsp;&nbsp; wechselt den Status f&uuml;r alle Gruppenmitglieder gleichzeitig; siehe Attribut rgr_states, um die angezeigte Liste in FHEMWEB abzu&auml;ndern
  27235. </li>
  27236. <li>
  27237. <b>create</b> &nbsp;&nbsp;wakeuptimer&nbsp;&nbsp; f&uuml;gt diverse Vorkonfigurationen auf Basis von RESIDENTS Toolkit hinzu. Siehe separate Sektion.
  27238. </li>
  27239. </ul>
  27240. <ul>
  27241. <u>Hinweis:</u> Sofern der Zugriff auf administrative set-Kommandos (-> addGuest, addRoommate, removeGuest, create) eingeschr&auml;nkt werden soll, kann in einer FHEMWEB Instanz das Attribut allowedCommands &auml;hnlich wie 'set,set-user' erweitert werden.
  27242. Die Zeichenfolge 'set-user' stellt dabei sicher, dass beim Zugriff auf FHEM &uuml;ber diese FHEMWEB Instanz nur nicht-administrative set-Kommandos ausgef&uuml;hrt werden k&ouml;nnen.
  27243. </ul>
  27244. </ul><br>
  27245. <br>
  27246. <ul>
  27247. <u>M&ouml;gliche Status und ihre Bedeutung</u><br>
  27248. <br>
  27249. <ul>
  27250. Dieses Modul unterscheidet 7 verschiedene Status:<br>
  27251. <br>
  27252. <ul>
  27253. <li>
  27254. <b>home</b> - Bewohner sind zu Hause und mindestens einer schl&auml;ft nicht
  27255. </li>
  27256. <li>
  27257. <b>gotosleep</b> - alle anwesenden Bewohner sind auf dem Weg ins Bett (wenn sie nicht schon schlafen)
  27258. </li>
  27259. <li>
  27260. <b>asleep</b> - alle anwesenden Bewohner schlafen
  27261. </li>
  27262. <li>
  27263. <b>awoken</b> - mindestens einer der anwesenden Bewohner ist gerade aufgewacht
  27264. </li>
  27265. <li>
  27266. <b>absent</b> - keiner der Bewohner ist momentan zu Hause; mindestens einer ist aber in K&uuml;rze zur&uuml;ck
  27267. </li>
  27268. <li>
  27269. <b>gone</b> - alle Bewohner sind f&uuml;r l&auml;ngere Zeit verreist
  27270. </li>
  27271. <li>
  27272. <b>none</b> - kein Mitglied aktiv
  27273. </li>
  27274. </ul><br>
  27275. <br>
  27276. Hinweis: Der Status 'none' kann nicht explizit gesetzt werden. Das setzen von 'gone' wird bei Mitgliedern vom Typ GUEST als 'none' behandelt.
  27277. </ul>
  27278. </ul><br>
  27279. <br>
  27280. <a name="RESIDENTSattr" id="RESIDENTSattr"></a> <b>Attribute</b><br>
  27281. <ul>
  27282. <ul>
  27283. <li>
  27284. <b>rgr_lang</b> - &uuml;berschreibt globale Spracheinstellung; hilft beim setzen von Device Attributen, um FHEMWEB Anzeigetext zu &uuml;bersetzen
  27285. </li>
  27286. <li>
  27287. <b>rgr_noDuration</b> - deaktiviert die kontinuierliche, nicht Event-basierte Berechnung der Zeitspannen (siehe Readings durTimer*)
  27288. </li>
  27289. <li>
  27290. <b>rgr_showAllStates</b> - die Status 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess &uuml;ber das devStateIcon Attribut zu erm&ouml;glichen; Standard ist 0
  27291. </li>
  27292. <li>
  27293. <b>rgr_states</b> - Liste aller in FHEMWEB angezeigter Status; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterst&uuml;tzte Status f&uuml;hren zu Fehlern
  27294. </li>
  27295. <li>
  27296. <b>rgr_wakeupDevice</b> - Referenz zu versklavten DUMMY Ger&auml;ten, welche als Wecker benutzt werden (Teil von RESIDENTS Toolkit's wakeuptimer)
  27297. </li>
  27298. </ul>
  27299. </ul><br>
  27300. <br>
  27301. <br>
  27302. <b>Generierte Readings/Events:</b><br>
  27303. <ul>
  27304. <ul>
  27305. <li>
  27306. <b>lastActivity</b> - der letzte Status Wechsel eines Gruppenmitglieds
  27307. </li>
  27308. <li>
  27309. <b>lastActivityBy</b> - der Name des Gruppenmitglieds, dessen Status zuletzt ge&auml;ndert wurde
  27310. </li>
  27311. <li>
  27312. <b>lastArrival</b> - Zeitstempel der letzten Ankunft zu Hause
  27313. </li>
  27314. <li>
  27315. <b>lastAwake</b> - Zeitstempel des Endes des letzten Schlafzyklus
  27316. </li>
  27317. <li>
  27318. <b>lastDeparture</b> - Zeitstempel des letzten Verlassens des Zuhauses
  27319. </li>
  27320. <li>
  27321. <b>lastDurAbsence</b> - Dauer der letzten Abwesenheit in normal lesbarem Format (Stunden:Minuten:Sekunden)
  27322. </li>
  27323. <li>
  27324. <b>lastDurAbsence_cr</b> - Dauer der letzten Abwesenheit in Computer lesbarem Format (Minuten)
  27325. </li>
  27326. <li>
  27327. <b>lastDurPresence</b> - Dauer der letzten Anwesenheit in normal lesbarem Format (Stunden:Minuten:Sekunden)
  27328. </li>
  27329. <li>
  27330. <b>lastDurPresence_cr</b> - Dauer der letzten Anwesenheit in Computer lesbarem Format (Minuten)
  27331. </li>
  27332. <li>
  27333. <b>lastDurSleep</b> - Dauer des letzten Schlafzyklus in normal lesbarem Format (Stunden:Minuten:Sekunden)
  27334. </li>
  27335. <li>
  27336. <b>lastDurSleep_cr</b> - Dauer des letzten Schlafzyklus in Computer lesbarem Format (Minuten)
  27337. </li>
  27338. <li>
  27339. <b>lastSleep</b> - Zeitstempel des Beginns des letzten Schlafzyklus
  27340. </li>
  27341. <li>
  27342. <b>lastState</b> - der vorherige Status
  27343. </li>
  27344. <li>
  27345. <b>lastWakeup</b> - Zeit der letzten Wake-up Timer Ausf&uuml;hring
  27346. </li>
  27347. <li>
  27348. <b>lastWakeupDev</b> - Device Name des zuletzt verwendeten Wake-up Timers
  27349. </li>
  27350. <li>
  27351. <b>nextWakeup</b> - Zeit der n&auml;chsten Wake-up Timer Ausf&uuml;hrung
  27352. </li>
  27353. <li>
  27354. <b>nextWakeupDev</b> - Device Name des als n&auml;chstes ausgef&auml;hrten Wake-up Timer
  27355. </li>
  27356. <li>
  27357. <b>presence</b> - gibt den zu Hause Status in Abh&auml;ngigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
  27358. </li>
  27359. <li>
  27360. <b>residentsAbsent</b> - Anzahl der Bewohner mit Status 'absent'
  27361. </li>
  27362. <li>
  27363. <b>residentsAbsentDevs</b> - Ger&auml;tename der Bewohner mit Status 'absent'
  27364. </li>
  27365. <li>
  27366. <b>residentsAbsentNames</b> - Ger&auml;tealias der Bewohner mit Status 'absent'
  27367. </li>
  27368. <li>
  27369. <b>residentsAsleep</b> - Anzahl der Bewohner mit Status 'asleep'
  27370. </li>
  27371. <li>
  27372. <b>residentsAsleepDevs</b> - Ger&auml;tename der Bewohner mit Status 'asleep'
  27373. </li>
  27374. <li>
  27375. <b>residentsAsleepNames</b> - Ger&auml;tealias der Bewohner mit Status 'asleep'
  27376. </li>
  27377. <li>
  27378. <b>residentsAwoken</b> - Anzahl der Bewohner mit Status 'awoken'
  27379. </li>
  27380. <li>
  27381. <b>residentsAwokenDevs</b> - Ger&auml;tename der Bewohner mit Status 'awoken'
  27382. </li>
  27383. <li>
  27384. <b>residentsAwokenNames</b> - Ger&auml;tealias der Bewohner mit Status 'awoken'
  27385. </li>
  27386. <li>
  27387. <b>residentsGone</b> - Anzahl der Bewohner mit Status 'gone'
  27388. </li>
  27389. <li>
  27390. <b>residentsGoneDevs</b> - Ger&auml;tename der Bewohner mit Status 'gone'
  27391. </li>
  27392. <li>
  27393. <b>residentsGoneNames</b> - Ger&auml;tealias der Bewohner mit Status 'gone'
  27394. </li>
  27395. <li>
  27396. <b>residentsGotosleep</b> - Anzahl der Bewohner mit Status 'gotosleep'
  27397. </li>
  27398. <li>
  27399. <b>residentsGotosleepDevs</b> - Ger&auml;tename der Bewohner mit Status 'gotosleep'
  27400. </li>
  27401. <li>
  27402. <b>residentsGotosleepNames</b> - Ger&auml;tealias der Bewohner mit Status 'gotosleep'
  27403. </li>
  27404. <li>
  27405. <b>residentsHome</b> - Anzahl der Bewohner mit Status 'home'
  27406. </li>
  27407. <li>
  27408. <b>residentsHomeDevs</b> - Ger&auml;tename der Bewohner mit Status 'home'
  27409. </li>
  27410. <li>
  27411. <b>residentsHomeNames</b> - Ger&auml;tealias der Bewohner mit Status 'home'
  27412. </li>
  27413. <li>
  27414. <b>residentsTotal</b> - Summe aller aktiven Bewohner unabh&auml;ngig von ihrem aktuellen Status
  27415. </li>
  27416. <li>
  27417. <b>residentsTotalAbsent</b> - Summe aller aktiven Bewohner, die unterwegs sind
  27418. </li>
  27419. <li>
  27420. <b>residentsTotalAbsentDevs</b> - Ger&auml;tename aller aktiven Bewohner, die unterwegs sind
  27421. </li>
  27422. <li>
  27423. <b>residentsTotalAbsentNames</b> - Ger&auml;tealias aller aktiven Bewohner, die unterwegs sind
  27424. </li>
  27425. <li>
  27426. <b>residentsTotalGuests</b> - Anzahl der aktiven G&auml;ste, welche momentan du den Bewohnern dazugez&auml;hlt werden
  27427. </li>
  27428. <li>
  27429. <b>residentsTotalGuestsAbsent</b> - Anzahl der aktiven G&auml;ste, die momentan unterwegs sind
  27430. </li>
  27431. <li>
  27432. <b>residentsTotalGuestsAbsentDevs</b> - Ger&auml;tename der aktiven G&auml;ste, die momentan unterwegs sind
  27433. </li>
  27434. <li>
  27435. <b>residentsTotalGuestsAbsentNames</b> - Ger&auml;tealias der aktiven G&auml;ste, die momentan unterwegs sind
  27436. </li>
  27437. <li>
  27438. <b>residentsTotalGuestsPresent</b> - Anzahl der aktiven G&auml;ste, die momentan zu Hause sind
  27439. </li>
  27440. <li>
  27441. <b>residentsTotalGuestsPresentDevs</b> - Ger&auml;tename der aktiven G&auml;ste, die momentan zu Hause sind
  27442. </li>
  27443. <li>
  27444. <b>residentsTotalGuestsPresentNames</b> - Ger&auml;tealias der aktiven G&auml;ste, die momentan zu Hause sind
  27445. </li>
  27446. <li>
  27447. <b>residentsTotalRoommates</b> - Anzahl der Bewohner, die als permanente Bewohner behandelt werden
  27448. </li>
  27449. <li>
  27450. <b>residentsTotalRoommatesAbsent</b> - Anzahl der Besitzer, die momentan unterwegs sind
  27451. </li>
  27452. <li>
  27453. <b>residentsTotalRoommatesAbsentDevs</b> - Ger&auml;tename der Besitzer, die momentan unterwegs sind
  27454. </li>
  27455. <li>
  27456. <b>residentsTotalRoommatesAbsentNames</b> - Ger&auml;tealias der Besitzer, die momentan unterwegs sind
  27457. </li>
  27458. <li>
  27459. <b>residentsTotalRoommatesPresent</b> - Anzahl der Besitzer, die momentan zu Hause sind
  27460. </li>
  27461. <li>
  27462. <b>residentsTotalRoommatesPresentDevs</b> - Ger&auml;tename der Besitzer, die momentan zu Hause sind
  27463. </li>
  27464. <li>
  27465. <b>residentsTotalRoommatesPresentNames</b> - Ger&auml;tealias der Besitzer, die momentan zu Hause sind
  27466. </li>
  27467. <li>
  27468. <b>residentsTotalPresent</b> - Summe aller aktiven Bewohner, die momentan zu Hause sind
  27469. </li>
  27470. <li>
  27471. <b>residentsTotalPresentDevs</b> - Ger&auml;tename aller aktiven Bewohner, die momentan zu Hause sind
  27472. </li>
  27473. <li>
  27474. <b>residentsTotalPresentNames</b> - Ger&auml;tealias aller aktiven Bewohner, die momentan zu Hause sind
  27475. </li>
  27476. <li>
  27477. <b>residentsTotalWakeup</b> - Summe aller Bewohner, bei denen aktuell ein Weckprogramm ausgef&uuml;hrt wird
  27478. </li>
  27479. <li>
  27480. <b>residentsTotalWakeupDevs</b> - Ger&auml;tename aller Bewohner, bei denen aktuell ein Weckprogramm ausgef&uuml;hrt wird
  27481. </li>
  27482. <li>
  27483. <b>residentsTotalWakeupNames</b> - Ger&auml;tealias aller Bewohner, bei denen aktuell ein Weckprogramm ausgef&uuml;hrt wird
  27484. </li>
  27485. <li>
  27486. <b>residentsTotalWayhome</b> - Summe aller aktiven Bewohner, die momentan auf dem Weg zur&uuml;ck nach Hause sind
  27487. </li>
  27488. <li>
  27489. <b>residentsTotalWayhomeDevs</b> - Ger&auml;tename aller aktiven Bewohner, die momentan auf dem Weg zur&uuml;ck nach Hause sind
  27490. </li>
  27491. <li>
  27492. <b>residentsTotalWayhomeNames</b> - Ger&auml;tealias aller aktiven Bewohner, die momentan auf dem Weg zur&uuml;ck nach Hause sind
  27493. </li>
  27494. <li>
  27495. <b>residentsTotalWayhomeDelayed</b> - Summe aller Bewohner, die momentan mit Versp&auml;tung auf dem Weg zur&uuml;ck nach Hause sind
  27496. </li>
  27497. <li>
  27498. <b>residentsTotalWayhomeDelayedDevs</b> - Ger&auml;tename aller Bewohner, die momentan versp&auml;tet auf dem Weg zur&uuml;ck nach Hause sind
  27499. </li>
  27500. <li>
  27501. <b>residentsTotalWayhomeDelayedNames</b> - Ger&auml;tealias aller Bewohner, die momentan versp&auml;tet auf dem Weg zur&uuml;ck nach Hause sind
  27502. </li>
  27503. <li>
  27504. <b>state</b> - gibt den aktuellen Status wieder
  27505. </li>
  27506. <li>
  27507. <b>wakeup</b> - hat den Wert '1' w&auml;hrend ein Weckprogramm dieser Bewohner-Gruppe ausgef&uuml;hrt wird
  27508. </li>
  27509. </ul>
  27510. </ul>
  27511. <br>
  27512. <br>
  27513. <b>RESIDENTS Toolkit</b><br>
  27514. <ul>
  27515. <ul>
  27516. Mit dem set-Kommando <code>create</code> k&ouml;nnen zur Vereinfachung vorkonfigurierte Konfigurationen zu RESIDENTS, <a href="#ROOMMATE">ROOMMATE</a> oder <a href="#GUEST">GUEST</a> Ger&auml;ten hinzugef&uuml;gt werden.<br>
  27517. Die folgenden Kommandos sind momentan verf&uuml;gbar:<br>
  27518. <br>
  27519. <li>
  27520. <b>wakeuptimer</b> &nbsp;&nbsp;-&nbsp;&nbsp; f&uuml;gt ein Dummy Ger&auml;t mit erweiterten Funktionen als Wecker hinzu, um darauf Weck-Automationen aufzubauen.
  27521. <ul>
  27522. Ein notify Ger&auml;t wird als Makro erstellt, um die eigentliche Automation auszuf&uuml;hren. Das Makro wird durch ein normales at-Ger&auml;t ausgel&ouml;st und kann ebenfalls angepasst werden. Die Hauptfunktion wird dabei trotzdem von einer speziellen RESIDENTS Toolkit funktion gehandhabt.<br>
  27523. Die Zeit aktiver Wecker kann mittels +<MINUTEN> oder -<MINUTEN> relativ erh&ouml;ht bzw. verringert werden. Die Angabe als +HH:MM ist auch m&ouml;glich.<br>
  27524. <br>
  27525. Die Weckfunktion kann wie folgt &uuml;ber Attribute beinflusst werden:<br>
  27526. <li>
  27527. <i>wakeupAtdevice</i> - Backlink zum at Ger&auml;t (notwendig)
  27528. </li>
  27529. <li>
  27530. <i>wakeupDays</i> - Makro nur an bestimmten Tagen ausl&ouml;sen. Mon=1,Di=2,Mi=3,Do=4,Fr=5,Sa=6,So=0 (optional)
  27531. </li>
  27532. <li>
  27533. <i>wakeupDefaultTime</i> - Stellt die Weckzeit nach dem ausl&ouml;sen zur&uuml;ck auf diesen Standardwert (optional)
  27534. </li>
  27535. <li>
  27536. <i>wakeupEnforced</i> - Forciertes wecken (optional; 0=nein, 1=ja, 2=wenn Weckzeit ungleich wakeupDefaultTime, 3=wenn Weckzeit fr&uuml;her ist als wakeupDefaultTime)
  27537. </li>
  27538. <li>
  27539. <i>wakeupHolidays</i> - Makro u.U. an Feiertagen oder Nicht-Feiertagen ausf&uuml;hren (optional; andHoliday=an Feiertagen ggf. zusammen mit wakeupDays, orHoliday=an Feiertagen unabh&auml;ngig von wakeupDays, andNoHoliday=an Nicht-Feiertagen ggf. zusammen mit wakeupDays, orNoHoliday=an Nicht-Feiertagen unabh&auml;ngig von wakeupDays)
  27540. </li>
  27541. <li>
  27542. <i>wakeupMacro</i> - Name des notify Makro Ger&auml;tes (notwendig)
  27543. </li>
  27544. <li>
  27545. <i>wakeupOffset</i> - Wert in Minuten, die das Makro fr&uuml;her ausgel&ouml;st werden soll, z.B. bei komplexen Weckprogrammen &uuml;ber einen Zeitraum von 30 Minuten (Standard ist 0)
  27546. </li>
  27547. <li>
  27548. <i>wakeupResetSwitcher</i> - das DUMMY Device, welches zum schnellen ein/aus schalten der Resetfunktion verwendet wird (optional, Device wird automatisch angelegt)
  27549. </li>
  27550. <li>
  27551. <i>wakeupResetdays</i> - sofern wakeupDefaultTime gesetzt ist, kann der Reset hier auf betimmte Tage begrenzt werden. Mon=1,Di=2,Mi=3,Do=4,Fr=5,Sa=6,So=0 (optional)
  27552. </li>
  27553. <li>
  27554. <i>wakeupUserdevice</i> - Backlink zum RESIDENTS, ROOMMATE oder GUEST Ger&auml;t, um dessen Status zu pr&uuml;fen (notwendig)
  27555. </li>
  27556. <li>
  27557. <i>wakeupWaitPeriod</i> - Schwelle der Wartezeit in Minuten bis das Weckprogramm erneut ausgef&uuml;hrt werden kann, z.B. wenn manuell eine fr&uuml;here Weckzeit gesetzt wurde als normal w&auml;hrend wakeupDefaultTime verwendet wird. Greift nicht, wenn die Weckzeit w&auml;hrend dieser Zeit ge&auml;ndert wurde; Standard ist 360 Minuten / 6h (optional)
  27558. </li>
  27559. </ul>
  27560. </li>
  27561. </ul>
  27562. </ul>
  27563. </ul>
  27564. <p><a name="RFHEM"></a>
  27565. <h3>RFHEM</h3>
  27566. <div class='langLinks'>[<a href='commandref.html#RFHEM'>EN</a> DE]</div>
  27567. <ul>Dieses modul verbindet auf einfache Art separate FHEM isnatllationen.</ul>
  27568. <ul>Man kann damit einfache Befehle an andere Installationen sendne oder automatisch senden lassen.</ul>
  27569. <b>Define</b>
  27570. <ul><code>define &lt;Name&gt; RFHEM &lt;hostname[:port]&gt; &lt;[pw]&gt;</code></ul><br>
  27571. <ul><code>define remotePI RFHEM christian-pi test123</code></ul><br>
  27572. <a name="RFHEM set"></a>
  27573. <b>Set</b>
  27574. <ul><code>set &lt;Name&gt; cmd &lt;fhem befehl&gt;</code></ul><br>
  27575. <ul><code>set remotePI cmd set lampe on</code></ul>
  27576. <b>Attribute</b>
  27577. <li>RFHEMdevs<br>
  27578. Eine durch Komma getrennte Liste von Geräten.
  27579. Alle Events dieser Geräte werden autom. an die entfernte Installation gesendet. Auf der entfernten Seite muss es das Gerät mit selben Namen geben (zb ein Dummy).
  27580. </li><br>
  27581. <li>RFHEMevents<br>
  27582. Eine durch Komma getrennte Liste von Events.
  27583. Alle diese Events ( der Geräte aus RFHEMdevs) werden autom. an die entfernte Installation gesendet
  27584. </li><br>
  27585. <ul>Man kann dieses Modul zb auch in verbindung mit notify nutzen:</ul>
  27586. <ul><code>define LichtschlauchNotify notify wz.LichtschlauchDummy { fhem "set RemotePI cmd set Wohnzimmer.Lichtschlauch $EVENT" }</code></ul><br>
  27587. <p><a name="RFXCOM"></a>
  27588. <h3>RFXCOM</h3>
  27589. <ul>
  27590. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  27591. hier: <a href='commandref.html#RFXCOM'>RFXCOM</a><br/>
  27592. </ul>
  27593. <a name="RFXMETER"></a>
  27594. <h3>RFXMETER</h3>
  27595. <ul>
  27596. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  27597. hier: <a href='commandref.html#RFXMETER'>RFXMETER</a><br/>
  27598. </ul>
  27599. <a name="RFXX10REC"></a>
  27600. <h3>RFXX10REC</h3>
  27601. <ul>
  27602. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  27603. hier: <a href='commandref.html#RFXX10REC'>RFXX10REC</a><br/>
  27604. </ul>
  27605. <a name="ROOMMATE" id="ROOMMATE"></a>
  27606. <h3>ROOMMATE</h3>
  27607. <div class='langLinks'>[<a href='commandref.html#ROOMMATE'>EN</a> DE]</div>
  27608. <ul>
  27609. <a name="ROOMMATEdefine" id="ROOMMATEdefine"></a> <b>Define</b>
  27610. <ul>
  27611. <code>define &lt;rr_FirstName&gt; ROOMMATE [&lt;Device Name(n) der Bewohnergruppe(n)&gt;]</code><br />
  27612. <br />
  27613. Stellt ein spezielles virtuelles Device bereit, welches einen Mitbewohner repr&auml;sentiert.<br />
  27614. Basierend auf dem aktuellen Status und anderen Readings k&ouml;nnen andere Aktionen innerhalb von FHEM angesto�en werden.<br />
  27615. <br />
  27616. Wird vom &uuml;bergeordneten Modul <a href="#RESIDENTS">RESIDENTS</a> verwendet, kann aber auch einzeln benutzt werden.<br />
  27617. <br />
  27618. Bei Mitgliedschaft mehrerer Bewohnergruppen werden diese durch Komma getrennt angegeben (siehe Beispiel unten).<br />
  27619. <br />
  27620. Beispiele:<br />
  27621. <ul>
  27622. <code># Einzeln<br />
  27623. define rr_Manfred ROOMMATE<br />
  27624. <br />
  27625. # Typisches Gruppenmitglied<br />
  27626. define rr_Manfred ROOMMATE rgr_Residents # um Mitglied der Gruppe rgr_Residents zu sein<br />
  27627. <br />
  27628. # Mitglied in mehreren Gruppen<br />
  27629. define rr_Manfred ROOMMATE rgr_Residents,rgr_Parents # um Mitglied der Gruppen rgr_Residents und rgr_Parents zu sein<br />
  27630. <br />
  27631. # Komplexe Familien Struktur<br />
  27632. define rr_Manfred ROOMMATE rgr_Residents,rgr_Parents # Elternteil<br />
  27633. define rr_Lisa ROOMMATE rgr_Residents,rgr_Parents # Elternteil<br />
  27634. define rr_Rick ROOMMATE rgr_Residents,rgr_Children # Kind1<br />
  27635. define rr_Alex ROOMMATE rgr_Residents,rgr_Children # Kind2</code>
  27636. </ul>
  27637. </ul><br />
  27638. <br />
  27639. <a name="ROOMMATEset" id="ROOMMATEset"></a> <b>Set</b>
  27640. <ul>
  27641. <code>set &lt;rr_FirstName&gt; &lt;command&gt; [&lt;parameter&gt;]</code><br />
  27642. <br />
  27643. Momentan sind die folgenden Kommandos definiert.<br />
  27644. <ul>
  27645. <li>
  27646. <b>location</b> &nbsp;&nbsp;-&nbsp;&nbsp; setzt das Reading 'location'; siehe auch Attribut rr_locations, um die in FHEMWEB angezeigte Liste anzupassen
  27647. </li>
  27648. <li>
  27649. <b>mood</b> &nbsp;&nbsp;-&nbsp;&nbsp; setzt das Reading 'mood'; siehe auch Attribut rr_moods, um die in FHEMWEB angezeigte Liste anzupassen
  27650. </li>
  27651. <li>
  27652. <b>state</b> &nbsp;&nbsp;home,gotosleep,asleep,awoken,absent,gone&nbsp;&nbsp; wechselt den Status; siehe auch Attribut rr_states, um die in FHEMWEB angezeigte Liste anzupassen
  27653. </li>
  27654. <li>
  27655. <b>create</b>
  27656. <li><i>locationMap</i>&nbsp;&nbsp; f&uuml;gt ein vorkonfiguriertes weblink Device hinzu, welches eine Google Map anzeigt, sofern die Readings locationLat+locationLong vorhanden sind.</li>
  27657. <li><i>wakeuptimer</i>&nbsp;&nbsp; f&uuml;gt diverse Vorkonfigurationen auf Basis von RESIDENTS Toolkit hinzu. Siehe separate Sektion in der <a href="#RESIDENTS">RESIDENTS Modul Kommandoreferenz</a>.</li>
  27658. </li>
  27659. </ul>
  27660. <ul>
  27661. <u>Hinweis:</u> Sofern der Zugriff auf administrative set-Kommandos (-> create) eingeschr&auml;nkt werden soll, kann in einer FHEMWEB Instanz das Attribut allowedCommands &auml;hnlich wie 'set,set-user' erweitert werden.
  27662. Die Zeichenfolge 'set-user' stellt dabei sicher, dass beim Zugriff auf FHEM &uuml;ber diese FHEMWEB Instanz nur nicht-administrative set-Kommandos ausgef&uuml;hrt werden k&ouml;nnen.
  27663. </ul>
  27664. </ul><br />
  27665. <br />
  27666. <ul>
  27667. <u>M&ouml;gliche Status und ihre Bedeutung</u><br />
  27668. <br />
  27669. <ul>
  27670. Dieses Modul unterscheidet 6 verschiedene Status:<br />
  27671. <br />
  27672. <ul>
  27673. <li>
  27674. <b>home</b> - Mitbewohner ist zu Hause und wach
  27675. </li>
  27676. <li>
  27677. <b>gotosleep</b> - Mitbewohner ist auf dem Weg ins Bett
  27678. </li>
  27679. <li>
  27680. <b>asleep</b> - Mitbewohner schl&auml;ft
  27681. </li>
  27682. <li>
  27683. <b>awoken</b> - Mitbewohner ist gerade aufgewacht
  27684. </li>
  27685. <li>
  27686. <b>absent</b> - Mitbewohner ist momentan nicht zu Hause, wird aber bald zur&uuml;ck sein
  27687. </li>
  27688. <li>
  27689. <b>gone</b> - Mitbewohner ist f&uuml;r l&auml;ngere Zeit verreist
  27690. </li>
  27691. </ul>
  27692. </ul>
  27693. </ul><br />
  27694. <br />
  27695. <ul>
  27696. <u>Zusammenhang zwischen Anwesenheit/Presence und Aufenthaltsort/Location</u><br />
  27697. <br />
  27698. <ul>
  27699. Unter bestimmten Umst&auml;nden f&uuml;hrt der Wechsel des Status auch zu einer �nderung des Readings 'location'.<br />
  27700. <br />
  27701. Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'absent' auf 'present' wechselt, wird 'location' auf 'home' gesetzt. Sofern das Attribut rr_locationHome gesetzt ist, wird die erste Lokation daraus anstelle von 'home' verwendet.<br />
  27702. <br />
  27703. Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'present' auf 'absent' wechselt, wird 'location' auf 'underway' gesetzt. Sofern das Attribut rr_locationUnderway gesetzt ist, wird die erste Lokation daraus anstelle von 'underway' verwendet.
  27704. </ul>
  27705. </ul><br />
  27706. <br />
  27707. <ul>
  27708. <u>Auto-Status 'gone'</u><br />
  27709. <br />
  27710. <ul>
  27711. Immer wenn ein Mitbewohner auf 'absent' gesetzt wird, wird ein Z&auml;hler gestartet, der nach einer bestimmten Zeit den Status automatisch auf 'gone' setzt.<br />
  27712. Der Standard ist nach 36 Stunden.<br />
  27713. <br />
  27714. Dieses Verhalten kann &uuml;ber das Attribut rr_autoGoneAfter angepasst werden.
  27715. </ul>
  27716. </ul><br />
  27717. <br />
  27718. <ul>
  27719. <u>Anwesenheit mit anderen ROOMMATE oder GUEST Devices synchronisieren</u><br />
  27720. <br />
  27721. <ul>
  27722. Wenn Sie immer zusammen mit anderen Mitbewohnern oder G&auml;sten das Haus verlassen oder erreichen, k&ouml;nnen Sie ihren Status ganz einfach auf andere Mitbewohner &uuml;bertragen.<br />
  27723. Durch das Setzen des Attributs rr_PassPresenceTo folgen die dort aufgef&uuml;hrten Mitbewohner ihren eigenen Status&auml;nderungen nach 'home', 'absent' oder 'gone'.<br />
  27724. <br />
  27725. Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'gone' oder 'none' (im Falle von G&auml;sten) nicht beachtet werden.
  27726. </ul>
  27727. </ul><br />
  27728. <br />
  27729. <ul>
  27730. <u>Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence</u><br />
  27731. <br />
  27732. <ul>
  27733. Unter bestimmten Umst&auml;nden hat der Wechsel des Readings 'location' auch einen Einfluss auf den tats&auml;chlichen Status.<br />
  27734. <br />
  27735. Immer wenn eine Lokation mit dem Namen 'home' gesetzt wird, wird auch der Status auf 'home' gesetzt, sofern die Anwesenheit bis dahin noch auf 'absent' stand. Sofern das Attribut rr_locationHome gesetzt wurde, so l&ouml;sen alle dort angegebenen Lokationen einen Statuswechsel nach 'home' aus.<br />
  27736. <br />
  27737. Immer wenn eine Lokation mit dem Namen 'underway' gesetzt wird, wird auch der Status auf 'absent' gesetzt, sofern die Anwesenheit bis dahin noch auf 'present' stand. Sofern das Attribut rr_locationUnderway gesetzt wurde, so l&ouml;sen alle dort angegebenen Lokationen einen Statuswechsel nach 'underway' aus. Diese Lokationen werden auch nicht in das Reading 'lastLocation' &uuml;bertragen.<br />
  27738. <br />
  27739. Immer wenn eine Lokation mit dem Namen 'wayhome' gesetzt wird, wird das Reading 'wayhome' auf '1' gesetzt, sofern die Anwesenheit zu diesem Zeitpunkt 'absent' ist. Sofern das Attribut rr_locationWayhome gesetzt wurde, so f&uuml;hrt das VERLASSEN einer dort aufgef&uuml;hrten Lokation ebenfalls dazu, dass das Reading 'wayhome' auf '1' gesetzt wird. Es gibt also 2 M&ouml;glichkeiten den Nach-Hause-Weg-Indikator zu beeinflussen (implizit und explizit).<br />
  27740. Die Ankunft zu Hause setzt den Wert von 'wayhome' zur&uuml;ck auf '0'.<br />
  27741. <br />
  27742. Wenn Sie auch das <a href="#GEOFANCY">GEOFANCY</a> Modul verwenden, k&ouml;nnen Sie das Reading 'location' ganz einfach &uuml;ber GEOFANCY Ereignisse aktualisieren lassen. Definieren Sie dazu einen NOTIFY-Trigger wie diesen:<br />
  27743. <br />
  27744. <code>define n_rr_Manfred.location notify geofancy:currLoc_Manfred.* set rr_Manfred:FILTER=location!=$EVTPART1 location $EVTPART1</code><br />
  27745. <br />
  27746. Durch das Anlegen von Geofencing-Zonen mit den Namen 'home' und 'wayhome' in der iOS App werden zuk&uuml;nftig automatisch alle Status&auml;nderungen wie oben beschrieben durchgef&uuml;hrt.
  27747. </ul>
  27748. </ul><br />
  27749. <br />
  27750. <a name="ROOMMATEattr" id="ROOMMATEattr"></a> <b>Attribute</b><br />
  27751. <ul>
  27752. <ul>
  27753. <li>
  27754. <b>rr_autoGoneAfter</b> - Anzahl der Stunden, nach denen sich der Status automatisch auf 'gone' &auml;ndert, wenn der aktuellen Status 'absent' ist; Standard ist 36 Stunden
  27755. </li>
  27756. <li>
  27757. <b>rr_geofenceUUIDs</b> - Mit Komma getrennte Liste von Ger&auml;te UUIDs, die ihren Standort &uuml;ber <a href="#GEOFANCY">GEOFANCY</a> aktualisieren. Vermeidet zus&auml;tzliche notify/DOIF/watchdog Ger&auml;te und kann als Ersatz f&uuml;r das GEOFANCY attribute <i>devAlias</i> dienen. (hier ehr als eine UUID/Device zu hinterlegen ist eher keine gute Idee da die Lokation dann wom&ouml;glich anf&auml;ngt zu springen)
  27758. </li>
  27759. <li>
  27760. <b>rr_lang</b> - &uuml;berschreibt globale Spracheinstellung; hilft beim setzen von Device Attributen, um FHEMWEB Anzeigetext zu &uuml;bersetzen
  27761. </li>
  27762. <li>
  27763. <b>rr_locationHome</b> - hiermit &uuml;bereinstimmende Lokationen werden als zu Hause gewertet; der erste Eintrag wird f&uuml;r das Zusammenspiel bei Status&auml;nderungen benutzt; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist 'home'
  27764. </li>
  27765. <li>
  27766. <b>rr_locationUnderway</b> - hiermit &uuml;bereinstimmende Lokationen werden als unterwegs gewertet; der erste Eintrag wird f&uuml;r das Zusammenspiel bei Status&auml;nderungen benutzt; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist 'underway'
  27767. </li>
  27768. <li>
  27769. <b>rr_locationWayhome</b> - das Verlassen einer Lokation, die hier aufgef&uuml;hrt ist, l&auml;sst das Reading 'wayhome' auf '1' setzen; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist "wayhome"
  27770. </li>
  27771. <li>
  27772. <b>rr_locations</b> - Liste der in FHEMWEB anzuzeigenden Lokationsauswahlliste in FHEMWEB; mehrere Eintr&auml;ge nur durch Komma trennen und KEINE Leerzeichen verwenden
  27773. </li>
  27774. <li>
  27775. <b>rr_moodDefault</b> - die Stimmung, die nach Ankunft zu Hause oder nach dem Statuswechsel von 'awoken' auf 'home' gesetzt werden soll
  27776. </li>
  27777. <li>
  27778. <b>rr_moodSleepy</b> - die Stimmung, die nach Statuswechsel zu 'gotosleep' oder 'awoken' gesetzt werden soll
  27779. </li>
  27780. <li>
  27781. <b>rr_moods</b> - Liste von Stimmungen, wie sie in FHEMWEB angezeigt werden sollen; mehrere Eintr&auml;ge nur durch Komma trennen und KEINE Leerzeichen verwenden
  27782. </li>
  27783. <li>
  27784. <b>rr_noDuration</b> - deaktiviert die kontinuierliche, nicht Event-basierte Berechnung der Zeitspannen (siehe Readings durTimer*)
  27785. </li>
  27786. <li>
  27787. <b>rr_passPresenceTo</b> - synchronisiere die Anwesenheit mit anderen ROOMMATE oder GUEST Devices; mehrere Devices durch Leerzeichen trennen
  27788. </li>
  27789. <li>
  27790. <b>rr_presenceDevices</b> - &uuml;bernehmen des presence Status von einem anderen FHEM Device. Bei mehreren Devices diese mit Komma trennen, um ein Update des ROOMMATE Devices auszul&ouml;sen, sobald ALLE Devices entweder absent oder present sind. Optional kann auch durch : abgetrennt ein Reading Name angegeben werden, ansonsten werden die Readings presence und state ber&uuml;cksichtigt.
  27791. </li>
  27792. <li>
  27793. <b>rr_realname</b> - wo immer ROOMMATE den richtigen Namen verwenden m&ouml;chte nutzt es den Wert des Attributs alias oder group; Standard ist group
  27794. </li>
  27795. <li>
  27796. <b>rr_showAllStates</b> - die Status 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess &uuml;ber das devStateIcon Attribut zu erm&ouml;glichen; Standard ist 0
  27797. </li>
  27798. <li>
  27799. <b>rr_states</b> - Liste aller in FHEMWEB angezeigter Status; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterst&uuml;tzte Status f&uuml;hren zu Fehlern
  27800. </li>
  27801. <li>
  27802. <b>rr_wakeupDevice</b> - Referenz zu versklavten DUMMY Ger&auml;ten, welche als Wecker benutzt werden (Teil von RESIDENTS Toolkit's wakeuptimer)
  27803. </li>
  27804. </ul>
  27805. </ul><br />
  27806. <br />
  27807. <br />
  27808. <b>Generierte Readings/Events:</b><br />
  27809. <ul>
  27810. <ul>
  27811. <li>
  27812. <b>durTimerAbsence</b> - Timer, der die Dauer der Abwesenheit in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
  27813. </li>
  27814. <li>
  27815. <b>durTimerAbsence_cr</b> - Timer, der die Dauer der Abwesenheit in Computer lesbarem Format anzeigt (Minuten)
  27816. </li>
  27817. <li>
  27818. <b>durTimerPresence</b> - Timer, der die Dauer der Anwesenheit in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
  27819. </li>
  27820. <li>
  27821. <b>durTimerPresence_cr</b> - Timer, der die Dauer der Anwesenheit in Computer lesbarem Format anzeigt (Minuten)
  27822. </li>
  27823. <li>
  27824. <b>durTimerSleep</b> - Timer, der die Schlafdauer in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
  27825. </li>
  27826. <li>
  27827. <b>durTimerSleep_cr</b> - Timer, der die Schlafdauer in Computer lesbarem Format anzeigt (Minuten)
  27828. </li>
  27829. <li>
  27830. <b>lastArrival</b> - Zeitstempel der letzten Ankunft zu Hause
  27831. </li>
  27832. <li>
  27833. <b>lastAwake</b> - Zeitstempel des Endes des letzten Schlafzyklus
  27834. </li>
  27835. <li>
  27836. <b>lastDeparture</b> - Zeitstempel des letzten Verlassens des Zuhauses
  27837. </li>
  27838. <li>
  27839. <b>lastDurAbsence</b> - Dauer der letzten Abwesenheit in normal lesbarem Format (Stunden:Minuten:Sekunden)
  27840. </li>
  27841. <li>
  27842. <b>lastDurAbsence_cr</b> - Dauer der letzten Abwesenheit in Computer lesbarem Format (Minuten)
  27843. </li>
  27844. <li>
  27845. <b>lastDurPresence</b> - Dauer der letzten Anwesenheit in normal lesbarem Format (Stunden:Minuten:Sekunden)
  27846. </li>
  27847. <li>
  27848. <b>lastDurPresence_cr</b> - Dauer der letzten Anwesenheit in Computer lesbarem Format (Minuten)
  27849. </li>
  27850. <li>
  27851. <b>lastDurSleep</b> - Dauer des letzten Schlafzyklus in normal lesbarem Format (Stunden:Minuten:Sekunden)
  27852. </li>
  27853. <li>
  27854. <b>lastDurSleep_cr</b> - Dauer des letzten Schlafzyklus in Computer lesbarem Format (Minuten)
  27855. </li>
  27856. <li>
  27857. <b>lastLocation</b> - der vorherige Aufenthaltsort
  27858. </li>
  27859. <li>
  27860. <b>lastMood</b> - die vorherige Stimmung
  27861. </li>
  27862. <li>
  27863. <b>lastSleep</b> - Zeitstempel des Beginns des letzten Schlafzyklus
  27864. </li>
  27865. <li>
  27866. <b>lastState</b> - der vorherige Status
  27867. </li>
  27868. <li>
  27869. <b>lastWakeup</b> - Zeit der letzten Wake-up Timer Ausf&uuml;hring
  27870. </li>
  27871. <li>
  27872. <b>lastWakeupDev</b> - Device Name des zuletzt verwendeten Wake-up Timers
  27873. </li>
  27874. <li>
  27875. <b>location</b> - der aktuelle Aufenthaltsort
  27876. </li>
  27877. <li>
  27878. <b>mood</b> - die aktuelle Stimmung
  27879. </li>
  27880. <li>
  27881. <b>nextWakeup</b> - Zeit der n&auml;chsten Wake-up Timer Ausf&uuml;hrung
  27882. </li>
  27883. <li>
  27884. <b>nextWakeupDev</b> - Device Name des als n&auml;chstes ausgef&auml;hrten Wake-up Timer
  27885. </li>
  27886. <li>
  27887. <b>presence</b> - gibt den zu Hause Status in Abh&auml;ngigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
  27888. </li>
  27889. <li>
  27890. <b>state</b> - gibt den aktuellen Status wieder
  27891. </li>
  27892. <li>
  27893. <b>wakeup</b> - hat den Wert '1' w&auml;hrend ein Weckprogramm dieses Bewohners ausgef&uuml;hrt wird
  27894. </li>
  27895. <li>
  27896. <b>wayhome</b> - abh&auml;ngig vom aktullen Aufenthaltsort, kann der Wert '1' werden, wenn die Person auf dem weg zur&uuml;ck nach Hause ist
  27897. </li>
  27898. </ul>
  27899. </ul>
  27900. </ul>
  27901. <p><a name="RPII2C"></a>
  27902. <h3>RPII2C</h3>
  27903. <div class='langLinks'>[<a href='commandref.html#RPII2C'>EN</a> DE]</div>
  27904. (<a href="commandref.html#RPII2C">en</a> | de)
  27905. <ul>
  27906. <a name="RPII2C"></a>
  27907. Erm&ouml;glicht den Zugriff auf die I2C Schnittstellen des Raspberry Pi, BBB, Cubie &uuml;ber logische Module. Register von I2C IC's k&ouml;nnen auch direkt gelesen und geschrieben werden.<br><br>
  27908. Dieses Modul funktioniert gruns&auml;tzlich auf allen Linux Systemen, die <code>/dev/i2c-x</code> bereitstellen.<br><br>
  27909. <b>Vorbereitung:</b><br>
  27910. <ul>
  27911. <li>
  27912. I2C Kernelmodule laden (chose <b>one</b> of the following options):<br>
  27913. <ul>
  27914. <li>
  27915. I2C Kernelmodule laden:<br>
  27916. modules Datei &ouml;ffnen<br>
  27917. <ul><code>sudo nano /etc/modules</code></ul><br>
  27918. folgendes einf&uuml;gen<br>
  27919. <ul><code>
  27920. i2c-dev<br>
  27921. i2c-bcm2708<br>
  27922. </code></ul>
  27923. </li>
  27924. <li>
  27925. Seit Kernel 3.18.x auf dem Raspberry Pi und evtl. auch auf anderen Systemen ist der "Device tree support" implementiert und standardm&auml;&szlig;ig aktiviert.
  27926. Um I2C Unterst&uuml;tzung zu aktivieren mu&szlig;
  27927. <ul><code>device_tree_param=i2c0=on,i2c1=on</code></ul> zur /boot/config.txt hinzu gef&uuml;gt werden.
  27928. Wenn nur einer der Busse genutzt wird, kann der andere einfach aus der Zeile entfernt werden.
  27929. </li>
  27930. <li>
  27931. Bei Raspbian Images seit 2015 kann der I2C Bus einfach &uuml;ber <code>sudo raspi-config</code> aktiviert werden. Die Parameter werden automatisch in die /boot/config.txt eingetragen.
  27932. </li>
  27933. Neustart
  27934. </ul>
  27935. </li><br>
  27936. <li><b>Eine</b> der folgenden drei M&ouml;glichkeiten w&auml;hlen um dem FHEM User Zugriff auf <code>/dev/i2c-*</code> zu geben:
  27937. <ul>
  27938. <li>
  27939. <code>
  27940. sudo apt-get install i2c-tools<br>
  27941. sudo adduser fhem i2c</code><br>
  27942. </li><br>
  27943. <li>
  27944. Folgende Zeilen entweder in die Datei <code>/etc/init.d/fhem</code> vor <code>perl fhem.pl</code> in start, oder in die Datei <code>/etc/rc.local</code> eingef&uuml;gen:<br>
  27945. <code>
  27946. sudo chown fhem /dev/i2c-*<br>
  27947. sudo chgrp dialout /dev/i2c-*<br>
  27948. sudo chmod +t /dev/i2c-*<br>
  27949. sudo chmod 660 /dev/i2c-*<br>
  27950. </code>
  27951. </li><br>
  27952. <li>
  27953. F&uumlr das Raspberry Pi kann alternativ das gpio Utility der <a href="http://wiringpi.com/download-and-install/">WiringPi</a> Bibliothek benutzt werden um FHEM Schreibrechte auf die I2C Schnittstelle zu bekommen.<br>
  27954. WiringPi Installation ist hier beschrieben: <a href="#RPI_GPIO">RPI_GPIO</a><br>
  27955. Das gpio Utility wird, wenn vorhanden, automatisch verwendet<br>
  27956. Wichtig: um den I2C-0 am P5 Stecker des Raspberry nutzen zu k&ouml;nnen muss das Attribut <code>swap_i2c0</code> verwendet werden.<br>
  27957. </li>
  27958. </ul>
  27959. </li><br>
  27960. <li>
  27961. <b>Optional</b>: Hardwarezugriff via IOCTL wird standardm&auml;&szlig;ig genutzt (EMPFOHLEN), wenn Device::SMBus nicht installiert ist<br>
  27962. Soll der Hardwarezugriff &uuml;ber das Perl Modul Device::SMBus erfolgen sind diese Schritte notwendig:<br>
  27963. <ul><code>sudo apt-get install libmoose-perl<br>
  27964. sudo cpan Device::SMBus</code></ul><br>
  27965. </li>
  27966. <li>
  27967. <b>Nur f&uuml;r Raspbian Nutzer</b><br>
  27968. Um I2C-0 am P5 Stecker auf Raspberry Pi modell B mit neueren Raspbian Versionen zu nutzen, welche auch das Raspberry Pi model B+ unterst&uuml;tzen, muss folgende Zeile in die <code>/boot/cmdline.txt</code> eingef&uuml;gt werden:<br>
  27969. <ul><code>bcm2708.vc_i2c_override=1</code></ul><br>
  27970. </li>
  27971. </ul>
  27972. <a name="RPII2CDefine"></a><br>
  27973. <b>Define</b>
  27974. <ul>
  27975. <code>define &lt;name&gt; RPII2C &lt;I2C Bus Number&gt;</code><br>
  27976. Die <code>&lt;I2C Bus Number&gt;</code> ist die Nummer des I2C Bus an den die I2C IC's angeschlossen werden<br><br>
  27977. </ul>
  27978. <a name="RPII2CSet"></a>
  27979. <b>Set</b>
  27980. <ul>
  27981. <li>
  27982. Schreibe ein Byte (oder auch mehrere nacheinander) direkt auf ein I2C device (manche I2C Module sind so einfach, das es nicht einmal mehrere Register gibt):<br>
  27983. <code>set &lt;name&gt; writeByte &lt;I2C Address&gt; &lt;value&gt;</code><br><br>
  27984. </li>
  27985. <li>
  27986. Schreibe n-bytes auf einen Registerbereich (als Folge von Einzelbefehlen), beginnend mit dem angegebenen Register:<br>
  27987. <code>set &lt;name&gt; writeByteReg &lt;I2C Address&gt; &lt;Register Address&gt; &lt;value&gt; [&lt;value&gt; [..]]</code><br><br>
  27988. </li>
  27989. <li>
  27990. Schreibe n-bytes auf ein I2C device (als Blockoperation):<br>
  27991. <code>set &lt;name&gt; writeBlock &lt;I2C Address&gt; &lt;value&gt; [&lt;value&gt; [..]]</code><br><br>
  27992. </li>
  27993. <li>
  27994. Schreibe n-bytes auf einen Registerbereich (als Blockoperation), beginnend mit dem angegebenen Register:<br>
  27995. <code>set &lt;name&gt; writeBlockReg &lt;I2C Address&gt; &lt;Register Address&gt; &lt;value&gt; [&lt;value&gt; [..]]</code><br><br>
  27996. </li><br>
  27997. Beispiele:
  27998. <ul>
  27999. Schreibe 0xAA zu Modul mit I2C Addresse 0x60<br>
  28000. <code>set test1 writeByte 60 AA</code><br>
  28001. Schreibe 0xAA zu Register 0x01 des Moduls mit der I2C Adresse 0x6E<br>
  28002. <code>set test1 writeByteReg 6E 01 AA</code><br>
  28003. Schreibe 0xAA zu Register 0x01 des Moduls mit der I2C Adresse 0x6E, schreibe danach 0x55 in das Register 0x02 als einzelne Befehle<br>
  28004. <code>set test1 writeByteReg 6E 01 AA 55</code><br>
  28005. Schreibe 0xA4 zu Register 0x03, 0x00 zu Register 0x04 und 0xDA zu Register 0x05 des Moduls mit der I2C Adresse 0x60 zusammen als ein Blockbefehl<br>
  28006. <code>set test1 writeBlockReg 60 03 A4 00 DA</code><br>
  28007. </ul><br>
  28008. </ul>
  28009. <a name="RPII2CGet"></a>
  28010. <b>Get</b>
  28011. <ul>
  28012. <li>
  28013. Auslesen der Registerinhalte des I2C Moduls:<br>
  28014. <code>get &lt;name&gt; read &lt;I2C Address&gt; [&lt;Register Address&gt; [&lt;number of registers&gt;]]</code><br><br>
  28015. </li>
  28016. <li>
  28017. Blockweises Auslesen des I2C Moduls (ohne separate Register):<br>
  28018. <code>get &lt;name&gt; readblock &lt;I2C Address&gt; [&lt;number of registers&gt;]</code><br><br>
  28019. </li>
  28020. <li>
  28021. Blockweises Auslesen der Registerinhalte des I2C Moduls:<br>
  28022. <code>get &lt;name&gt; readblockreg &lt;I2C Address&gt; &lt;Register Address&gt; [&lt;number of registers&gt;]</code><br><br>
  28023. </li><br>
  28024. Beispiele:
  28025. <ul>
  28026. Lese Byte vom Modul mit der I2C Adresse 0x60<br>
  28027. <code>get test1 read 60</code><br>
  28028. Lese den Inhalt des Registers 0x01 vom Modul mit der I2C Adresse 0x6E.<br>
  28029. <code>get test1 read 6E 01 AA 55</code><br>
  28030. Lese den Inhalt des Registerbereichs 0x03 bis 0x06 vom Modul mit der I2C Adresse 0x60.<br>
  28031. <code>get test1 read 60 03 4</code><br>
  28032. </ul><br>
  28033. </ul><br>
  28034. <a name="RPII2CAttr"></a>
  28035. <b>Attribute</b>
  28036. <ul>
  28037. <li>swap_i2c0<br>
  28038. Umschalten von I2C-0 des Raspberry Pi Rev. B von J5 auf P5<br>
  28039. Dieses Attribut ist nur f&uuml;r das Raspberry Pi vorgesehen und ben&ouml;tigt das gpio utility wie unter dem Punkt Vorbereitung beschrieben.<br>
  28040. Standard: keiner, g&uuml;ltige Werte: on, off<br><br>
  28041. </li>
  28042. <li>useHWLib<br>
  28043. &Auml;ndern der Methode des Hardwarezugriffs.<br>
  28044. Dieses Attribut existiert nur, wenn beide Zugriffsmethoden verf&uuml;gbar sind<br>
  28045. Standard: IOCTL, g&uuml;ltige Werte: IOCTL, SMBus<br><br>
  28046. </li>
  28047. <li><a href="#ignore">ignore</a></li>
  28048. <li><a href="#do_not_notify">do_not_notify</a></li>
  28049. <li><a href="#showtime">showtime</a></li>
  28050. </ul>
  28051. <br>
  28052. </ul>
  28053. <p><a name="RPI_GPIO"></a>
  28054. <h3>RPI_GPIO</h3>
  28055. <div class='langLinks'>[<a href='commandref.html#RPI_GPIO'>EN</a> DE]</div>
  28056. (<a href="commandref.html#RPI_GPIO">en</a> | de)
  28057. <ul>
  28058. <a name="RPI_GPIO"></a>
  28059. Das Raspberry Pi erm&ouml;glicht direkten Zugriff zu einigen GPIO's &uuml;ber den Pfostenstecker P1 (und P5 bei V2). Die Steckerbelegung ist in den Tabellen unter Define zu finden.
  28060. Dieses Modul erm&ouml;glicht es, die herausgef&uuml;hrten GPIO's direkt als Ein- und Ausgang zu benutzen. Die Eing&auml;nge k&ouml;nnen zyklisch abgefragt werden oder auch sofort bei Pegelwechsel gesetzt werden.<br>
  28061. Neben dem Raspberry Pi k&ouml;nnen auch die GPIO's von BBB, Cubie, Banana Pi und jedem Linuxsystem, das diese im Userspace zug&auml;gig macht, genutzt werden.<br>
  28062. <b>Wichtig: Niemals Spannung an einen GPIO anlegen, der als Ausgang eingestellt ist! Die interne Logik der GPIO's arbeitet mit 3,3V. Ein &uuml;berschreiten der 3,3V zerst&ouml;rt den GPIO und vielleicht auch den ganzen Prozessor!</b><br><br>
  28063. <b>Vorbereitung:</b><br>
  28064. Auf GPIO Pins wird im Modul &uuml;ber sysfs zugegriffen. Die Dateien befinden sich unter <code>/system/class/gpio</code> und sind in der aktuellen Raspbian Distribution (ab Jan 2014) in der Gruppe gpio. Es funktioniert auch mit der Jessie Version. Allerdings NICHT wenn ein Kernelupgrade durchgef&uuml;hrt wird<br>
  28065. Nach dem ausf&uuml;hren folgender Befehle sind die GPIO's von PRI_GPIO aus nutzbar:<br>
  28066. <ul><code>
  28067. sudo adduser fhem gpio<br>
  28068. sudo reboot
  28069. </code></ul><br>
  28070. Wenn das Attribut <code>pud_resistor</code> verwendet werden soll und f&uuml;r &auml;ltere Raspbian Distributionen, muss zus&auml;tzlich das gpio Tool der <a href="http://wiringpi.com/download-and-install/">WiringPi</a>
  28071. Bibliothek installiert werden, um den internen Pullup/down Widerstand zu aktivieren, bzw. GPIO's zu exportieren und die korrekten Nutzerrechte zu setzen (f&uuml;r den zweiten Fall funktioniert das active_low Attribut <b>nicht</b>).<br>
  28072. Installation WiringPi:<br>
  28073. <ul><code>
  28074. sudo apt-get update<br>
  28075. sudo apt-get upgrade<br>
  28076. sudo apt-get install git-core<br>
  28077. git clone git://git.drogon.net/wiringPi<br>
  28078. cd wiringPi
  28079. ./build
  28080. </code></ul><br>
  28081. F&uuml;r Linux Systeme bei denen der Zugriff auf <code>/system/class/gpio</code> nur mit root Rechten erfolgen kann, m&uuml;ssen die GPIO's vor FHEM start exportiert und von den Rechten her angepasst werden.<br>
  28082. Dazu in die <code>/etc/rc.local</code> folgendes einf&uuml;gen (Beispiel f&uuml;r GPIO22 und 23):<br>
  28083. <ul><code>
  28084. echo 22 > /sys/class/gpio/export<br>
  28085. echo 23 > /sys/class/gpio/export<br>
  28086. chown -R fhem:root /sys/devices/virtual/gpio/* (oder chown -R fhem:gpio /sys/devices/platform/gpio-sunxi/gpio/* f&uuml;r Banana Pi)<br>
  28087. chown -R fhem:root /sys/class/gpio/*<br>
  28088. </code></ul><br>
  28089. <a name="RPI_GPIODefine"></a>
  28090. <b>Define</b>
  28091. <ul>
  28092. <code>define &lt;name&gt; RPI_GPIO &lt;GPIO number&gt;[ &lt;GPIO-Basedir&gt;[ &lt;WiringPi-gpio-utility&gt;]]</code><br><br>
  28093. Alle verf&uuml;gbaren <code>GPIO number</code> sind z.B. <a href="http://www.panu.it/raspberry/">hier</a> zu finden<br><br>
  28094. Beispiele:
  28095. <pre>
  28096. define Pin12 RPI_GPIO 18
  28097. attr Pin12 poll_interval 5
  28098. define Pin12 RPI_GPIO 18 /sys/class/gpio /usr/somewhere/bin/gpio
  28099. </pre>
  28100. </ul>
  28101. <a name="RPI_GPIOSet"></a>
  28102. <b>Set</b>
  28103. <ul>
  28104. <code>set &lt;name&gt; &lt;value&gt;</code>
  28105. <br><br>
  28106. <code>value</code> ist dabei einer der folgenden Werte:<br>
  28107. <ul><li>F&uuml;r GPIO der als output konfiguriert ist
  28108. <ul><code>
  28109. off<br>
  28110. on<br>
  28111. toggle<br>
  28112. </code>
  28113. </ul>
  28114. Die <a href="#setExtensions"> set extensions</a> werden auch unterst&uuml;tzt.<br>
  28115. </li>
  28116. <li>F&uuml;r GPIO der als input konfiguriert ist
  28117. <ul><code>
  28118. readval
  28119. </code></ul>
  28120. readval aktualisiert das reading Pinlevel und, wenn attr toggletostate nicht gesetzt ist, auch state
  28121. </ul>
  28122. </li><br>
  28123. Beispiele:
  28124. <ul>
  28125. <code>set Pin12 off</code><br>
  28126. <code>set Pin11,Pin12 on</code><br>
  28127. </ul><br>
  28128. </ul>
  28129. <a name="RPI_GPIOGet"></a>
  28130. <b>Get</b>
  28131. <ul>
  28132. <code>get &lt;name&gt;</code>
  28133. <br><br>
  28134. Gibt "high" oder "low" entsprechend dem aktuellen Pinstatus zur&uuml;ck und schreibt den Wert auch in das reading <b>Pinlevel</b>
  28135. </ul><br>
  28136. <a name="RPI_GPIOAttr"></a>
  28137. <b>Attributes</b>
  28138. <ul>
  28139. <li>direction<br>
  28140. Setzt den GPIO auf Ein- oder Ausgang.<br>
  28141. Standard: input, g&uuml;ltige Werte: input, output<br><br>
  28142. </li>
  28143. <li>active_low<br>
  28144. Invertieren des logischen Wertes<br>
  28145. Standard: off, g&uuml;ltige Werte: on, off<br><br>
  28146. </li>
  28147. <li>interrupt<br>
  28148. <b>kann nur gew&auml;hlt werden, wenn der GPIO als Eingang konfiguriert ist</b><br>
  28149. Aktiviert Flankenerkennung f&uuml;r den GPIO<br>
  28150. bei jedem interrupt Ereignis werden die readings Pinlevel und state aktualisiert<br>
  28151. Standard: none, g&uuml;ltige Werte: none, falling, rising, both<br><br>
  28152. Bei "both" wird ein reading Longpress angelegt, welches auf on gesetzt wird solange der Pin l&auml;nger als 1s gedr&uuml;ckt wird<br>
  28153. Bei "falling" und "rising" wird ein reading Toggle angelegt, das bei jedem Interruptereignis toggelt und das Reading Counter, das bei jedem Ereignis um 1 hochz&auml;hlt<br><br>
  28154. </li>
  28155. <li>poll_interval<br>
  28156. Fragt den Zustand des GPIO regelm&auml;&szlig;ig ensprechend des eingestellten Wertes in Minuten ab<br>
  28157. Standard: -, g&uuml;ltige Werte: Dezimalzahl<br><br>
  28158. </li>
  28159. <li>toggletostate<br>
  28160. <b>Funktioniert nur bei auf falling oder rising gesetztem Attribut interrupt</b><br>
  28161. Wenn auf "yes" gestellt wird bei jedem Triggerereignis das <b>state</b> reading invertiert<br>
  28162. Standard: no, g&uuml;ltige Werte: yes, no<br><br>
  28163. </li>
  28164. <li>pud_resistor<br>
  28165. Interner Pullup/down Widerstand<br>
  28166. <b>Funktioniert ausslie&szlig;lich mit installiertem gpio Tool der <a href="http://wiringpi.com/download-and-install/">WiringPi</a> Bibliothek.</b><br>
  28167. Standard: -, g&uuml;ltige Werte: off, up, down<br><br>
  28168. </li>
  28169. <li>debounce_in_ms<br>
  28170. Wartezeit in ms bis nach ausgel&ouml;stem Interrupt der entsprechende Pin abgefragt wird. Kann zum entprellen von mechanischen Schaltern verwendet werden<br>
  28171. Standard: 0, g&uuml;ltige Werte: Dezimalzahl<br><br>
  28172. </li>
  28173. <li>unexportpin<br>
  28174. F&uuml;hre unexport &uuml;ber /sys/class/gpio/unexport aus wenn die Pin-Definition gel&ouml;scht wird (z.B. durch rereadcfg, delete,...)<br>
  28175. Standard: yes, , g&uuml;ltige Werte: yes, no<br><br>
  28176. </li>
  28177. <li>restoreOnStartup<br>
  28178. Wiederherstellen der Portzust&auml;nde nach Neustart<br>
  28179. Standard: last, g&uuml;ltige Werte: last, on, off, no<br><br>
  28180. </li>
  28181. <li>longpressinterval<br>
  28182. <b>Funktioniert nur bei auf both gesetztem Attribut interrupt</b><br>
  28183. Zeit in Sekunden, die ein GPIO auf high verweilen muss, bevor das Reading longpress auf on gesetzt wird <br>
  28184. Standard: 1, g&uuml;ltige Werte: 0.1 - 10<br><br>
  28185. </li>
  28186. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  28187. </ul>
  28188. <br>
  28189. </ul>
  28190. <p><a name="RSS"></a>
  28191. <h3>RSS</h3>
  28192. <ul>
  28193. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  28194. hier: <a href='commandref.html#RSS'>RSS</a><br/>
  28195. </ul>
  28196. <a name="RandomTimer"></a>
  28197. <h3>RandomTimer</h3>
  28198. <ul>
  28199. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  28200. hier: <a href='commandref.html#RandomTimer'>RandomTimer</a><br/>
  28201. </ul>
  28202. <a name="Revolt"></a>
  28203. <h3>Revolt</h3>
  28204. <ul>
  28205. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  28206. hier: <a href='commandref.html#Revolt'>Revolt</a><br/>
  28207. </ul>
  28208. <a name="Robonect"></a>
  28209. <h3>Robonect</h3>
  28210. <div class='langLinks'>[<a href='commandref.html#Robonect'>EN</a> DE]</div>
  28211. <ul>
  28212. <p>Robonect ist ein Nachr&uml;stmodul f&uuml;r automower, die auf der Husky-G3-Steuerung basieren. Es wurde von Fabian H. entwickelt und kann unter www.robonect.de bezogen werden. Dieses Modul gibt Euch Zugriff auf die n&ouml;tigsten Kommandos. Dieses Modul ben&ouml;tigt libjson-perl. Bitte NICHT VERGESSEN zu installieren!</p>
  28213. <p><a name="RobonectDefine"></a> <b>Define</b></p>
  28214. <ul>
  28215. <code>define &lt;name&gt; Robonect &lt;IP-Adresse oder Name&gt;</code>
  28216. <p>Mit gesetztem Winterschlaf wird die Kommunikation zum M&auml;her unterbunden.</p>
  28217. <p>Die Zugangsinformationen k&ouml;nnen im Klartext bei der Definition angegeben werden. Wahlweise auch per Attribut. Standardm&auml;&szlig;ig wird der Status vom RObonect alle 90s aktualisiert.</p>
  28218. <p>Beispiel:</p>
  28219. <pre>
  28220. define myMower Robonect 192.168.13.5
  28221. define myMower Robonect myMowersDNSName
  28222. </pre>
  28223. </ul>
  28224. <p><a name="RobonectSet"></a> <b>Set</b></p>
  28225. <ul>
  28226. <b>Set</b>
  28227. <ul>
  28228. <li>auto<br>
  28229. Dies versetzt den M&auml;her in den Automatikmodus. Der M&auml;her reagiert nur auf den internen Timer, bis eine andere Betriebsart gew&auml;hlt wird. Der M&auml;her kann mit Stop jederzeit
  28230. angehalten werden. Es wird erst wieder begonnen zu m&auml;hen, wenn der Timer (wieder) ein aktives Fenster hat UND Start gesendet wurde.
  28231. </li>
  28232. <li>manuell<br>
  28233. Dies versetzt den M&auml;her in den manuellen modus. Der interne Timer wird nicht beachtet. Der M&auml;her reagiert nur auf Start oder Stopp Befehle von FHEM.
  28234. </li>
  28235. <li>home<br>
  28236. Dies schickt den M&auml;her direkt nach hause. Weiteres m&auml;hen wird verhindert, bis auf manuell oder auto umgeschalten wird.
  28237. </li>
  28238. <li>feierabend<br>
  28239. Dies schickt den M&auml;her f&uuml;r den aktuellen Timerslot direkt nach hause. Beim n&auml;chsten aktiven Timerslot wird weitergem&auml;ht.
  28240. </li>
  28241. <li>start<br>
  28242. Startet den M&auml;hvorgang im manuellen Modus oder im Automatikmodus bei aktivem Zeitslot.
  28243. </li>
  28244. <li>stop<br>
  28245. Beendet den M&auml;hvorgang. Der M&auml;her f&auml;hrt nicht nach Hause und beginnt nicht wieder zu m&auml;hen. Er bleibt stehen, bis die Batterie leer ist. Nur mit Bedacht benutzen!
  28246. </li>
  28247. <li>maehauftrag<br>
  28248. Hiermit wird ein (einmaliger) Auftrag an den M&auml;her abgesetzt. Es können beliebig viele Parameter mitgegeben werden. So kann zum Beispiel der Modus nach dem Auftrag,
  28249. sowie Start- oder Stoppzeit beeinflusst werden.<br>
  28250. Die Parameter m&uuml;ssen wie in der API des Robonect beschrieben lauten. Es erfolgt keine syntaktische Prüfung!<br>
  28251. <br>
  28252. Beispiel:<br>
  28253. Startzeit 15 Uhr, Dauer 120 Minuten, keinen Fernstartpunkt verwenden, keine Betriebsartenumschaltung nach Auftragsende
  28254. <pre>
  28255. set myMower maehauftrag start=15:00 duration=120 remotestart=0 after=4
  28256. </pre>
  28257. </li>
  28258. <li>winterschlaf &lt;on, off&gt;<br>
  28259. Wenn aktiviert, wird das Pollen unterbunden. Empfiehlt sich f&uuml;r die Winterpause.
  28260. </li>
  28261. <li>user &ltuser&gt;<br>
  28262. Alternativ zur Angabe per Argument kann per Set-Befehl der Benutzername zur Anmeldung am Robonect hier einmalig eingegeben werden. Er wird im Klartext in FhemUtils oder der DB gespeichert.<br>
  28263. Wenn angegeben, werden die Attribute zur Authentisierung ignoriert.
  28264. </li>
  28265. <li>password &lt;password&gt;<br>
  28266. Alternativ zur Angabe per Argument kann per Set-Befehl das Passwort zur Anmeldung am Robonect hier einmalig eingegeben werden. Er wird im Klartext in FhemUtils oder der DB gespeichert.<br>
  28267. Wenn angegeben, werden die Attribute zur Authentisierung ignoriert.
  28268. </li>
  28269. </ul>
  28270. </ul>
  28271. <p><a name="RobonectGet"></a> <b>Get</b></p>
  28272. <ul>
  28273. <b>Get</b>
  28274. <ul>
  28275. <li>status<br>
  28276. Holt den aktuellen Status des M&auml;hers. Wird normalerweise nicht ben&ouml;tigt, da automatisch gepolled wird.
  28277. </li>
  28278. <li>health<br>
  28279. Mit diesem Kommando können detailliertere Informationen vom M&auml;her gelesen werden. Beispielsweise sind einge Spannungen und Umweltbedingungen verf&uuml;gbar.<br>
  28280. Es werden NICHT ALLE M&Auml;HER UNTERST&Uuml;TZT!!!
  28281. Wenn das entsprechende Attribut gesetzt ist, wird health analog status gepolled.
  28282. This one gets more detailed information - like voltages and temperatures. It is NOT SUPPORTED BY ALL MOWERS!!!<br>
  28283. If enabled via attribute, health is polled accordingly status.
  28284. </li>
  28285. </ul>
  28286. </ul>
  28287. <p><a name="RobonectAttr"></a> <b>Attributes</b></p>
  28288. <ul><br>
  28289. Common attributes:<br>
  28290. <a href="#DbLogInclude">DbLogInclude</a><br>
  28291. <a href="#DbLogExclude">DbLogExclude</a><br>
  28292. <a href="#IODev">IODev</a><br>
  28293. <a href="#alias">alias</a><br>
  28294. <a href="#comment">comment</a><br>
  28295. <a href="#devStateIcon">devStateIcon</a><br>
  28296. <a href="#devStateStyle">devStateStyle</a><br>
  28297. <a href="#do_not_notify">do_not_notify</a><br>
  28298. <a href="#readingFnAttributes">readingFnAttributes</a><br>
  28299. <a href="#event-aggregator">event-aggregator</a><br>
  28300. <a href="#event-min-interval">event-min-interval</a><br>
  28301. <a href="#event-on-change-reading">event-on-change-reading</a><br>
  28302. <a href="#event-on-update-reading">event-on-update-reading</a><br>
  28303. <a href="#eventMap">eventMap</a><br>
  28304. <a href="#group">group</a><br>
  28305. <a href="#icon">icon</a><br>
  28306. <a href="#room">room</a><br>
  28307. <a href="#showtime">showtime</a><br>
  28308. <a href="#sortby">sortby</a><br>
  28309. <a href="#stateFormat">stateFormat</a><br>
  28310. <a href="#userReadings">userReadings</a><br>
  28311. <a href="#userattr">userattr</a><br>
  28312. <a href="#verbose">verbose</a><br>
  28313. <a href="#webCmd">webCmd</a><br>
  28314. <a href="#widgetOverride">widgetOverride</a><br>
  28315. <br>
  28316. </ul>
  28317. <p><a name="RobonectCredentials"></a> <b>credentials</b></p>
  28318. <ul>
  28319. Hier kann ein Link auf ein credentials-file angegeben werden. Die Zugansinformationen werden dann aus der Datei geholt. Dieser Mechanismus &uuml;berschreibt basicAuth.
  28320. </ul>
  28321. <p><a name="RobonectBasicAuth"></a> <b>basicAuth</b></p>
  28322. <ul>
  28323. Hier werden die Zugangsinformationen entweder im Klartext oder base-64-codiert &uuml;bergeben. Base64-encoder gibts bei google.
  28324. <p>Example:</p>
  28325. <pre>
  28326. define myMower Robonect 192.168.5.1
  28327. attr myMower basicAuth me:mySecret
  28328. </pre>
  28329. <pre>
  28330. define myMower Robonect 192.168.5.1
  28331. attr myMower basicAuth bWU6bXlTZWNyZXQ=
  28332. </pre>
  28333. </ul>
  28334. <p><a name="RobonectPollInterval"></a> <b>pollInterval</b></p>
  28335. <ul>
  28336. Hier kann das polling-interval in Sekunden angegeben werden. Default sind 90s.
  28337. </ul>
  28338. <p><a name="RobonectTimeout"></a> <b>timeout</b></p>
  28339. <ul>
  28340. F&uuml;r das holen der Daten per Wlan kann hier ein Timeout angegeben werden. Default sind 4s.
  28341. </ul>
  28342. <p><a name="RobonectHealth"></a> <b>useHealth</b></p>
  28343. <ul>
  28344. Wenn dieses Attribut auf 1 gesetzt wird, wird der health-status analog dem normalen Status gepolled.<br>
  28345. Bitte beachtet, dass NICHT ALLE M&Auml;HER UNTERST&Uuml;TZT WERDEN!
  28346. Wenn die Funktion nicht gegeben zu sein scheint, bitte den LAST_COMM_STATUS und das Logfile beachten.
  28347. </ul>
  28348. </ul>
  28349. <p>
  28350. <p><a name="S7"></a></p>
  28351. <h3>S7</h3>
  28352. <div class='langLinks'>[<a href='commandref.html#S7'>EN</a> DE]</div>
  28353. <ul>
  28354. <ul>
  28355. <ul>This module connects a SIEMENS PLC (S7,S5,SIEMENS Logo!). The TCP communication (S7, Siemens LOGO!) module is based on settimino (http://settimino.sourceforge.net). The serial Communication is based on a libnodave portation.</ul>
  28356. </ul>
  28357. </ul>
  28358. <p>&nbsp;</p>
  28359. <ul>
  28360. <ul>You can found a german wiki here: httl://www.fhemwiki.de/wiki/S7</ul>
  28361. </ul>
  28362. <p><br /><br /></p>
  28363. <ul>
  28364. <ul>For the communication the following modules have been implemented:
  28365. <ul>
  28366. <li>S7 &hellip; sets up the communication channel to the PLC</li>
  28367. <li>S7_ARead &hellip; Is used for reading integer Values from the PLC</li>
  28368. <li>S7_AWrite &hellip; Is used for write integer Values to the PLC</li>
  28369. <li>S7_DRead &hellip; Is used for read bits</li>
  28370. <li>S7_DWrite &hellip; Is used for writing bits.</li>
  28371. </ul>
  28372. </ul>
  28373. </ul>
  28374. <p><br /><br /></p>
  28375. <ul>
  28376. <ul>Reading work flow:</ul>
  28377. </ul>
  28378. <p><br /><br /></p>
  28379. <ul>
  28380. <ul>The S7 module reads periodically the configured DB areas from the PLC and stores the data in an internal buffer. Then all reading client modules are informed. Each client module extracts his data and the corresponding readings are set. Writing work flow:</ul>
  28381. </ul>
  28382. <p><br /><br /></p>
  28383. <ul>
  28384. <ul>At the S7 module you need to configure the PLC writing target. Also the S7 module holds a writing buffer. Which contains a master copy of the data needs to send.</ul>
  28385. </ul>
  28386. <p>&nbsp;</p>
  28387. <ul>
  28388. <ul>(Note: after configuration of the writing area a copy from the PLC is read and used as initial fill-up of the writing buffer)</ul>
  28389. </ul>
  28390. <p>&nbsp;</p>
  28391. <ul>
  28392. <ul>Note: The S7 module will send always the whole data block to the PLC. When data on the clients modules is set then the client module updates the internal writing buffer on the S7 module and triggers the writing to the PLC.</ul>
  28393. </ul>
  28394. <p><br /><br /><a name="S7define"></a><strong>Define</strong><code>define &lt;name&gt; S7 &lt;PLC_address&gt; &lt;rack&gt; &lt;slot&gt; [&lt;Interval&gt;] </code><br /><br /><code>define logo S7 10.0.0.241 2 0 </code></p>
  28395. <ul>
  28396. <ul>
  28397. <ul>
  28398. <ul>
  28399. <li>PLC_address &hellip; IP address of the S7 PLC (For S5 see below)</li>
  28400. <li>rack &hellip; rack of the PLC</li>
  28401. <li>slot &hellip; slot of the PLC</li>
  28402. <li>Interval &hellip; Intervall how often the modul should check if a reading is required</li>
  28403. </ul>
  28404. </ul>
  28405. </ul>
  28406. </ul>
  28407. <p>&nbsp;</p>
  28408. <ul>
  28409. <ul>
  28410. <ul>Note: For Siemens logo you should use a alternative (more simply configuration method):</ul>
  28411. </ul>
  28412. </ul>
  28413. <p>&nbsp;</p>
  28414. <ul>
  28415. <ul>
  28416. <ul><code>define logo S7 LOGO7 10.0.0.241</code></ul>
  28417. </ul>
  28418. </ul>
  28419. <p>&nbsp;</p>
  28420. <ul>
  28421. <ul>
  28422. <ul>Note: For Siemens S5 you must use a alternative (more simply configuration method):</ul>
  28423. </ul>
  28424. </ul>
  28425. <p>&nbsp;</p>
  28426. <ul>
  28427. <ul>
  28428. <ul>define logo S7 S5 /dev/tty1 in this case the PLC_address is the serial port number</ul>
  28429. </ul>
  28430. </ul>
  28431. <p><br /><br /><strong>Attr</strong></p>
  28432. <ul>
  28433. <ul>The following attributes are supported:</ul>
  28434. </ul>
  28435. <p>&nbsp;</p>
  28436. <ul>
  28437. <ul>
  28438. <ul>
  28439. <li>MaxMessageLength</li>
  28440. <li>receiveTimeoutMs</li>
  28441. <li>Intervall</li>
  28442. </ul>
  28443. </ul>
  28444. </ul>
  28445. <p>&nbsp;</p>
  28446. <ul>
  28447. <ul>MaxMessageLength ... restricts the packet length if lower than the negioated PDULength. This could be used to increate the processing speed. 2 small packages may be smaler than one large package</ul>
  28448. <ul>receiveTimeoutMs ... timeout in ms for TCP receiving packages. Default Value 500ms.&nbsp;</ul>
  28449. <ul>Intervall ... polling&nbsp;intervall in s&nbsp;</ul>
  28450. </ul>
  28451. <p><a name="S7_ARead"></a>
  28452. <h3>S7_ARead</h3>
  28453. <div class='langLinks'>[<a href='commandref.html#S7_ARead'>EN</a> DE]</div>
  28454. <ul>
  28455. This module is a logical module of the physical module S7. <br>
  28456. This module provides analog data (signed / unsigned integer Values).<br>
  28457. Note: you have to configure a PLC reading at the physical module (S7) first.<br>
  28458. <br><br>
  28459. <b>Define</b><br>
  28460. <code>define &lt;name&gt; S7_ARead {inputs|outputs|flags|db} &lt;DB&gt; &lt;start&gt; {u8|s8|u16|s16|u32|s32}</code>
  28461. <br><br>
  28462. <ul>
  28463. <li>inputs|outputs|flags|db � defines where to read.</li>
  28464. <li>DB � Number of the DB</li>
  28465. <li>start � start byte of the reading</li>
  28466. <li>{u8|s8|u16|s16|u32|s32} � defines the datatype: </li>
  28467. <ul>
  28468. <li>u8 �. unsigned 8 Bit integer</li>
  28469. <li>s8 �. signed 8 Bit integer</li>
  28470. <li>u16 �. unsigned 16 Bit integer</li>
  28471. <li>s16 �. signed 16 Bit integer</li>
  28472. <li>u32 �. unsigned 32 Bit integer</li>
  28473. <li>s32 �. signed 32 Bit integer</li>
  28474. <li>float �. 4 byte float </li>
  28475. </ul>
  28476. Note: the required memory area (start � start + datatypelength) need to be with in the configured PLC reading of the physical module.
  28477. </ul>
  28478. <b>Attr</b>
  28479. The following parameters are used to scale every reading
  28480. <ul>
  28481. <li>multiplicator</li>
  28482. <li>offset</li>
  28483. </ul>
  28484. newValue = &lt;multiplicator&gt; * Value + &lt;offset&gt;
  28485. </ul>
  28486. <p><p><a name="S7_AWrite"></a></p>
  28487. <h3>S7_AWrite</h3>
  28488. <div class='langLinks'>[<a href='commandref.html#S7_AWrite'>EN</a> DE]</div>
  28489. <ul>
  28490. <ul>This module is a logical module of the physical module S7.</ul>
  28491. </ul>
  28492. <ul>
  28493. <ul>This module provides sending analog data (unsigned integer Values) to the PLC.</ul>
  28494. </ul>
  28495. <ul>
  28496. <ul>Note: you have to configure a PLC writing at the physical modul (S7) first.</ul>
  28497. </ul>
  28498. <p><br /><br /><strong>Define</strong><br /><code>define &lt;name&gt; S7_AWrite {inputs|outputs|flags|db} &lt;DB&gt; &lt;start&gt; {u8|s8|u16|s16|u32|s32|float}</code><br /><br /></p>
  28499. <ul>
  28500. <ul>
  28501. <ul>
  28502. <ul>
  28503. <li>db &hellip; defines where to read. Note currently only writing in to DB are supported.</li>
  28504. <li>DB &hellip; Number of the DB</li>
  28505. <li>start &hellip; start byte of the reading</li>
  28506. <li>{u8|s8|u16|s16|u32|s32} &hellip; defines the datatype:</li>
  28507. <ul>
  28508. <li>u8 &hellip;. unsigned 8 Bit integer</li>
  28509. <li>s8 &hellip;. signed 8 Bit integer</li>
  28510. <li>u16 &hellip;. unsigned 16 Bit integer</li>
  28511. <li>s16 &hellip;. signed 16 Bit integer</li>
  28512. <li>u32 &hellip;. unsigned 32 Bit integer</li>
  28513. <li>s32 &hellip;. signed 32 Bit integer</li>
  28514. <li>float &hellip;. 4 byte float</li>
  28515. </ul>
  28516. </ul>
  28517. Note: the required memory area (start &ndash; start + datatypelength) need to be with in the configured PLC writing of the physical module.</ul>
  28518. </ul>
  28519. </ul>
  28520. <p>Logo 7 / Logo 8</p>
  28521. <p style="padding-left: 60px;">For Logo7 / Logo 8 also a short notation is supportet:</p>
  28522. <p><code>define &lt;name&gt; S7_AWrite {AI|AM|AQ|NAI|NAQ}X</code></p>
  28523. <p><strong>Set</strong><br /><br /><code>set &lt;name&gt; S7_AWrite &lt;value&gt;</code></p>
  28524. <ul>
  28525. <ul>
  28526. <ul>
  28527. <li>value &hellip; an numeric value</li>
  28528. </ul>
  28529. </ul>
  28530. </ul>=end html_DE
  28531. =cut
  28532. <p><a name="S7_Client"></a></p>
  28533. <h3>S7_Client</h3>
  28534. <div class='langLinks'>[<a href='commandref.html#S7_Client'>EN</a> DE]</div>
  28535. <ul>
  28536. <ul>abstract interface layer S7 / S5</ul>
  28537. </ul>
  28538. <p><a name="S7_DRead"></a>
  28539. <h3>S7_DRead</h3>
  28540. <div class='langLinks'>[<a href='commandref.html#S7_DRead'>EN</a> DE]</div>
  28541. <ul>
  28542. This module is a logical module of the physical module S7. <br>
  28543. This module provides digital data (ON/OFF).<br>
  28544. Note: you have to configure a PLC reading at the physical modul (S7) first.<br>
  28545. <br><br>
  28546. <b>Define</b>
  28547. <ul>
  28548. <code>define &lt;name&gt; S7_DRead {inputs|outputs|flags|db} &lt;DB&gt; &lt;address&gt;</code>
  28549. <ul>
  28550. <li>inputs|outputs|flags|db � defines where to read.</li>
  28551. <li>DB � Number of the DB</li>
  28552. <li>address � address you want to read. bit number to read. Example: 10.3</li>
  28553. </ul>
  28554. Note: the required memory area need to be with in the configured PLC reading of the physical module.
  28555. </ul>
  28556. </ul>
  28557. <p><p><a name="S7_DWrite"></a></p>
  28558. <h3>S7_DWrite</h3>
  28559. <div class='langLinks'>[<a href='commandref.html#S7_DWrite'>EN</a> DE]</div>
  28560. <ul>
  28561. <ul>This module is a logical module of the physical module S7.</ul>
  28562. </ul>
  28563. <ul>
  28564. <ul>This module is used to set/unset a Bit in ad DB of the PLC.</ul>
  28565. </ul>
  28566. <ul>
  28567. <ul>Note: you have to configure a PLC writing at the physical modul (S7) first.</ul>
  28568. </ul>
  28569. <p><br /><br /><br /><strong>Define</strong><code>define &lt;name&gt; S7_DWrite {db} &lt;DB&gt; &lt;position&gt;</code></p>
  28570. <ul>
  28571. <ul>
  28572. <ul>
  28573. <ul>
  28574. <li>db &hellip; defines where to read. Note currently only writing in to DB are supported.</li>
  28575. <li>DB &hellip; Number of the DB</li>
  28576. <li>address &hellip; address you want to write. bit number to read. Example: 10.6</li>
  28577. </ul>
  28578. Note: the required memory area need to be with in the configured PLC reading of the physical module.</ul>
  28579. </ul>
  28580. </ul>
  28581. <p><br /><strong>Set</strong><code>set &lt;name&gt; S7_AWrite {ON|OFF|TRIGGER};</code></p>
  28582. <ul>
  28583. <ul>Note: TRIGGER sets the bit for 1s to ON than it will set to OFF.</ul>
  28584. </ul>
  28585. <p><strong>Attr</strong><br /> The following parameters are used to scale every reading</p>
  28586. <ul>
  28587. <li>trigger_length ... sets the on-time of a trigger in Seconds. Note out can also use trigger_length less than 1</li>
  28588. </ul>
  28589. <p><p><a name="S7_S5Client"></a></p>
  28590. <h3>S7_S5Client</h3>
  28591. <div class='langLinks'>[<a href='commandref.html#S7_S5Client'>EN</a> DE]</div>
  28592. <ul>
  28593. <ul>low level interface to S5</ul>
  28594. </ul>
  28595. <p><p><a name="S7_S7Client"></a></p>
  28596. <h3>S7_S7Client</h3>
  28597. <div class='langLinks'>[<a href='commandref.html#S7_S7Client'>EN</a> DE]</div>
  28598. <ul>
  28599. <ul>low level interface to S7</ul>
  28600. </ul>
  28601. <p><a name="SCIVT"></a>
  28602. <h3>SCIVT</h3>
  28603. <ul>
  28604. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  28605. hier: <a href='commandref.html#SCIVT'>SCIVT</a><br/>
  28606. </ul>
  28607. <a name="SD_RSL"></a>
  28608. <h3>SD_RSL</h3>
  28609. <ul>
  28610. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  28611. hier: <a href='commandref.html#SD_RSL'>SD_RSL</a><br/>
  28612. </ul>
  28613. <a name="SD_WS"></a>
  28614. <h3>SD_WS</h3>
  28615. <div class='langLinks'>[<a href='commandref.html#SD_WS'>EN</a> DE]</div>
  28616. <ul>
  28617. Das SD_WS Modul verarbeitet von einem IO Ger&aumlt (CUL, CUN, SIGNALDuino, etc.) empfangene Nachrichten von Temperatur-Sensoren.<br>
  28618. <br>
  28619. <b>Unterst&uumltzte Modelle:</b>
  28620. <ul>
  28621. <li>Bresser 7009994</li>
  28622. <li>Opus XT300</li>
  28623. <li>BresserTemeo</li>
  28624. <li>WH2 (TFA Dostmann/Wertheim 30.3157(Temperatur!) (Deutschland), Agimex Rosenborg 66796 (Denmark),ClimeMET CM9088 (UK)</li>
  28625. <li>PV-8644 infactory Poolthermometer</li>
  28626. </ul>
  28627. <br>
  28628. Neu empfangene Sensoren werden in FHEM per autocreate angelegt.
  28629. <br><br>
  28630. <a name="SD_WS_Define"></a>
  28631. <b>Define</b>
  28632. <ul>Die empfangenen Sensoren werden automatisch angelegt.<br>
  28633. Die ID der angelgten Sensoren ist entweder der Kanal des Sensors, oder wenn das Attribut longid gesetzt ist, dann wird die ID aus dem Kanal und einer Reihe von Bits erzeugt, welche der Sensor beim Einschalten zuf&aumlllig vergibt.<br>
  28634. </ul>
  28635. <br>
  28636. <a name="SD_WS Events"></a>
  28637. <b>Generierte Readings:</b>
  28638. <ul>
  28639. <li>State (T: H:)</li>
  28640. <li>temperature (&deg;C)</li>
  28641. <li>humidity: (Luftfeuchte (1-100)</li>
  28642. <li>battery: (low oder ok)</li>
  28643. <li>channel: (Der Sensor Kanal)</li>
  28644. </ul>
  28645. <br>
  28646. <b>Attribute</b>
  28647. <ul>
  28648. <li><a href="#do_not_notify">do_not_notify</a></li>
  28649. <li><a href="#ignore">ignore</a></li>
  28650. <li><a href="#showtime">showtime</a></li>
  28651. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  28652. </ul>
  28653. <a name="SD_WS_Set"></a>
  28654. <b>Set</b> <ul>N/A</ul><br>
  28655. <a name="SD_WS_Parse"></a>
  28656. <b>Set</b> <ul>N/A</ul><br>
  28657. </ul>
  28658. <p><a name="SD_WS07"></a>
  28659. <h3>SD_WS07</h3>
  28660. <div class='langLinks'>[<a href='commandref.html#SD_WS07'>EN</a> DE]</div>
  28661. <ul>
  28662. Das SD_WS07 Modul verarbeitet von einem IO Geraet (CUL, CUN, SIGNALDuino, etc.) empfangene Nachrichten von Temperatur-Sensoren.<br>
  28663. <br>
  28664. <b>Unterst&uumltzte Modelle:</b>
  28665. <ul>
  28666. <li>Eurochon EAS800z</li>
  28667. <li>Technoline WS6750/TX70DTH</li>
  28668. <li>TFA 30320902</li>
  28669. <li>FreeTec Aussenmodul fuer Wetterstation NC-7344</li>
  28670. </ul>
  28671. <br>
  28672. Neu empfangene Sensoren werden in FHEM per autocreate angelegt.
  28673. <br><br>
  28674. <a name="SD_WS07_Define"></a>
  28675. <b>Define</b>
  28676. <ul>Die empfangenen Sensoren werden automatisch angelegt.<br>
  28677. Die ID der angelegten Sensoren ist entweder der Kanal des Sensors, oder wenn das Attribut longid gesetzt ist, dann wird die ID aus dem Kanal und einer Reihe von Bits erzeugt, welche der Sensor beim Einschalten zuf&auml;llig vergibt.<br>
  28678. </ul>
  28679. <br>
  28680. <a name="SD_WS07 Events"></a>
  28681. <b>Generierte Readings:</b>
  28682. <ul>
  28683. <li>state: (T: H:)</li>
  28684. <li>temperature: (&deg;C)</li>
  28685. <li>humidity: (Luftfeuchte (10-99)</li>
  28686. <li>battery: (low oder ok)</li>
  28687. <li>channel: (Der Sensor Kanal)</li>
  28688. </ul>
  28689. <br>
  28690. <b>Attribute</b>
  28691. <ul>
  28692. <li>correction-temp<br>
  28693. Damit kann die Temperatur korrigiert werden. Z.B. mit 10 wird eine um 10 Grad h&ouml;here Temperatur angezeigt.
  28694. </li>
  28695. <li>correction-hum<br>
  28696. Damit kann die Luftfeuchtigkeit korrigiert werden.
  28697. </li>
  28698. <li><a href="#do_not_notify">do_not_notify</a></li>
  28699. <li><a href="#ignore">ignore</a></li>
  28700. <li><a href="#showtime">showtime</a></li>
  28701. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  28702. </ul>
  28703. <a name="SD_WS071_Set"></a>
  28704. <b>Set</b> <ul>N/A</ul><br>
  28705. <a name="SD_WS07_Get"></a>
  28706. <b>Get</b> <ul>N/A</ul><br>
  28707. </ul>
  28708. <p><a name="SD_WS09"></a>
  28709. <h3>SD_WS09</h3>
  28710. <div class='langLinks'>[<a href='commandref.html#SD_WS09'>EN</a> DE]</div>
  28711. <ul>
  28712. Das SD_WS09 Module verarbeitet von einem IO Gerät (CUL, CUN, SIGNALDuino, etc.) empfangene Nachrichten von Temperatur-Sensoren.<br>
  28713. <br>
  28714. Perl-Modul Digest::CRC erforderlich. <br>
  28715. <br>
  28716. cpan install Digest::CRC oder auch <br>
  28717. sudo apt-get install libdigest-crc-perl <br>
  28718. <br>
  28719. <br>
  28720. <b>UnterstĂźtze Modelle:</b>
  28721. <ul>
  28722. <li>WS-0101 --> Model: WH1080</li>
  28723. <li>TFA 30.3189 / WH1080 --> Model: WH1080</li>
  28724. <li>1073 (WS1080) --> Model: WH1080</li>
  28725. <li>WH3080 --> Model: WH1080</li>
  28726. <li>CTW600 --> Model: CTW600</li>
  28727. </ul>
  28728. <br>
  28729. Neu empfangene Sensoren werden in FHEM per autocreate angelegt.
  28730. <br><br>
  28731. <a name="SD_WS09_Define"></a>
  28732. <b>Define</b>
  28733. <ul>Die empfangenen Sensoren werden automatisch angelegt.<br>
  28734. Die ID der angelegten Sensoren wird nach jedem Batteriewechsel ge&aumlndert, welche der Sensor beim Einschalten zuf&aumlllig vergibt.<br>
  28735. CRC Checksumme wird zur Zeit noch nicht Ăźberpr&uumlft, deshalb werden Sensoren bei denen die Luftfeuchte < 0 oder > 100 ist, nicht angelegt.<br>
  28736. </ul>
  28737. <br>
  28738. <a name="SD_WS09 Events"></a>
  28739. <b>Generierte Readings:</b>
  28740. <ul>
  28741. <li>State (T: H: Ws: Wg: Wd: R: ) temperature, humidity, windSpeed, windGuest, Einheit, windDirection, Rain</li>
  28742. <li>Temperature (&deg;C)</li>
  28743. <li>Humidity: (The humidity (1-100 if available)</li>
  28744. <li>Battery: (low or ok)</li>
  28745. <li>ID: (The ID-Number (number if)</li>
  28746. <li>windSpeed/windgust (Einheit siehe Unit_of_Wind) and windDirection (N-O-S-W)</li>
  28747. <li>Rain (mm)</li>
  28748. <li>windDirectionAverage
  28749. Als Ergebnis wird die Windrichtung zurĂźck geliefert, die aus dem aktuellen und
  28750. vergangenen Werten Ăźber eine Art exponentiellen Mittelwert berechnet werden.
  28751. Dabei wird zusätzlich die jeweilige Windgeschwindigkeit mit berßcksichtigt (hÜhere Geschwindigkeit
  28752. bedeutet hĂśhere Gewichtung).</li>
  28753. <b>WH3080:</b>
  28754. <li>UV Index</li>
  28755. <li>Lux</li>
  28756. </ul>
  28757. <br>
  28758. <b>Attribute</b>
  28759. <ul>
  28760. <li><a href="#do_not_notify">do_not_notify</a></li>
  28761. <li><a href="#ignore">ignore</a></li>
  28762. <li><a href="#showtime">showtime</a></li>
  28763. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  28764. <li>Model<br>
  28765. WH1080, CTW600
  28766. </li><br>
  28767. <li>windKorrektur<br>
  28768. Korrigiert die Nord-Ausrichtung des Windrichtungsmessers, wenn dieser nicht richtig nach Norden ausgerichtet ist.
  28769. -3,-2,-1,0,1,2,3
  28770. </li><br>
  28771. <li>Unit_of_Wind<br>
  28772. Hiermit wird der Einheit eingestellt und im State die entsprechenden Werte + Einheit angezeigt.
  28773. <br>m/s,km/h,ft/s,mph,bft,knot
  28774. </li><br>
  28775. <li>WindDirAverageTime<br>
  28776. default ist 600s, Zeitspanne die fĂźr die Berechung berĂźcksichtig werden soll
  28777. </li><br>
  28778. <li>WindDirAverageMinSpeed<br>
  28779. da bei sehr geringer Windgeschwindigkeit die Windrichtung Ăźblicherweise nicht
  28780. eindeutig ist, kann mit minspeed ein Schwellwert angegeben werden
  28781. Ist die (gewichtetete) mittlere Geschwindigkeit < minspeed wird undef zurĂźck geliefert
  28782. </li><br>
  28783. <li>WindDirAverageDecay<br>
  28784. 1 -> alle Werte werden gleich gewichtet <br>
  28785. 0 -> nur der aktuelle Wert wird verwendet.<br>
  28786. in der Praxis wird man Werte so um 0.75 nehmen
  28787. </li><br>
  28788. <li>WS09_CRCAUS<br>
  28789. Wird im Signalduino-Modul (00_SIGNALduino.pm) gesetzt
  28790. <br>0: CRC-PrĂźfung bei WH1080 CRC-Summe = 0
  28791. <br>2: CRC-Summe = 49 (x031) bei WH1080 wird als OK verarbeitet
  28792. </li><br>
  28793. </ul>
  28794. <a name="SD_WS09_Set"></a>
  28795. <b>Set</b> <ul>N/A</ul><br>
  28796. <a name="SD_WS09_Parse"></a>
  28797. <b>Parse</b> <ul>N/A</ul><br>
  28798. </ul>
  28799. <p><a name="SD_WS_Maverick"></a>
  28800. <h3>BBQ Sensors protocol #47</h3>
  28801. <div class='langLinks'>[<a href='commandref.html#SD_WS_Maverick'>EN</a> DE]</div>
  28802. <ul>
  28803. Das SD_WS_Maverick Module verarbeitet von einem IO Geraet (CUL, CUN, SIGNALDuino, etc.) empfangene Nachrichten von Temperatur-Sensoren.<br>
  28804. <br>
  28805. <b>Unterst&uumltzte Modelle:</b>
  28806. <ul>
  28807. <li>Maverick 732/733</li>
  28808. </ul>
  28809. <br>
  28810. Neu empfangene Sensoren werden in FHEM per autocreate angelegt (sofern autocreate in global aktiv ist).
  28811. <br><br>
  28812. <a name="SD_WS_Maverick_Define"></a>
  28813. <b>Define</b>
  28814. <ul>Die empfangenen Sensoren werden automatisch angelegt.<br>
  28815. Da das Maverick bei jedem Start eine neue zufällige ID erzeugt kann das Ger&aumlt nicht mit dem fhem-device gekoppelt werden.
  28816. Das bedeutet, dass es nicht m&oumlglich ist in fhem zwei Mavericks parallel zu betreiben.
  28817. </ul>
  28818. <br>
  28819. <a name="SD_WS_Maverick Events"></a>
  28820. <b>Generierte Readings:</b>
  28821. <ul>
  28822. <li>State (Food: BBQ: )</li>
  28823. <li>temp-food (&deg;C)</li>
  28824. <li>temp-bbq (&deg;C)</li>
  28825. <li>Sensor-1-food_state (connected, disconnected oder inactiv)</li>
  28826. <li>Sensor-2-bbq_state (connected, disconnected oder inactiv)</li>
  28827. <li>messageType (sync bei Start oder resync, sonst normal)</li>
  28828. <li>checksum (experimentell)</li>
  28829. </ul>
  28830. <br>
  28831. <b>Attribute</b>
  28832. <ul>
  28833. <li>inactivityinterval <Sekunden (60-3600)><br>
  28834. Das Interval nach dem Sensor-1-food_state und/oder Sensor-2-bbq_state auf inactiv gesetzt werden, wenn keine Signale mehr empfangen werden.
  28835. Hilfreich zum erkennen einer leeren Batterie oder eines defekten Termperaturf&uumlhlers.<br>
  28836. <code>default: 360</code></li>
  28837. <li><a href="#do_not_notify">do_not_notify</a></li>
  28838. <li><a href="#ignore">ignore</a></li>
  28839. <li><a href="#showtime">showtime</a></li>
  28840. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  28841. </ul>
  28842. <a name="SD_WS_Maverick1_Set"></a>
  28843. <b>Set</b> <ul>N/A</ul><br>
  28844. <a name="SD_WS_Maverick_Parse"></a>
  28845. <b>Parse</b> <ul>N/A</ul><br>
  28846. </ul>
  28847. <p><a name="SHC"></a>
  28848. <h3>SHC</h3>
  28849. <ul>
  28850. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  28851. hier: <a href='commandref.html#SHC'>SHC</a><br/>
  28852. </ul>
  28853. <a name="SHCdev"></a>
  28854. <h3>SHCdev</h3>
  28855. <ul>
  28856. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  28857. hier: <a href='commandref.html#SHCdev'>SHCdev</a><br/>
  28858. </ul>
  28859. <a name="SIGNALduino"></a>
  28860. <h3>SIGNALduino</h3>
  28861. <ul>
  28862. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  28863. hier: <a href='commandref.html#SIGNALduino'>SIGNALduino</a><br/>
  28864. </ul>
  28865. <a name="SIGNALduino_un"></a>
  28866. <h3>SIGNALduino_un</h3>
  28867. <div class='langLinks'>[<a href='commandref.html#SIGNALduino_un'>EN</a> DE]</div>
  28868. <ul>
  28869. Das SIGNALduino_un module ist ein Hilfsmodul um unbekannte Nachrichten debuggen und analysieren zu koennen.
  28870. Das Modul legt keinerlei Ger&aumlte oder &aumlhnliches an.
  28871. <br><br>
  28872. <a name="SIGNALduino_undefine"></a>
  28873. <b>Define</b>
  28874. <code>define &lt;name&gt; SIGNALduino_un &lt;code&gt; </code> <br>
  28875. <br>
  28876. Es ist moeglich ein Geraet manuell zu definieren, aber damit passiert ueberhaupt nichts.
  28877. Autocreate wird auch keinerlei Geraete aus diesem Modul anlegen.
  28878. <br>
  28879. Die einzgeste Funktion dieses Modules ist, ab Verbose 4 Logmeldungen &uumlber die Empfangene Nachricht ins Log zu schreiben. Dabei kann man sich leider nicht darauf verlassen, dass die Nachricht korrekt dekodiert wurde.<br>
  28880. Dieses Modul wird alle Nachrichten verarbeiten, welche von anderen Modulen nicht verarbeitet wurden.
  28881. <a name="SIGNALduino_unset"></a>
  28882. <b>Set</b> <ul>N/A</ul><br>
  28883. <a name="SIGNALduino_unget"></a>
  28884. <b>Get</b> <ul>N/A</ul><br>
  28885. <a name="SIGNALduino_unattr"></a>
  28886. <b>Attributes</b>
  28887. <ul>
  28888. <li><a href="#verbose">Verbose</a></li>
  28889. </ul>
  28890. <br>
  28891. </ul>
  28892. <p><a name="SIP"></a>
  28893. <h3>SIP</h3>
  28894. <div class='langLinks'>[<a href='commandref.html#SIP'>EN</a> DE]</div>
  28895. <ul>
  28896. Definiert ein SIP-Client Device.<br>
  28897. Wiki : <a href="https://wiki.fhem.de/wiki/SIP-Client">https://wiki.fhem.de/wiki/SIP-Client</a>
  28898. <br>
  28899. Forum : <a href="https://forum.fhem.de/index.php/topic,67443.0.html">https://forum.fhem.de/index.php/topic,67443.0.html</a>
  28900. <br><br>
  28901. <a name="SIPdefine"></a>
  28902. <b>Define</b>
  28903. <ul>
  28904. <code>define &lt;name&gt; SIP</code>
  28905. <br><br>
  28906. Beispiel:
  28907. <ul>
  28908. <code>define MySipClient SIP</code><br>
  28909. </ul>
  28910. </ul>
  28911. <br>
  28912. <a name="SIPset"></a>
  28913. <b>Set</b>
  28914. <ul>
  28915. <li>
  28916. <code>set &lt;name&gt; &lt;SIP Passwort&gt;</code><br>
  28917. Speichert das Passwort des SIP Users. Ohne gespeichertes Passwort sind die set call und set listen Funktionen gesperrt !<br>
  28918. WICHTIG : wird das SIP Device umbenannt muss dieser Befehl unbedingt wiederholt werden !
  28919. </li>
  28920. <li>
  28921. <code>set &lt;name&gt; reset</code><br>
  28922. Stoppt laufende listen-Prozess und initalisiert das Device.<br>
  28923. </li>
  28924. <li>
  28925. <code>set &lt;name&gt; call &lt;nummer&gt; [&lt;maxtime&gt;] [&lt;nachricht&gt;]</code><br>
  28926. Startet einen Anruf an die angegebene Nummer.<br>
  28927. Optional kann die maximale Zeit angegeben werden. Default ist 30.<br>
  28928. Optional kann eine Nachricht in Form eines Audiofiles angegeben werden . Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben..
  28929. </li>
  28930. <li>
  28931. <code>set &lt;name&gt; listen</code><br>
  28932. Attribut sip_listen = dtmf :
  28933. Der SIP-Client wird in einen Status versetzt in dem er Anrufe annimmt. Der Ton wird als Echo zurßckgespielt. �ber die Eingabe von # gefolgt von 2 unterschiedlichen Zahlen und anschlie�endem Auflegen kann eine Zahl in das Reading <b>dtmf</b> ßbergeben werden.<br>
  28934. Attribut sip_listen = wfp :
  28935. Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet. Erfolgt an Anruf an den Client, wechselt der Status zu <b>ringing</b>. Nun kann das Gespräch via set-Command <b>fetch</b> angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschlie�end wechselt der Status wieder zu <b>listenwfp</b>.<br>
  28936. </li>
  28937. </ul>
  28938. <br>
  28939. <a name="SIPattr"></a>
  28940. <b>Attributes</b>
  28941. <ul>
  28942. <li>sip_user<br>
  28943. User Name des SIP-Clients. Default ist 620 (Fritzbox erstes SIP Telefon)
  28944. </li>
  28945. <li>sip_registrar<br>
  28946. Hostname oder IP-Addresse des SIP-Servers mit dem sich das Modul verbinden soll. (Default fritz.box)
  28947. </li>
  28948. <li>sip_from<br>
  28949. SIP-Client-Info. Syntax : sip:sip_user@sip_registrar Default ist sip:620@fritz.box
  28950. </li>
  28951. <li>sip_ip<br>
  28952. Die IP-Addresse von FHEM im Heimnetz. Solange das Attribut nicht gesetzt ist versucht das Modul diese beim Start zu ermitteln.
  28953. </li>
  28954. <li>sip_port<br>
  28955. Optinale Portnummer die vom Modul benutzt wird.<br>
  28956. Wenn dem Attribut kein Wert zugewiesen wurde verwendet das Modul eine zuf&auml;llige Portnummer zwichen 44000 und 45000
  28957. </li>
  28958. <li><b>Audiofiles</b>
  28959. Audiofiles k&ouml;nnen einfach mit dem externen Programm sox erzeugt werden :<br>
  28960. sox &lt;file&gt;.wav -t raw -r 8000 -c 1 -e a-law &lt;file&gt;.al<br>
  28961. Unterst&uuml;tzt werden nur die beiden RAW Audio Formate a-law und u-law !<br>
  28962. Statt eines echten Audiofiles kann auch eine Text2Speech Nachricht eingetragen werden.<br>
  28963. Bsp : attr mySIP sip_audiofile_call !Hier ist dein FHEM Server
  28964. </li>
  28965. <li>sip_audiofile_wfp<br>
  28966. Audiofile das nach dem Command <b>fetch</b> abgespielt wird.
  28967. </li>
  28968. <li>sip_audiofile_call</br>
  28969. Audiofile das dem Angerufenen bei set call vorgespielt wird.
  28970. </li>
  28971. <li>sip_audiofile_dtmf<br>
  28972. Audiofile das dem Anrufer bei listen_for_dtmf abgespielt wird.
  28973. </li>
  28974. <li>sip_audiofile_ok<br>
  28975. Audiofile das bei erkannter DTMF Sequenz abgespielt wird.
  28976. </li>
  28977. <li>sip_listen (none , dtmf, wfp)</li>
  28978. <li>sip_ringtime<br>
  28979. Klingelzeit fĂźr eingehende Anrufe bei listen_for_dtmf
  28980. </li>
  28981. <li>sip_dtmf_size</a><br>
  28982. 1 bis 4 , default 2 Legt die L&auml;ge des erwartenden DTMF Events fest.
  28983. </li>
  28984. <li>sip_dtmf_loop<br> once oder loop , default once</li>
  28985. <li>sip_waittime<br>
  28986. Maximale Wartezeit im Status listen_for_wfp bis das Gespr&auml;ch automatisch angenommen wird.
  28987. </li>
  28988. <li>T2S_Device<br>
  28989. Name des Text2Speech Devices (Wird nur ben&ouml;tigt wenn Sprachnachrichten statt Audiofiles verwendet werden)
  28990. </li>
  28991. <li>T2S_Timeout<br>
  28992. Wartezeit in Sekunden wie lange maximal auf Text2Speech gewartet wird.
  28993. </li>
  28994. <li>audo_converter<br>sox oder ffmpeg, default sox<br>
  28995. Ist f&uml;r Text2Speech unbedingt erforderlich um die mp3 Dateien in Raw Audio umzuwandeln.<br>
  28996. Installation z.B. mit sudo apt-get install sox und noch die mp3 Unterst&uuml;tzung mit sudo apt-get install libsox-fmt-mp3
  28997. </li>
  28998. <li>sip_force_interval default 300 </li>
  28999. <li>sip_force_max default 99</li>
  29000. <li>phonebook default none , Dateiname des eigenen Telefonbuchs. Inhalt: zeilenweise Nr,Name</li>
  29001. <li>history_size default 0 , max Anzahl von Zeilen in der Ruf/Anrufer Liste</li>
  29002. <li>history_file default none, Dateiname der Ruf/Anrufer Liste</li>
  29003. </ul>
  29004. <br>
  29005. </ul>
  29006. <p><a name="SISPM"></a>
  29007. <h3>SISPM</h3>
  29008. <ul>
  29009. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  29010. hier: <a href='commandref.html#SISPM'>SISPM</a><br/>
  29011. </ul>
  29012. <a name="SIS_PMS"></a>
  29013. <h3>SIS_PMS</h3>
  29014. <ul>
  29015. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  29016. hier: <a href='commandref.html#SIS_PMS'>SIS_PMS</a><br/>
  29017. </ul>
  29018. <a name="SMAEM"></a>
  29019. <h3>SMAEM</h3>
  29020. <div class='langLinks'>[<a href='commandref.html#SMAEM'>EN</a> DE]</div>
  29021. <br>
  29022. <a name="SMAEMdefine"></a>
  29023. <b>Define</b>
  29024. <ul>
  29025. <code>define &lt;name&gt; SMAEM </code><br>
  29026. <br>
  29027. Definiert ein SMA Energy Meter (SMAEM), einen bidirektionalen Stromzähler, der häufig in Photovolatikanlagen der Firma SMA zum Einsatz kommt.
  29028. <br><br>
  29029. Sie brauchen mindest ein SMAEM in Ihrem lokalen Netzwerk oder hinter einen multicastfähigen Netz von Routern, um die Daten des SMAEM ßber die
  29030. Multicastgruppe 239.12.255.254 auf udp/9522 zu empfangen. Die Multicastpakete werden vom SMAEM einmal pro Sekunde ausgesendet (firmware 1.02.04.R, März 2016).
  29031. <br><br>
  29032. Das update interval kann Ăźber das Attribut "interval" gesetzt werden. Wenn es nicht gesetzt wird, werden updates per default alle 60 Sekunden durchgefĂźhrt.
  29033. Da das SMAEM seine Daten sekĂźndlich aktualisiert, kann das update interval auf bis zu einer Sekunde reduziert werden. Das wird nicht empfohlen, da FHEM
  29034. sonst unter gro�e Last gesetzt wird.
  29035. <br><br>
  29036. Der Parameter "disableSernoInReading" ändert die Art und Weise, wie die Readings des SMAEN bezeichnet werden: ist der Parameter false
  29037. oder nicht gesetzt, werden die Readings mit "SMAEM&lt;serialnumber_&gt;....." bezeichnet.
  29038. Wird der Parameter auf true gesetzt, wird das Prefix "SMAEM&lt;serialnumber_&gt;....." weg gelassen.
  29039. Sie kÜnnen diesen Parameter auf true setzen, wenn Sie nicht mehr als ein SMAEM-Gerät in Ihrem Netzwerk haben und kßrzere Namen fßr die Readings wßnschen.
  29040. Falls Sie unsicher sind, setzen Sie diesen Parameter nicht.
  29041. <br><br>
  29042. Sie benĂśtigen das Perl-Module IO::Socket::Multicast fĂźr dieses FHEM Modul. Unter Debian (basierten) System, kann dies
  29043. mittels <code>apt-get install libio-socket-multicast-perl</code> installiert werden.
  29044. </ul>
  29045. <br>
  29046. <a name="SMAEMattr"></a>
  29047. <b>Attribute</b>
  29048. <ul>
  29049. <li><b>disableSernoInReading</b> : unterdrĂźckt das Prefix "SMAEM&lt;serialnumber_&gt;....." </li>
  29050. <li><b>feedinPrice</b> : die individuelle HĂśhe der VergĂźtung pro Kilowattstunde </li>
  29051. <li><b>interval</b> : Auswertungsinterval in Sekunden </li>
  29052. <li><b>disable</b> : 1 = das Modul ist disabled </li>
  29053. <li><b>diffAccept</b> : diffAccept legt fest, bis zu welchem Schwellenwert eine berechnete positive Werte-Differenz
  29054. zwischen zwei unmittelbar aufeinander folgenden Zählerwerten (Readings mit *_Diff) akzeptiert werden
  29055. soll (Standard ist 10). <br>
  29056. Damit werden eventuell fehlerhafte Differenzen mit einem unverhältnismä�ig hohen Differenzwert von der Berechnung
  29057. ausgeschlossen und der Messzyklus verworfen. </li>
  29058. <li><b>powerCost</b> : die individuelle HĂśhe der Stromkosten pro Kilowattstunde </li>
  29059. <li><b>timeout</b> : Einstellung timeout fßr Hintergrundverarbeitung (default 60s). Der timeout-Wert muss grÜ�er als das Wert von "interval" sein. </li>
  29060. </ul>
  29061. <br>
  29062. <a name="SMAEMreadings"></a>
  29063. <b>Readings</b> <br><br>
  29064. Die meisten erzeugten Readings von SMAEM sind selbsterklärend.
  29065. Es gibt allerdings Readings die einer Erläuterung bedßrfen. <br>
  29066. <ul>
  29067. <li><b>&lt;Phase&gt;_THD</b> : (Total Harmonic Distortion) - Verzerrungs- oder Gesamtklirrfaktor - Verhältnis oder
  29068. Anteil des Gesamteffektivwert aller Oberschwingungen zum Effektivwert der
  29069. Grundschwingung. Gesamtanteil an Oberschwingungen und StĂśrung der reinen Sinuswelle
  29070. in % bzw. Verhältnis vom nutzbaren Grundschwingungsstrom zu den
  29071. nicht nutzbaren OberschwingungsstrÜmen. Es ist ein Ma� fßr StÜrungen. d ist 0, wenn bei
  29072. sinusfÜrmiger Spannung ein sinusfÜrmiger Strom flie�t. Je grÜ�er d, um so mehr
  29073. Oberschwingungen sind vorhanden. Nach EN 50160/1999 z.B. darf der Wert 8 % nicht
  29074. Ăźberschreiten. Wenn eine StromstĂśrung so stark ist, dass sie eine SpannungsstĂśrung
  29075. (THD) von Ăźber 5 % verursacht, deutet dies auf ein Potentialproblem hin. </li>
  29076. </ul>
  29077. <br>
  29078. <p><a name="SMAInverter"></a>
  29079. <h3>SMAInverter</h3>
  29080. <div class='langLinks'>[<a href='commandref.html#SMAInverter'>EN</a> DE]</div>
  29081. Modul zur Einbindung eines SMA Wechselrichters Ăźber Speedwire (Ethernet).<br>
  29082. Getestet mit Sunny Tripower 6000TL-20 und Sunny Island 4.4 mit Speedwire/Webconnect Piggyback.
  29083. <br><br>
  29084. Fragen und Diskussionen rund um dieses Modul finden sie im FHEM-Forum unter:<br>
  29085. <a href="https://forum.fhem.de/index.php/topic,56080.msg476525.html#msg476525">76_SMAInverter.pm - Abfrage von SMA Wechselrichter</a>.
  29086. <br><br>
  29087. <b>Voraussetzungen</b>
  29088. <br><br>
  29089. Dieses Modul benĂśtigt:
  29090. <ul>
  29091. <li>Perl Modul: IO::Socket::INET (apt-get install libio-socket-multicast-perl) </li>
  29092. <li>Perl Modul: Datetime (apt-get install libdatetime-perl) </li>
  29093. <li>Perl Modul: Time::HiRes</li>
  29094. <li>FHEM Modul: 99_SUNRISE_EL.pm</li>
  29095. <li>FHEM Modul: Blocking.pm</li>
  29096. </ul>
  29097. <br>
  29098. <br>
  29099. <b>Define</b>
  29100. <ul>
  29101. <code>define &lt;name&gt; SMAInverter &lt;pin&gt; &lt;hostname/ip&gt;</code><br>
  29102. <br>
  29103. <li>pin: Benutzer-Passwort des SMA STP Wechselrichters. Default ist 0000. Kann ßber die Windows-Software "Sunny Explorer" geändert werden </li>
  29104. <li>hostname/ip: Hostname oder IP-Adresse des Wechselrichters (bzw. dessen Speedwire Moduls mit Ethernetanschluss) </li>
  29105. <li>Der Port des Wechselrichters ist 9522. Dieser Port muss in der Firewall freigeschaltet sein !</li>
  29106. </ul>
  29107. <b>Arbeitsweise</b>
  29108. <ul>
  29109. Das Modul schickt Befehle an den Wechselrichter und ĂźberprĂźft, ob diese unterstĂźtzt werden.<br>
  29110. Bei einer positiven Antwort werden die Daten gesammelt und je nach Detail-Level in den Readings dargestellt. <br>
  29111. Sind mehr als ein Wechselrichter installiert, sind die Attribute "target-susyid" und "target-serial" entsprechend zu setzen um die korrekte
  29112. Funktion zu gewährleisten. <br><br>
  29113. Die normale Betriebszeit des Wechselrichters wird in der Zeit vom Sonnenaufgang bis Sonnenuntergang angenommen. In dieser Periode werden die Wechselrichterdaten
  29114. abgefragt. Die Ermittlung von Sonnenaufgang / Sonnenuntergang wird Ăźber die Funktionen des FHEM-Moduls 99_SUNRISE_EL.pm vorgenommen. Zu diesem Zweck sollten die globalen
  29115. Attribute longitude und latitude gesetzt sein um den Standort der Anlage genau zu ermitteln. (siehe <a href="#SUNRISE_EL">Commandref SUNRISE_EL</a>) <br><br>
  29116. Mit dem Attribut "suppressSleep" kann der Schlafmodus unterdrĂźckt werden. Das Attribut "offset" dient dazu den effektiven Zeitpunkt des Sonnenaufgangs / Sonnenuntergangs
  29117. um den Betrag "offset" vorzuziehen (Sonnenaufgang) bzw. zu verzÜgern (Sonnenuntergang) und somit die Abfrageperiode des Wechselrichters zu verlängern. <br><br>
  29118. Im Betriebsmodus "automatic" wird der Wechselrichter entsprechend des eingestellten Attributs "interval" abgefragt. Der Betriebsmodus kann in "manual"
  29119. umgestellt werden um eine manuelle Abfrage zu realisieren (z.B. Synchronisierung mit einem SMA Energymeter Ăźber ein Notify). <br><br>
  29120. Während der Betriebszeit des Wechselrichters wird die durchschnittliche Energieerzeugung der letzten 5, 10, 15 Minuten berechnet und in den Readings
  29121. "avg_power_lastminutes_05", "avg_power_lastminutes_10" und "avg_power_lastminutes_15" ausgegeben. <b>Hinweis:</b> Um eine korrekte Berechnung zu
  29122. ermÜglichen, sollte auch im Betriebsmodus "manual" das tatsächliche Abfrageinterval im Attribute "interval" hinterlegt werden ! <br><br>
  29123. Die Abfrage des Wechselrichters wird non-blocking ausgefĂźhrt. Der Timeoutwert fĂźr diesen Hintergrundprozess kann mit dem Attribut "timeout" eingestellt werden. <br>
  29124. </ul>
  29125. <b>Get</b>
  29126. <br>
  29127. <ul>
  29128. <code>get &lt;name&gt; data</code>
  29129. <br><br>
  29130. Die Datenabfrage des Wechselrichters wird ausgefĂźhrt. Diese MĂśglichkeit ist speziell fĂźr den Betriebsmodus "manual" vorgesehen (siehe Attribut "mode").
  29131. </ul>
  29132. <b>Attribute</b>
  29133. <ul>
  29134. <li><b>interval</b> : Abfrageinterval in Sekunden </li>
  29135. <li><b>detail-level</b> : "0" - Nur Leistung und Energie / "1" - zusätzlich Strom und Spannung / "2" - Alle Werte </li>
  29136. <li><b>disable</b> : 1 = das Modul ist disabled </li>
  29137. <li><b>mode</b> : automatic = die Wechselrichterwerte werden im eingestellten Interval abgefragt, manual = Abfrage nur mit "get &lt;name&gt; data" </li>
  29138. <li><b>offset</b> : Zeit in Sekunden um die der Sonnenaufgang vorgezogen bzw. Sonnenuntergang verzĂśgert wird (0 ... 7200). Dadurch wird die
  29139. effektive Aktivzeit des Moduls erweitert. </li>
  29140. <li><b>suppressSleep</b> : der Schlafmodus (nach Sonnenuntergang, vor Sonnenaufgang) wird ausgeschaltet und der WR abgefragt. </li>
  29141. <li><b>showproctime</b> : zeigt die fĂźr den Hintergrundprozess und die Abfrage des Wechselrichter verbrauchte Zeit. </li>
  29142. <li><b>SBFSpotComp</b> : 1 = die Readings werden kompatibel zu SBFSpot-Ausgaben erzeugt </li>
  29143. <li><b>target-susyid</b> : Im Falle eines Multigate kann die Ziel-SUSyID definiert werden. Ist mehr als ein Wechselrichter installiert,
  29144. mu� die Wechselreichter-SUSyID gesetzt werden um den Wechselrichter der Device-Definition eindeutig zuzuweisen.
  29145. Default ist 0xFFFF (=keine Einschränkung)</li>
  29146. <li><b>target-serial</b> : Im Falle eines Multigate kann die Ziel-Seriennummer definiert werden. Ist mehr als ein Wechselrichter installiert,
  29147. mu� die Wechselreichter-Seriennummer gesetzt werden um den Wechselrichter der Device-Definition eindeutig zuzuweisen.
  29148. Default ist 0xFFFFFFFF (=keine Einschränkung)</li>
  29149. <li><b>timeout</b> : Einstellung des timeout fĂźr die Wechselrichterabfrage (default 60s) </li>
  29150. </ul>
  29151. <b>Readings</b>
  29152. <ul>
  29153. <li><b>BAT_CYCLES / bat_cycles</b> : Akku Ladezyklen </li>
  29154. <li><b>BAT_IDC / bat_idc</b> : Akku Strom </li>
  29155. <li><b>BAT_TEMP / bat_temp</b> : Akku Temperatur </li>
  29156. <li><b>BAT_UDC / bat_udc</b> : Akku Spannung </li>
  29157. <li><b>ChargeStatus / chargestatus</b> : Akku Ladestand </li>
  29158. <li><b>CLASS / device_class</b> : Wechselrichter Klasse </li>
  29159. <li><b>PACMAX1 / pac_max_phase_1</b> : Nominelle Leistung in Ok Mode </li>
  29160. <li><b>PACMAX1_2 / pac_max_phase_1_2</b> : Maximale Leistung (fĂźr einige Wechselrichtertypen) </li>
  29161. <li><b>PACMAX2 / pac_max_phase_2</b> : Nominelle Leistung in Warning Mode </li>
  29162. <li><b>PACMAX3 / pac_max_phase_3</b> : Nominelle Leistung in Fault Mode </li>
  29163. <li><b>Serialnumber / serial_number</b> : Wechselrichter Seriennummer </li>
  29164. <li><b>SPOT_ETODAY / etoday</b> : Energie heute</li>
  29165. <li><b>SPOT_ETOTAL / etotal</b> : Energie Insgesamt </li>
  29166. <li><b>SPOT_FEEDTM / feed-in_time</b> : Einspeise-Stunden </li>
  29167. <li><b>SPOT_FREQ / grid_freq.</b> : Netz Frequenz </li>
  29168. <li><b>SPOT_IAC1 / phase_1_iac</b> : Netz Strom phase L1 </li>
  29169. <li><b>SPOT_IAC2 / phase_2_iac</b> : Netz Strom phase L2 </li>
  29170. <li><b>SPOT_IAC3 / phase_3_iac</b> : Netz Strom phase L3 </li>
  29171. <li><b>SPOT_IDC1 / string_1_idc</b> : DC Strom Eingang 1 </li>
  29172. <li><b>SPOT_IDC2 / string_2_idc</b> : DC Strom Eingang 2 </li>
  29173. <li><b>SPOT_OPERTM / operation_time</b> : Betriebsstunden </li>
  29174. <li><b>SPOT_PAC1 / phase_1_pac</b> : Leistung L1 </li>
  29175. <li><b>SPOT_PAC2 / phase_2_pac</b> : Leistung L2 </li>
  29176. <li><b>SPOT_PAC3 / phase_3_pac</b> : Leistung L3 </li>
  29177. <li><b>SPOT_PACTOT / total_pac</b> : Gesamtleistung </li>
  29178. <li><b>SPOT_PDC1 / string_1_pdc</b> : DC Leistung Eingang 1 </li>
  29179. <li><b>SPOT_PDC2 / string_2_pdc</b> : DC Leistung Eingang 2 </li>
  29180. <li><b>SPOT_UAC1 / phase_1_uac</b> : Netz Spannung phase L1 </li>
  29181. <li><b>SPOT_UAC2 / phase_2_uac</b> : Netz Spannung phase L2 </li>
  29182. <li><b>SPOT_UAC3 / phase_3_uac</b> : Netz Spannung phase L3 </li>
  29183. <li><b>SPOT_UDC1 / string_1_udc</b> : DC Spannung Eingang 1 </li>
  29184. <li><b>SPOT_UDC2 / string_2_udc</b> : DC Spannung Eingang 2 </li>
  29185. <li><b>SUSyID / susyid</b> : Wechselrichter SUSyID </li>
  29186. <li><b>INV_TEMP / device_temperature</b> : Wechselrichter Temperatur </li>
  29187. <li><b>INV_TYPE / device_type</b> : Wechselrichter Typ </li>
  29188. <li><b>POWER_IN / power_in</b> : Akku Ladeleistung </li>
  29189. <li><b>POWER_OUT / power_out</b> : Akku Entladeleistung </li>
  29190. <li><b>INV_GRIDRELAY / gridrelay_status</b> : Netz Relais Status </li>
  29191. <li><b>INV_STATUS / device_status</b> : Wechselrichter Status </li>
  29192. <li><b>opertime_start</b> : Beginn Aktivzeit des Wechselrichters entsprechend des ermittelten Sonnenaufgangs mit BerĂźcksichtigung des
  29193. Attributs "offset" (wenn gesetzt) </li>
  29194. <li><b>opertime_stop</b> : Ende Aktivzeit des Wechselrichters entsprechend des ermittelten Sonnenuntergangs mit BerĂźcksichtigung des
  29195. Attributs "offset" (wenn gesetzt) </li>
  29196. <li><b>modulstate</b> : zeigt den aktuellen Modulstatus "normal" oder "sleep" falls der Wechselrichter nicht abgefragt wird. </li>
  29197. <li><b>avg_power_lastminutes_05</b> : durchschnittlich erzeugte Leistung der letzten 5 Minuten. </li>
  29198. <li><b>avg_power_lastminutes_10</b> : durchschnittlich erzeugte Leistung der letzten 10 Minuten. </li>
  29199. <li><b>avg_power_lastminutes_15</b> : durchschnittlich erzeugte Leistung der letzten 15 Minuten. </li>
  29200. <li><b>inverter_processing_time</b> : verbrauchte Zeit um den Wechelrichter abzufragen. </li>
  29201. <li><b>background_processing_time</b> : gesamte durch den Hintergrundprozess (BlockingCall) verbrauchte Zeit. </li>
  29202. </ul>
  29203. <br><br>
  29204. <p><a name="SMARTMON"></a>
  29205. <h3>SMARTMON</h3>
  29206. <div class='langLinks'>[<a href='commandref.html#SMARTMON'>EN</a> DE]</div>
  29207. <ul>
  29208. Dieses Modul ist ein FHEM-Frontend zu dem Linux-Tool smartctl.
  29209. Es liefert diverse Informationen zu dem S.M.A.R.T. System einer Festplatte.
  29210. <br><br>
  29211. <b>Define</b>
  29212. <br><br>
  29213. <code>define &lt;name&gt; SMARTMON &lt;device&gt; [&lt;Interval&gt;]</code><br>
  29214. <br>
  29215. Diese Anweisung erstellt eine neue SMARTMON-Instanz.
  29216. Die Parameter geben ein zu &uuml;berwachenden Ger&auml;t und den Aktualisierungsinterval in Minuten an.<br>
  29217. <br>
  29218. Beispiel: <code>define sm SMARTMON /dev/sda 60</code>
  29219. <br>
  29220. <br>
  29221. <b>Readings:</b>
  29222. <br><br>
  29223. <ul>
  29224. <li>last_exit_code<br>
  29225. Gibt den Exitcode bei der letzten Ausf&uuml;hrung vom smartctl.
  29226. </li>
  29227. <br>
  29228. <li>overall_health_test<br>
  29229. Gibt den allgemeinen Zustand der Platte an. Kann PASSED oder FAILED sein.
  29230. </li>
  29231. <br>
  29232. <li>warnings<br>
  29233. Gibt die Anzahl der vermerkten Warnungen an.
  29234. </li>
  29235. <br>
  29236. Weiterhin k&ouml;nnen die verf&uuml;gbaren SMART-Parameter als Readings angezeigt werden (RAW und/oder (teilweise) interpretiert).
  29237. </ul>
  29238. <br>
  29239. <b>Get:</b><br><br>
  29240. <ul>
  29241. <li>version<br>
  29242. Zeigt die verwendete Modul-Version an.
  29243. </li>
  29244. <br>
  29245. <li>update<br>
  29246. Veranlasst die Aktualisierung der gelesenen Parameter.
  29247. </li>
  29248. <br>
  29249. <li>list<br>
  29250. Zeigt verschiedenen Informationen an:
  29251. <ul>
  29252. <li>devices:<br>Liste der im System verf&uuml;gbaren Ger&auml;ten.</li>
  29253. </ul><br>
  29254. <ul>
  29255. <li>info:<br>Information zu dem aktuellen Ger&auml;t.</li>
  29256. </ul><br>
  29257. <ul>
  29258. <li>data:<br>Liste der SMART-Parameter zu dem aktuellen Ger&auml;t.</li>
  29259. </ul><br>
  29260. <ul>
  29261. <li>health:<br>Information zu dem allgemeinen Gesundheitsstatus f&uuml;r das verwendete Ger&auml;t.</li>
  29262. </ul><br>
  29263. F&uuml;r letzten 3 Befehle kann auch noch ein anderes Ger&auml;t als zus&auml;tzliche Parameter mitgegeben werden.
  29264. </li>
  29265. <br>
  29266. </ul><br>
  29267. <b>Attributes:</b><br><br>
  29268. <ul>
  29269. <li>show_raw<br>
  29270. G&uuml;ltige Werte: 0: keine RAW-Readings anzeigen (default), 1: alle anzeigen, die nicht in interpretierten Readings enthalten sind, 2: alle anzeigen.
  29271. </li>
  29272. <br>
  29273. <li>include<br>
  29274. Kommaseparierte Liste der IDs gew&uuml;nschten SMART-Parameter. Wenn nichts angegeben, werden alle verf&uuml;gbaren angezeigt.
  29275. </li>
  29276. <br>
  29277. <li>disable<br>
  29278. G&uuml;ltige Werte: 0: Modul aktiv (default), 1: Modul deaktiviert (keine Aktualisierungen).
  29279. </li>
  29280. <br>
  29281. <li>parameters<br>
  29282. Zusatzparameter f&uuml;r den Aufruf von smartctl.
  29283. </li>
  29284. <br>
  29285. </ul><br>
  29286. F&uuml;r weitere Informationen wird die cmartctrl-Dokumentation empfohlen.
  29287. </ul>
  29288. <p><a name="SMASTP"></a>
  29289. <h3>SMASTP</h3>
  29290. <div class='langLinks'>[<a href='commandref.html#SMASTP'>EN</a> DE]</div>
  29291. Modul zur Einbindung eines Sunny Tripower Wechselrichters der Firma SMA Ăźber Speedwire (Ethernet).<br>
  29292. Getestet mit Sunny Tripower 6000TL-20, 10000-TL20 sowie 10000TL-10 mit Speedwire/Webconnect Piggyback
  29293. <p>
  29294. <b>Define</b>
  29295. <ul>
  29296. <code>define &lt;name&gt; SMASTP &lt;pin&gt; &lt;hostname/ip&gt; [port]</code><br>
  29297. <br>
  29298. <li>pin: Benutzer-Passwort des SMA STP Wechselrichters. Default ist 0000. Kann ßber die Windows-Software "Sunny Explorer" geändert werden </li>
  29299. <li>hostname/ip: Hostname oder IP-Adresse des Wechselrichters (bzw. dessen Speedwire Moduls mit Ethernetanschluss) </li>
  29300. <li>port: Optional der Ports des Wechselrichters. Per default 9522. </li>
  29301. </ul>
  29302. <p>
  29303. <b>Modus</b>
  29304. <ul>
  29305. Das Modul erkennt automatisch eine Inaktivität des Wechselrichters, wenn dieser aufgrund Dunkelheit seinen Betrieb einstellt. <br>
  29306. Diese Betriebspause wird als "Nightmode" bezeichnet. Im Nightmode wird der Wechelrichter nicht mehr Ăźber das Netzwerk abgefragt.<br>
  29307. Per default geht das Modul davon aus, dass vor 5:00 und nach 21:00 der Nightmode aktiv ist.<br>
  29308. Diese Grenzen lassen sich mit den Parametern "starttime" (Start des Wechelrichterbetriebs, also Ende des Nightmode) <br>
  29309. und "endtime" (Ende des Wechselrichterbetriebs, also Beginn des Nightmode) umdefinieren. <br>
  29310. DarĂźber hinaus gibt es den "Inactivitymode": hier wird der Wechselrichter abgefragt, aber es werden keine Readings mehr aktualisiert. <br>
  29311. </ul>
  29312. <b>Parameter</b>
  29313. <ul>
  29314. <li>interval: Abfrageinterval in Sekunden </li>
  29315. <li>suppress-night-mode: Der Nightmode wird deaktiviert </li>
  29316. <li>suppress-inactivity-mode: Der Inactivitymode wird deaktiviert </li>
  29317. <li>starttime: Startzeit des Betriebsmodus (Default 5:00 Uhr) </li>
  29318. <li>endtime: Endezeit des Betriebsmodus (Default 21:00 Uhr) </li>
  29319. <li>force-sleepmode: Der Nightmode wird bei entdeckter Inaktivität auch dann aktiviert, wenn endtime noch nicht erreicht ist </li>
  29320. <li>enable-modulstate: Schaltet das reading "modulstate" (normal / inactive / sleeping) ein </li>
  29321. <li>alarm1-value, alarm2-value, alarm3-value: Setzt einen Alarm in Watt auf das Reading SpotP.
  29322. <br>Die Readings Alarm1..Alarm3 werden entsprechend gesetzt: -1 fĂźr SpotP < alarmX-value und 1 fĂźr Spot >= alarmX-value. </li>
  29323. </ul>
  29324. <b>Readings</b>
  29325. <ul>
  29326. <li>SpotP: SpotPower - Leistung in W zum Zeitpunkt der Abfrage</li>
  29327. <li>AvP01: Average Power 1 Minute - Durchschnittliche Leistung in W der letzten Minute</li>
  29328. <li>AvP05: Average Power 5 Minuten - Durchschnittliche Leistung in W der letzten 5 Minuten</li>
  29329. <li>AvP15: Average Power 15 Minuten - Durchschnittliche Leistung in W der letzten 15 Minuten</li>
  29330. <li>SpotPDC1: Spot Gleichspannung String 1 </li>
  29331. <li>SpotPDC2: Spot Gleichspannung String 2 </li>
  29332. <li>TotalTodayP: Erzeuge Leistung (in Wh) des heutigen Tages </li>
  29333. <li>AlltimeTotalP: Erzeugte Leistung (in Wh) seit Inbetriebsnahme des Gerätes </li>
  29334. <li>Alarm1..3: Alarm Trigger 1-3. KĂśnnen Ăźber die Parameter "alarmN-value" gesetzt werden </li>
  29335. </ul>
  29336. <p><a name="SML"></a>
  29337. <h3>SML</h3>
  29338. <ul>
  29339. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  29340. hier: <a href='commandref.html#SML'>SML</a><br/>
  29341. </ul>
  29342. <a name="SOMFY"></a>
  29343. <h3>SOMFY</h3>
  29344. <ul>
  29345. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  29346. hier: <a href='commandref.html#SOMFY'>SOMFY</a><br/>
  29347. </ul>
  29348. <a name="SONOS"></a>
  29349. <h3>SONOS</h3>
  29350. <div class='langLinks'>[<a href='commandref.html#SONOS'>EN</a> DE]</div>
  29351. <p>FHEM-Modul fĂźr die Anbindung des Sonos-Systems via UPnP</p>
  29352. <p>FĂźr weitere Hinweise und Beschreibungen bitte auch im Wiki unter <a href="http://www.fhemwiki.de/wiki/SONOS">http://www.fhemwiki.de/wiki/SONOS</a> nachschauen.</p>
  29353. <p>Fßr die Verwendung sind Perlmodule notwendig, die unter Umständen noch nachinstalliert werden mßssen:<ul>
  29354. <li><code>LWP::Simple</code></li>
  29355. <li><code>LWP::UserAgent</code></li>
  29356. <li><code>SOAP::Lite</code></li>
  29357. <li><code>HTTP::Request</code></li></ul>
  29358. Installation z.B. als Debian-Pakete (mittels "sudo apt-get install &lt;packagename&gt;"):<ul>
  29359. <li>LWP::Simple-Packagename (inkl. LWP::UserAgent und HTTP::Request): libwww-perl</li>
  29360. <li>SOAP::Lite-Packagename: libsoap-lite-perl</li></ul>
  29361. <br />Installation z.B. als Windows ActivePerl (mittels Perl-Packagemanager)<ul>
  29362. <li>Package LWP (incl. LWP::UserAgent and HTTP::Request)</li>
  29363. <li>Package SOAP::Lite</li>
  29364. <li>SOAP::Lite-Special fĂźr Versionen nach 5.18:<ul>
  29365. <li>Eine andere Paketquelle von den Vorschlägen oder manuell hinzufßgen: Bribes de Perl (http://www.bribes.org/perl/ppm)</li>
  29366. <li>Package: SOAP::Lite</li></ul></li></ul>
  29367. <b>Windows ActivePerl 5.20 kann momentan nicht verwendet werden, da es das Paket SOAP::Lite dort momentan nicht gibt.</b></p>
  29368. <p><b>Achtung!</b><br />Das Modul wird nicht auf jeder Plattform lauffähig sein, da Threads und die angegebenen Perl-Module verwendet werden.</p>
  29369. <p>Mehr Informationen im (deutschen) Wiki-Artikel: <a href="http://www.fhemwiki.de/wiki/SONOS">http://www.fhemwiki.de/wiki/SONOS</a></p>
  29370. <p>Das System besteht aus zwei Komponenten:<br />
  29371. 1. Einem UPnP-Client, der als eigener Prozess im Hintergrund ständig läuft, und die Kommunikation mit den Sonos-Geräten ßbernimmt.<br />
  29372. 2. Dem eigentlichen FHEM-Modul, welches mit dem UPnP-Client zusammenarbeitet, um die Funktionalität in FHEM zu ermÜglichen.<br /><br />
  29373. Der Client wird im Notfall automatisch von Modul selbst gestartet.<br />
  29374. Man kann den Server unabhängig von FHEM selbst starten (um ihn dauerhaft und unabh&auml;ngig von FHEM laufen zu lassen):<br />
  29375. <code>perl 00_SONOS.pm 4711</code>: Startet einen unabhängigen Server, der auf Port 4711 auf eingehende FHEM-Verbindungen lauscht. Dieser Prozess kann dauerhaft laufen, FHEM kann sich verbinden und auch wieder trennen.</p>
  29376. <h4>Beispiel</h4>
  29377. <p>
  29378. Einfachste Definition:<br />
  29379. <b><code>define Sonos SONOS</code></b>
  29380. </p>
  29381. <p>
  29382. Definition mit Kontrolle Ăźber den verwendeten Port und das Intervall der IsAlive-PrĂźfung:<br />
  29383. <b><code>define Sonos SONOS localhost:4711 45</code></b>
  29384. </p>
  29385. <a name="SONOSdefine"></a>
  29386. <h4>Definition</h4>
  29387. <b><code>define &lt;name&gt; SONOS [upnplistener [interval [waittime [delaytime]]]]</code></b>
  29388. <br /><br /> Definiert das Sonos interface fĂźr die Kommunikation mit dem Sonos-System.<br />
  29389. <p>
  29390. <b><code>[upnplistener]</code></b><br />Name und Port eines externen UPnP-Client. Wenn nicht angegebenen wird <code>localhost:4711</code> festgelegt. Der Port muss eine freie Portnummer ihres Systems sein. <br />Wenn sie keinen externen Client gestartet haben, startet das Skript einen eigenen.<br />Wenn sie einen eigenen Dienst gestartet haben, dann geben sie hier die entsprechenden Informationen an.</p>
  29391. <p>
  29392. <b><code>[interval]</code></b><br /> Das Interval wird fßr die �berprßfung eines Zoneplayers benÜtigt. In diesem Interval wird nachgeschaut, ob der Player noch erreichbar ist, da sich ein Player nicht mehr abmeldet, wenn er abgeschaltet wird :-)<br />Wenn nicht angegeben, wird ein Wert von 10 Sekunden angenommen.</p>
  29393. <p>
  29394. <b><code>[waittime]</code></b><br /> Hiermit wird die Wartezeit eingestellt, die nach dem Starten des SubProzesses darauf gewartet wird.</p>
  29395. <p>
  29396. <b><code>[delaytime]</code></b><br /> Hiermit kann eine VerzĂśgerung eingestellt werden, die vor dem Starten des Netzwerks gewartet wird.</p>
  29397. <a name="SONOSset"></a>
  29398. <h4>Set</h4>
  29399. <ul>
  29400. <li><b>Grundsätzliches</b><ul>
  29401. <li><a name="SONOS_setter_RefreshShareIndex">
  29402. <b><code>RefreshShareIndex</code></b></a>
  29403. <br />Startet die Aktualisierung der Bibliothek.</li>
  29404. <li><a name="SONOS_setter_RescanNetwork">
  29405. <b><code>RescanNetwork</code></b></a>
  29406. <br />Startet die Erkennung der im Netzwerk vorhandenen Player erneut.</li>
  29407. </ul></li>
  29408. <li><b>Steuerbefehle</b><ul>
  29409. <li><a name="SONOS_setter_Mute">
  29410. <b><code>Mute &lt;state&gt;</code></b></a>
  29411. <br />Setzt den Mute-Zustand bei allen Playern.</li>
  29412. <li><a name="SONOS_setter_PauseAll">
  29413. <b><code>PauseAll</code></b></a>
  29414. <br />Pausiert die Wiedergabe in allen Zonen.</li>
  29415. <li><a name="SONOS_setter_Pause">
  29416. <b><code>Pause</code></b></a>
  29417. <br />Synonym fĂźr PauseAll.</li>
  29418. <li><a name="SONOS_setter_StopAll">
  29419. <b><code>StopAll</code></b></a>
  29420. <br />Stoppt die Wiedergabe in allen Zonen.</li>
  29421. <li><a name="SONOS_setter_Stop">
  29422. <b><code>Stop</code></b></a>
  29423. <br />Synonym fĂźr StopAll.</li>
  29424. </ul></li>
  29425. <li><b>Bookmark-Befehle</b><ul>
  29426. <li><a name="SONOS_setter_DisableBookmark">
  29427. <b><code>DisableBookmark &lt;Groupname&gt;</code></b></a>
  29428. <br />Deaktiviert die angegebene Gruppe.</li>
  29429. <li><a name="SONOS_setter_EnableBookmark">
  29430. <b><code>EnableBookmark &lt;Groupname&gt;</code></b></a>
  29431. <br />Aktiviert die angegebene Gruppe.</li>
  29432. <li><a name="SONOS_setter_LoadBookmarks">
  29433. <b><code>LoadBookmarks [Groupname]</code></b></a>
  29434. <br />Lädt die angegebene Gruppe (oder alle Gruppen, wenn nicht angegeben) aus den entsprechenden Dateien.</li>
  29435. <li><a name="SONOS_setter_SaveBookmarks">
  29436. <b><code>SaveBookmarks [Groupname]</code></b></a>
  29437. <br />Speichert die angegebene Gruppe (oder alle Gruppen, wenn nicht angegeben) in die entsprechenden Dateien.</li>
  29438. </ul></li>
  29439. <li><b>Gruppenbefehle</b><ul>
  29440. <li><a name="SONOS_setter_Groups">
  29441. <b><code>Groups &lt;GroupDefinition&gt;</code></b></a>
  29442. <br />Setzt die aktuelle Gruppierungskonfiguration der Sonos-Systemlandschaft. Das Format ist jenes, welches auch von dem Get-Befehl 'Groups' geliefert wird.<br >Hier kann als GroupDefinition das Wort <i>Reset</i> verwendet werden, um alle Player aus ihren Gruppen zu entfernen.</li>
  29443. </ul></li>
  29444. </ul>
  29445. <a name="SONOSget"></a>
  29446. <h4>Get</h4>
  29447. <ul>
  29448. <li><b>Gruppenbefehle</b><ul>
  29449. <li><a name="SONOS_getter_Groups">
  29450. <b><code>Groups</code></b></a>
  29451. <br />Liefert die aktuelle Gruppierungskonfiguration der Sonos Systemlandschaft zurĂźck. Das Format ist eine Kommagetrennte Liste von Listen mit Devicenamen, also z.B. <code>[Sonos_Kueche], [Sonos_Wohnzimmer, Sonos_Schlafzimmer]</code>. In diesem Beispiel sind also zwei Gruppen definiert, von denen die erste aus einem Player und die zweite aus Zwei Playern besteht.<br />
  29452. Dabei ist die Reihenfolge innerhalb der Unterlisten wichtig, da der erste Eintrag der sogenannte Gruppenkoordinator ist (in diesem Fall also <code>Sonos_Wohnzimmer</code>), von dem die aktuelle Abspielliste un der aktuelle Titel auf die anderen Gruppenmitglieder Ăźbernommen wird.</li>
  29453. </ul></li>
  29454. </ul>
  29455. <a name="SONOSattr"></a>
  29456. <h4>Attribute</h4>
  29457. '''Hinweis'''<br />Die Attribute werden erst bei einem Neustart von Fhem verwendet, da diese dem SubProzess initial zur VerfĂźgung gestellt werden mĂźssen.
  29458. <ul>
  29459. <li><b>Grundsätzliches</b><ul>
  29460. <li><a name="SONOS_attribut_coverLoadTimeout"><b><code>coverLoadTimeout &lt;value&gt;</code></b>
  29461. </a><br />Eines von (0..10,15,20,25,30). Definiert den Timeout der fĂźr die Abfrage des Covers beim Sonosplayer verwendet wird. Wenn nicht angegeben, dann wird 5 verwendet.</li>
  29462. <li><a name="SONOS_attribut_deviceRoomView"><b><code>deviceRoomView &lt;Both|DeviceLineOnly&gt;</code></b>
  29463. </a><br /> Gibt an, was in der Raumansicht zum Sonosplayer-Device angezeigt werden soll. <code>Both</code> bedeutet "normale" Devicezeile zzgl. Cover-/Titelanzeige und u.U. Steuerbereich, <code>DeviceLineOnly</code> bedeutet nur die Anzeige der "normalen" Devicezeile.</li>
  29464. <li><a name="SONOS_attribut_disable"><b><code>disable &lt;value&gt;</code></b>
  29465. </a><br />Eines von (0,1). Hiermit kann das Modul abgeschaltet werden. Wirkt sofort. Bei 1 wird der SubProzess beendet, und somit keine weitere Verarbeitung durchgefßhrt. Bei 0 wird der Prozess wieder gestartet.<br />Damit kann das Modul temporär abgeschaltet werden, um bei der Neueinrichtung von Sonos-Komponenten keine halben Zustände mitzubekommen.</li>
  29466. <li><a name="SONOS_attribut_getFavouritesListAtNewVersion"><b><code>getFavouritesListAtNewVersion &lt;value&gt;</code></b>
  29467. </a><br />Eines von (0,1). Mit diesem Attribut kann das Modul aufgefordert werden, die Favoriten (bei definiertem Attribut <code>getListsDirectlyToReadings</code>) bei Aktualisierung automatisch herunterzuladen.</li>
  29468. <li><a name="SONOS_attribut_getPlaylistsListAtNewVersion"><b><code>getPlaylistsListAtNewVersion &lt;value&gt;</code></b>
  29469. </a><br />Eines von (0,1). Mit diesem Attribut kann das Modul aufgefordert werden, die Playlisten (bei definiertem Attribut <code>getListsDirectlyToReadings</code>) bei Aktualisierung automatisch herunterzuladen.</li>
  29470. <li><a name="SONOS_attribut_getQueueListAtNewVersion"><b><code>getQueueListAtNewVersion &lt;value&gt;</code></b>
  29471. </a><br />Eines von (0,1). Mit diesem Attribut kann das Modul aufgefordert werden, die aktuelle Abspielliste (bei definiertem Attribut <code>getListsDirectlyToReadings</code>) bei Aktualisierung automatisch herunterzuladen.</li>
  29472. <li><a name="SONOS_attribut_getRadiosListAtNewVersion"><b><code>getRadiosListAtNewVersion &lt;value&gt;</code></b>
  29473. </a><br />Eines von (0,1). Mit diesem Attribut kann das Modul aufgefordert werden, die Radioliste (bei definiertem Attribut <code>getListsDirectlyToReadings</code>) bei Aktualisierung automatisch herunterzuladen.</li>
  29474. <li><a name="SONOS_attribut_getListsDirectlyToReadings"><b><code>getListsDirectlyToReadings &lt;value&gt;</code></b>
  29475. </a><br />Eines von (0,1). Mit diesem Attribut kann das Modul aufgefordert werden, die Listen fĂźr Favoriten, Playlists, Radios und Queue direkt in die entsprechenden Readings zu schreiben. DafĂźr sind dann keine Userreadings mehr notwendig.</li>
  29476. <li><a name="SONOS_attribut_getLocalCoverArt"><b><code>getLocalCoverArt &lt;value&gt;</code></b>
  29477. </a><br />Eines von (0,1). Mit diesem Attribut kann das Modul aufgefordert werden, die Cover lokal herunterzuladen (bisheriges Standardverhalten).</li>
  29478. <li><a name="SONOS_attribut_ignoredIPs"><b><code>ignoredIPs &lt;IP-Adresse&gt;[,IP-Adresse]</code></b>
  29479. </a><br />Mit diesem Attribut kĂśnnen IP-Adressen angegeben werden, die vom UPnP-System ignoriert werden sollen. Z.B.: "192.168.0.11,192.168.0.37"</li>
  29480. <li><a name="SONOS_attribut_pingType"><b><code>pingType &lt;string&gt;</code></b>
  29481. </a><br /> Eines von (none,tcp,udp,icmp,syn). Gibt an, welche Methode fßr die Ping-�berprßfung verwendet werden soll. Wenn 'none' angegeben wird, dann wird keine �berprßfung gestartet.</li>
  29482. <li><a name="SONOS_attribut_reusePort"><b><code>reusePort &lt;int&gt;</code></b>
  29483. </a><br /> Eines von (0,1). Gibt an, ob die Portwiederwendung fĂźr SSDP aktiviert werden soll, oder nicht. Kann Restart-Probleme lĂśsen. Wenn man diese Probleme nicht hat, sollte man das Attribut nicht setzen.</li>
  29484. <li><a name="SONOS_attribut_SubProcessLogfileName"><b><code>SubProcessLogfileName &lt;Pfad&gt;</code></b>
  29485. </a><br /> Hiermit kann fĂźr den SubProzess eine eigene Logdatei angegeben werden. Unter Windows z.B. Ăźberschreiben sich die beiden Logausgaben (von Fhem und SubProzess) sonst gegenseitig. Wenn "-" angegeben wird, wird wie bisher auf STDOUT (und damit im Fhem-Log) geloggt. Der Hauptanwendungsfall ist die mehr oder weniger kurzfristige Fehlersuche. Es werden keinerlei Variablenwerte ersetzt, und der Wert direkt als Dateiname verwendet.</li>
  29486. <li><a name="SONOS_attribut_usedonlyIPs"><b><code>usedonlyIPs &lt;IP-Adresse&gt;[,IP-Adresse]</code></b>
  29487. </a><br />Mit diesem Attribut kÜnnen IP-Adressen angegeben werden, die ausschlie�lich vom UPnP-System berßcksichtigt werden sollen. Z.B.: "192.168.0.11,192.168.0.37"</li>
  29488. </ul></li>
  29489. <li><b>Bookmark-Einstellungen</b><ul>
  29490. <li><a name="SONOS_attribut_bookmarkSaveDir"><b><code>bookmarkSaveDir &lt;path&gt;</code></b>
  29491. </a><br /> Das Verzeichnis, in dem die Dateien fĂźr die gespeicherten Bookmarks abgelegt werden sollen. Wenn nicht festgelegt, dann wird "." verwendet.</li>
  29492. <li><a name="SONOS_attribut_bookmarkTitleDefinition"><b><code>bookmarkTitleDefinition &lt;Groupname&gt;:&lt;PlayerdeviceRegEx&gt;:&lt;TrackURIRegEx&gt;:&lt;MinTitleLength&gt;:&lt;RemainingLength&gt;:&lt;MaxAge&gt;:&lt;ReadOnly&gt; [...]</code></b>
  29493. </a><br /> Die Definition fĂźr die Verwendung von Bookmarks fĂźr Titel.</li>
  29494. <li><a name="SONOS_attribut_bookmarkPlaylistDefinition"><b><code>bookmarkPlaylistDefinition &lt;Groupname&gt;:&lt;PlayerdeviceRegEx&gt;:&lt;MinListLength&gt;:&lt;MaxListLength&gt;:&lt;MaxAge&gt; [...]</code></b>
  29495. </a><br /> Die Definition fĂźr die Verwendung von Bookmarks fĂźr aktuelle Abspiellisten/Playlisten.</li>
  29496. </ul></li>
  29497. <li><b>Proxy-Einstellungen</b><ul>
  29498. <li><a name="SONOS_attribut_generateProxyAlbumArtURLs"><b><code>generateProxyAlbumArtURLs &lt;int&gt;</code></b>
  29499. </a><br /> Aus (0, 1). Wenn aktiviert, werden alle Cober-Links als Proxy-Aufrufe an Fhem generiert. Dieser Proxy-Server wird vom Sonos-Modul bereitgestellt. In der Grundeinstellung erfolgt kein Caching der Cover, sondern nur eine Durchreichung der Cover von den Sonosplayern (Damit ist der Zugriff durch einen externen Proxyserver auf Fhem mĂśglich).</li>
  29500. <li><a name="SONOS_attribut_proxyCacheDir"><b><code>proxyCacheDir &lt;Path&gt;</code></b>
  29501. </a><br /> Hiermit wird das Verzeichnis festgelegt, in dem die Cober zwischengespeichert werden. Wenn nicht festegelegt, so wird "/tmp" verwendet.</li>
  29502. <li><a name="SONOS_attribut_proxyCacheTime"><b><code>proxyCacheTime &lt;int&gt;</code></b>
  29503. </a><br /> Mit einer Angabe ungleich 0 wird der Caching-Mechanismus des Sonos-Modul-Proxy-Servers aktiviert. Dabei werden Cover, die im Cache älter sind als diese Zeitangabe in Sekunden, neu vom Sonosplayer geladen, alle anderen direkt ausgeliefert, ohne den Player zu fragen.</li>
  29504. <li><a name="SONOS_attribut_webname"><b><code>webname &lt;String&gt;</code></b>
  29505. </a><br /> Hiermit kann der zu verwendende Webname fßr die Cover-Link-Erzeugung angegeben werden. Da vom Modul Links zu Cover u.ä. erzeugt werden, ohne dass es einen FhemWeb-Aufruf dazu gibt, kann das Modul diesen Pfad nicht selber herausfinden. Wenn das Attribut nicht angegeben wird, dann wird 'fhem' angenommen.</li>
  29506. </ul></li>
  29507. <li><b>Sprachoptionen</b><ul>
  29508. <li><a name="SONOS_attribut_targetSpeakDir"><b><code>targetSpeakDir &lt;string&gt;</code></b>
  29509. </a><br /> Gibt an, welches Verzeichnis fĂźr die Ablage des MP3-Files der Textausgabe verwendet werden soll</li>
  29510. <li><a name="SONOS_attribut_targetSpeakMP3FileConverter"><b><code>targetSpeakMP3FileConverter &lt;string&gt;</code></b>
  29511. </a><br /> Hiermit kann ein MP3-Konverter angegeben werden, da am Ende der Verkettung der Speak-Ansage das resultierende MP3-File nochmal sauber durchkodiert. Damit kÜnnen Restzeitanzeigeprobleme behoben werden. Dadurch vegrÜ�ert sich allerdings u.U. die AnsageverzÜgerung.</li>
  29512. <li><a name="SONOS_attribut_targetSpeakMP3FileDir"><b><code>targetSpeakMP3FileDir &lt;string&gt;</code></b>
  29513. </a><br /> Das Verzeichnis, welches als Standard fĂźr MP3-Fileangaben in Speak-Texten verwendet werden soll. Wird dieses Attribut definiert, kĂśnnen die Angaben bei Speak ohne Verzeichnis erfolgen.</li>
  29514. <li><a name="SONOS_attribut_targetSpeakURL"><b><code>targetSpeakURL &lt;string&gt;</code></b>
  29515. </a><br /> Gibt an, unter welcher Adresse der ZonePlayer das unter targetSpeakDir angegebene Verzeichnis erreichen kann.</li>
  29516. <li><a name="SONOS_attribut_targetSpeakFileTimestamp"><b><code>targetSpeakFileTimestamp &lt;int&gt;</code></b>
  29517. </a><br /> One of (0, 1). Gibt an, ob die erzeugte MP3-Sprachausgabedatei einen Zeitstempel erhalten soll (1) oder nicht (0).</li>
  29518. <li><a name="SONOS_attribut_targetSpeakFileHashCache"><b><code>targetSpeakFileHashCache &lt;int&gt;</code></b>
  29519. </a><br /> One of (0, 1). Gibt an, ob die erzeugte Sprachausgabedatei einen Hashwert erhalten soll (1) oder nicht (0). Wenn dieser Wert gesetzt wird, dann wird eine bereits bestehende Datei wiederverwendet, und nicht neu erzeugt.</li>
  29520. <li><a name="SONOS_attribut_Speak1"><b><code>Speak1 &lt;Fileextension&gt;:&lt;Commandline&gt;</code></b>
  29521. </a><br />Hiermit kann ein Systemaufruf definiert werden, der zu Erzeugung einer Sprachausgabe verwendet werden kann. Sobald dieses Attribut definiert wurde, ist ein entsprechender Setter am Sonosplayer verfĂźgbar.<br />Es dĂźrfen folgende Platzhalter verwendet werden:<br />'''%language%''': Wird durch die eingegebene Sprache ersetzt<br />'''%filename%''': Wird durch den kompletten Dateinamen (inkl. Dateiendung) ersetzt.<br />'''%text%''': Wird durch den zu Ăźbersetzenden Text ersetzt.<br />'''%textescaped%''': Wird durch den URL-Enkodierten zu Ăźbersetzenden Text ersetzt.</li>
  29522. <li><a name="SONOS_attribut_Speak2"><b><code>Speak2 &lt;Fileextension&gt;:&lt;Commandline&gt;</code></b>
  29523. </a><br />Siehe Speak1</li>
  29524. <li><a name="SONOS_attribut_Speak3"><b><code>Speak3 &lt;Fileextension&gt;:&lt;Commandline&gt;</code></b>
  29525. </a><br />Siehe Speak1</li>
  29526. <li><a name="SONOS_attribut_Speak4"><b><code>Speak4 &lt;Fileextension&gt;:&lt;Commandline&gt;</code></b>
  29527. </a><br />Siehe Speak1</li>
  29528. <li><a name="SONOS_attribut_SpeakCover"><b><code>SpeakCover &lt;Absolute-Imagepath&gt;</code></b>
  29529. </a><br />Hiermit kann ein JPG- oder PNG-Bild als Cover fĂźr die Sprachdurchsagen definiert werden.</li>
  29530. <li><a name="SONOS_attribut_Speak1Cover"><b><code>Speak1Cover &lt;Absolute-Imagepath&gt;</code></b>
  29531. </a><br />Analog zu SpeakCover fĂźr Speak1.</li>
  29532. <li><a name="SONOS_attribut_Speak2Cover"><b><code>Speak2Cover &lt;Absolute-Imagepath&gt;</code></b>
  29533. </a><br />Analog zu SpeakCover fĂźr Speak2.</li>
  29534. <li><a name="SONOS_attribut_Speak3Cover"><b><code>Speak3Cover &lt;Absolute-Imagepath&gt;</code></b>
  29535. </a><br />Analog zu SpeakCover fĂźr Speak3.</li>
  29536. <li><a name="SONOS_attribut_Speak3Cover"><b><code>Speak3Cover &lt;Absolute-Imagepath&gt;</code></b>
  29537. </a><br />Analog zu SpeakCover fĂźr Speak3.</li>
  29538. <li><a name="SONOS_attribut_Speak4Cover"><b><code>Speak4Cover &lt;Absolute-Imagepath&gt;</code></b>
  29539. </a><br />Analog zu SpeakCover fĂźr Speak4.</li>
  29540. <li><a name="SONOS_attribut_SpeakGoogleURL"><b><code>SpeakGoogleURL &lt;GoogleURL&gt;</code></b>
  29541. </a><br />Die zu verwendende Google-URL. Wenn dieser Parameter nicht angegeben wird, dann wird ein Standard verwendet. Hier mĂźssen Platzhalter fĂźr die Ersetzung durch das Modul eingetragen werden: %1$s -> Sprache, %2$s -> Text<br />Die Standard-URL lautet momentan: <code>http://translate.google.com/translate_tts?tl=%1$s&client=tw-ob&q=%2$s</code></li>
  29542. </ul></li>
  29543. </ul>
  29544. <p><a name="SONOSPLAYER"></a>
  29545. <h3>SONOSPLAYER</h3>
  29546. <div class='langLinks'>[<a href='commandref.html#SONOSPLAYER'>EN</a> DE]</div>
  29547. <p>FHEM Modul fĂźr die Steuerung eines Sonos Zoneplayer</p>
  29548. <p>FĂźr weitere Hinweise und Beschreibungen bitte auch im Wiki unter <a href="http://www.fhemwiki.de/wiki/SONOS">http://www.fhemwiki.de/wiki/SONOS</a> nachschauen.</p>
  29549. <p>Im Normalfall braucht man dieses Device nicht selber zu definieren, da es automatisch vom Discovery-Process des Sonos-Device erzeugt wird.</p>
  29550. <h4>Example</h4>
  29551. <p>
  29552. <code>define Sonos_Wohnzimmer SONOSPLAYER RINCON_000EFEFEFEF401400_MR</code>
  29553. </p>
  29554. <a name="SONOSPLAYERdefine"></a>
  29555. <h4>Definition</h4>
  29556. <b><code>define &lt;name&gt; SONOSPLAYER &lt;udn&gt;</code></b>
  29557. <p>
  29558. <b><code>&lt;udn&gt;</code></b><br /> MAC-Addressbasierter eindeutiger Bezeichner des Zoneplayer</p>
  29559. <a name="SONOSPLAYERset"></a>
  29560. <h4>Set</h4>
  29561. <ul>
  29562. <li><b>Grundsätzliche Einstellungen</b><ul>
  29563. <li><a name="SONOSPLAYER_setter_Alarm">
  29564. <b><code>Alarm (Create|Update|Delete|Enable|Disable) &lt;ID[,ID]|All&gt; &lt;Datahash&gt;</code></b></a>
  29565. <br />Diese Anweisung wird fßr die Bearbeitung der Alarme verwendet:<ul><li><b>Create:</b> Erzeugt einen neuen Alarm-Eintrag mit den ßbergebenen Hash-Daten.</li><li><b>Update:</b> Aktualisiert die Alarme mit den ßbergebenen IDs und den angegebenen Hash-Daten.</li><li><b>Delete:</b> LÜscht die Alarm-Einträge mit den ßbergebenen IDs.</li><li><b>Enable:</b> Aktiviert die Alarm-Einträge mit den ßbergebenen IDs.</li><li><b>Disable:</b> Deaktiviert die Alarm-Einträge mit den ßbergebenen IDs.</li></ul>Bei Angabe des Wortes 'All' als ID, werden alle Alarme dieses Players bearbeitet.<br /><b>Die Hash-Daten:</b><br />Das Format ist ein Perl-Hash und wird mittels der eval-Funktion interpretiert.<br />e.g.: { Repeat =&gt; 1 }<br /><br />Die folgenden Schlßssel sind zulässig/notwendig:<ul><li>StartTime</li><li>Duration</li><li>Recurrence_Once</li><li>Recurrence_Monday</li><li>Recurrence_Tuesday</li><li>Recurrence_Wednesday</li><li>Recurrence_Thursday</li><li>Recurrence_Friday</li><li>Recurrence_Saturday</li><li>Recurrence_Sunday</li><li>Enabled</li><li>ProgramURI</li><li>ProgramMetaData</li><li>Shuffle</li><li>Repeat</li><li>Volume</li><li>IncludeLinkedZones</li></ul><br />z.B.:<ul><li>set Sonos_Wohnzimmer Alarm Create 0 { Enabled =&gt; 1, Volume =&gt; 35, StartTime =&gt; '00:00:00', Duration =&gt; '00:15:00', Repeat =&gt; 0, Shuffle =&gt; 0, ProgramURI =&gt; 'x-rincon-buzzer:0', ProgramMetaData =&gt; '', Recurrence_Once =&gt; 0, Recurrence_Monday =&gt; 1, Recurrence_Tuesday =&gt; 1, Recurrence_Wednesday =&gt; 1, Recurrence_Thursday =&gt; 1, Recurrence_Friday =&gt; 1, Recurrence_Saturday =&gt; 0, Recurrence_Sunday =&gt; 0, IncludeLinkedZones =&gt; 0 }</li><li>set Sonos_Wohnzimmer Alarm Update 17 { Shuffle =&gt; 1 }</li><li>set Sonos_Wohnzimmer Alarm Delete 17 {}</li></ul></li>
  29566. <li><a name="SONOSPLAYER_setter_AudioDelay">
  29567. <b><code>AudioDelay &lt;Level&gt;</code></b></a>
  29568. <br /> Setzt den AudioDelay der Playbar auf den angegebenen Wert. Der Wert kann zwischen 0 und 5 liegen.</li>
  29569. <li><a name="SONOSPLAYER_setter_AudioDelayLeftRear">
  29570. <b><code>AudioDelayLeftRear &lt;Level&gt;</code></b></a>
  29571. <br /> Setzt den AudioDelayLeftRear des Players auf den angegebenen Wert. Der Wert kann zwischen 0 und 2 liegen. Wobei die Werte folgende Bedeutung haben: 0: >3m, 1: >0.6m und <3m, 2: <0.6m</li>
  29572. <li><a name="SONOSPLAYER_setter_AudioDelayRightRear">
  29573. <b><code>AudioDelayRightRear &lt;Level&gt;</code></b></a>
  29574. <br /> Setzt den AudioDelayRightRear des Players auf den angegebenen Wert. Der Wert kann zwischen 0 und 2 liegen. Wobei die Werte folgende Bedeutung haben: 0: >3m, 1: >0.6m und <3m, 2: <0.6m</li>
  29575. <li><a name="SONOSPLAYER_setter_ButtonLockState">
  29576. <b><code>ButtonLockState &lt;int&gt;</code></b></a>
  29577. <br />One of (0, 1). Setzt den aktuellen Button-Sperr-Zustand.</li>
  29578. <li><a name="SONOSPLAYER_setter_DailyIndexRefreshTime">
  29579. <b><code>DailyIndexRefreshTime &lt;Timestring&gt;</code></b></a>
  29580. <br />Setzt die aktuell gĂźltige DailyIndexRefreshTime fĂźr alle Zoneplayer.</li>
  29581. <li><a name="SONOSPLAYER_setter_DialogLevel">
  29582. <b><code>DialogLevel &lt;State&gt;</code></b></a>
  29583. <br /> Legt den Zustand der Sprachverbesserung der Playbar fest.</li>
  29584. <li><a name="SONOSPLAYER_setter_ExportSonosBibliothek">
  29585. <b><code>ExportSonosBibliothek &lt;filename&gt;</code></b></a>
  29586. <br />Exportiert eine Datei mit der textuellen Darstellung eines Struktur- und Titelhashs, das die komplette Navigationsstruktur aus der Sonos-Bibliothek abbildet. Achtung: BenÜtigt eine gro�e Menge CPU-Zeit und Arbeitsspeicher fßr die Ausfßhrung!</li>
  29587. <li><a name="SONOSPLAYER_setter_Name">
  29588. <b><code>Name &lt;Zonename&gt;</code></b></a>
  29589. <br />Legt den Namen der Zone fest.</li>
  29590. <li><a name="SONOSPLAYER_setter_NightMode">
  29591. <b><code>NightMode &lt;State&gt;</code></b></a>
  29592. <br /> Legt den Zustand des Nachtsounds der Playbar fest.</li>
  29593. <li><a name="SONOSPLAYER_setter_OutputFixed">
  29594. <b><code>OutputFixed &lt;State&gt;</code></b></a>
  29595. <br /> Setzt den angegebenen OutputFixed-Zustand. Liefert den aktuell gĂźltigen OutputFixed-Zustand.</li>
  29596. <li><a name="SONOSPLAYER_setter_Reboot">
  29597. <b><code>Reboot</code></b></a>
  29598. <br />FĂźhrt fĂźr den Zoneplayer einen Neustart durch.</li>
  29599. <li><a name="SONOSPLAYER_setter_ResetAttributesToDefault">
  29600. <b><code>ResetAttributesToDefault &lt;DeleteAllOtherAttributes&gt;</code></b></a>
  29601. <br />Setzt die Attribute eines Players auf die Voreinstellung zurĂźck, wie sie beim Anlegen des Players gesetzt waren. Wenn der Parameter "DeleteAllOtherAttributes" mit "1" oder "on" angegeben wurde, werden vor dem Setzen alle Attribute gelĂśscht.</li>
  29602. <li><a name="SONOSPLAYER_setter_RoomIcon">
  29603. <b><code>RoomIcon &lt;Iconname&gt;</code></b></a>
  29604. <br />Legt das Icon fĂźr die Zone fest</li>
  29605. <li><a name="SONOSPLAYER_setter_SnoozeAlarm">
  29606. <b><code>SnoozeAlarm &lt;Timestring|Seconds&gt;</code></b></a>
  29607. <br />Unterbricht eine laufende Alarmwiedergabe fĂźr den Ăźbergebenen Zeitraum.</li>
  29608. <li><a name="SONOSPLAYER_setter_SubEnable">
  29609. <b><code>SubEnable &lt;State&gt;</code></b></a>
  29610. <br /> Legt den Zustand des Sub-Zustands fest.</li>
  29611. <li><a name="SONOSPLAYER_setter_SubGain">
  29612. <b><code>SubGain &lt;Level&gt;</code></b></a>
  29613. <br /> Setzt den SubGain auf den angegebenen Wert. Der Wert kann zwischen -15 und 15 liegen.</li>
  29614. <li><a name="SONOSPLAYER_setter_SubPolarity">
  29615. <b><code>SubPolarity &lt;Level&gt;</code></b></a>
  29616. <br /> Setzt den SubPolarity auf den angegebenen Wert. Der Wert kann zwischen 0 und 2 liegen.</li>
  29617. <li><a name="SONOSPLAYER_setter_SurroundEnable">
  29618. <b><code>SurroundEnable &lt;State&gt;</code></b></a>
  29619. <br />Setzt den SurroundEnable-Zustand.</li>
  29620. <li><a name="SONOSPLAYER_setter_SurroundLevel">
  29621. <b><code>SurroundLevel &lt;Level&gt;</code></b></a>
  29622. <br /> Setzt den Surroundlevel auf den angegebenen Wert. Der Wert kann zwischen -15 und 15 liegen.</li>
  29623. <li><a name="SONOSPLAYER_setter_TruePlay">
  29624. <b><code>TruePlay &lt;State&gt;</code></b></a>
  29625. <br />Setzt den TruePlay-Zustand.</li>
  29626. <li><a name="SONOSPLAYER_setter_Wifi">
  29627. <b><code>Wifi &lt;State&gt;</code></b></a>
  29628. <br />Setzt den WiFi-Zustand des Players. Kann 'off', 'persist-off' oder 'on' sein.</li>
  29629. </ul></li>
  29630. <li><b>Abspiel-Steuerbefehle</b><ul>
  29631. <li><a name="SONOSPLAYER_setter_CurrentTrackPosition">
  29632. <b><code>CurrentTrackPosition &lt;TimePosition&gt;</code></b></a>
  29633. <br /> Setzt die Abspielposition innerhalb des Liedes auf den angegebenen Zeitwert (z.B. 0:01:15) oder eine Sekundenangabe (z.B. 81). Man kann hier auch relative Angaben machen wie '+0:00:10' oder nur '+10'. Zusätzlich kann man auch Prozentwerte angeben wie z.B. '+10%'. Natßrlich kÜnnen diese Angaben auch negativ sein.</li>
  29634. <li><a name="SONOSPLAYER_setter_Pause">
  29635. <b><code>Pause</code></b></a>
  29636. <br /> Pausiert die Wiedergabe</li>
  29637. <li><a name="SONOSPLAYER_setter_Previous">
  29638. <b><code>Previous</code></b></a>
  29639. <br /> Springt an den Anfang des vorherigen Titels.</li>
  29640. <li><a name="SONOSPLAYER_setter_Play">
  29641. <b><code>Play</code></b></a>
  29642. <br /> Startet die Wiedergabe</li>
  29643. <li><a name="SONOSPLAYER_setter_PlayURI">
  29644. <b><code>PlayURI &lt;songURI&gt; [Volume]</code></b></a>
  29645. <br /> Spielt die angegebene MP3-Datei ab. Dabei kann eine Lautstärke optional mit angegeben werden.</li>
  29646. <li><a name="SONOSPLAYER_setter_PlayURITemp">
  29647. <b><code>PlayURITemp &lt;songURI&gt; [Volume]</code></b></a>
  29648. <br /> Spielt die angegebene MP3-Datei mit der optionalen Lautstärke als temporäre Wiedergabe ab. Nach dem Abspielen wird der vorhergehende Zustand wiederhergestellt, und läuft an der unterbrochenen Stelle weiter. Wenn die Länge der Datei nicht ermittelt werden kann (z.B. bei Streams), läuft die Wiedergabe genauso wie bei <code>PlayURI</code> ab, es wird also nichts am Ende (wenn es eines geben sollte) wiederhergestellt.</li>
  29649. <li><a name="SONOSPLAYER_setter_Next">
  29650. <b><code>Next</code></b></a>
  29651. <br /> Springt an den Anfang des nächsten Titels</li>
  29652. <li><a name="SONOSPLAYER_setter_Speak">
  29653. <b><code>Speak &lt;Volume&gt; &lt;Language&gt; &lt;Text&gt;</code></b></a>
  29654. <br /> Verwendet die Google Text-To-Speech-Engine um den angegebenen Text in eine MP3-Datei umzuwandeln und anschlie�end mittels <code>PlayURITemp</code> als Durchsage abzuspielen. MÜgliche Sprachen kÜnnen auf der Google-Seite nachgesehen werden. MÜglich sind z.B. "de", "en", "fr", "es"...</li>
  29655. <li><a name="SONOSPLAYER_setter_StartFavourite">
  29656. <b><code>StartFavourite &lt;FavouriteName&gt; [NoStart]</code></b></a>
  29657. <br /> Startet den angegebenen Favoriten. Der Name bezeichnet einen Eintrag in der Sonos-Favoritenliste. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermÜglichen. Wenn das Wort 'NoStart' als zweiter Parameter angegeben wurde, dann wird der Favorit geladen und fertig vorbereitet, aber nicht explizit gestartet.<br />Zusätzlich kann ein regulärer Ausdruck fßr den Namen verwendet werden. Der erste Treffer wird verwendet. Das Format ist z.B. <code>/meine.hits/</code>.</li>
  29658. <li><a name="SONOSPLAYER_setter_StartPlaylist">
  29659. <b><code>StartPlaylist &lt;Playlistname&gt; [EmptyQueueBeforeImport]</code></b></a>
  29660. <br /> Lädt die benannte Playlist und startet sofort die Wiedergabe. Zu den Parametern und Bemerkungen bitte unter "LoadPlaylist" nachsehen.</li>
  29661. <li><a name="SONOSPLAYER_setter_StartRadio">
  29662. <b><code>StartRadio &lt;Radiostationname&gt;</code></b></a>
  29663. <br /> Lädt den benannten Radiosender, genauer gesagt, den benannten Radiofavoriten und startet sofort die Wiedergabe. Dabei wird die bestehende Abspielliste beibehalten, aber deaktiviert. Der Parameter kann/muss URL-Encoded sein, um auch Leer- und Sonderzeichen angeben zu kÜnnen.</li>
  29664. <li><a name="SONOSPLAYER_setter_StartSearchlist">
  29665. <b><code>StartSearchlist &lt;Kategoriename&gt; &lt;KategorieElement&gt; [[TitelfilterRegEx]/[AlbumfilterRegEx]/[ArtistfilterRegEx] [maxElem]]</code></b></a>
  29666. <br /> Lädt die Searchlist und startet sofort die Wiedergabe. Fßr nähere Informationen bitte unter "LoadSearchlist" nachschlagen.</li>
  29667. <li><a name="SONOSPLAYER_setter_Stop">
  29668. <b><code>Stop</code></b></a>
  29669. <br /> Stoppt die Wiedergabe</li>
  29670. <li><a name="SONOSPLAYER_setter_Track">
  29671. <b><code>Track &lt;TrackNumber|Random&gt;</code></b></a>
  29672. <br /> Aktiviert den angebenen Titel der aktuellen Abspielliste. Wenn als Tracknummer der Wert <code>Random</code> angegeben wird, dann wird eine zufällige Trackposition ausgewählt.</li>
  29673. </ul></li>
  29674. <li><b>Einstellungen zum Abspielen</b><ul>
  29675. <li><a name="SONOSPLAYER_setter_Balance">
  29676. <b><code>Balance &lt;BalanceValue&gt;</code></b></a>
  29677. <br /> Setzt die Balance auf den angegebenen Wert. Der Wert kann zwischen -100 (voll links) bis 100 (voll rechts) sein. Gibt die wirklich eingestellte Balance als Ergebnis zurĂźck.</li>
  29678. <li><a name="SONOSPLAYER_setter_Bass">
  29679. <b><code>Bass &lt;BassValue&gt;</code></b></a>
  29680. <br /> Setzt den Basslevel auf den angegebenen Wert. Der Wert kann zwischen -10 bis 10 sein. Gibt den wirklich eingestellten Basslevel als Ergebnis zurĂźck.</li>
  29681. <li><a name="SONOSPLAYER_setter_CrossfadeMode">
  29682. <b><code>CrossfadeMode &lt;State&gt;</code></b></a>
  29683. <br /> Legt den Zustand des Crossfade-Mode fest. Liefert den aktuell gĂźltigen Crossfade-Mode.</li>
  29684. <li><a name="SONOSPLAYER_setter_LEDState">
  29685. <b><code>LEDState &lt;State&gt;</code></b></a>
  29686. <br /> Legt den Zustand der LED fest. Liefert den aktuell gĂźltigen Zustand.</li>
  29687. <li><a name="SONOSPLAYER_setter_Loudness">
  29688. <b><code>Loudness &lt;State&gt;</code></b></a>
  29689. <br /> Setzt den angegebenen Loudness-Zustand. Liefert den aktuell gĂźltigen Loudness-Zustand.</li>
  29690. <li><a name="SONOSPLAYER_setter_Mute">
  29691. <b><code>Mute &lt;State&gt;</code></b></a>
  29692. <br /> Setzt den angegebenen Mute-Zustand. Liefert den aktuell gĂźltigen Mute-Zustand.</li>
  29693. <li><a name="SONOSPLAYER_setter_MuteT">
  29694. <b><code>MuteT</code></b></a>
  29695. <br /> Schaltet den Zustand des Mute-Zustands um. Liefert den aktuell gĂźltigen Mute-Zustand.</li>
  29696. <li><a name="SONOSPLAYER_setter_Repeat">
  29697. <b><code>Repeat &lt;State&gt;</code></b></a>
  29698. <br /> Legt den Zustand des Repeat-Zustands fest. Liefert den aktuell gĂźltigen Repeat-Zustand.</li>
  29699. <li><a name="SONOSPLAYER_setter_RepeatOne">
  29700. <b><code>RepeatOne &lt;State&gt;</code></b></a>
  29701. <br /> Legt den Zustand des RepeatOne-Zustands fest. Liefert den aktuell gĂźltigen RepeatOne-Zustand.</li>
  29702. <li><a name="SONOSPLAYER_setter_RepeatOneT">
  29703. <b><code>RepeatOneT</code></b></a>
  29704. <br /> Schaltet den Zustand des RepeatOne-Zustands um. Liefert den aktuell gĂźltigen RepeatOne-Zustand.</li>
  29705. <li><a name="SONOSPLAYER_setter_RepeatT">
  29706. <b><code>RepeatT</code></b></a>
  29707. <br /> Schaltet den Zustand des Repeat-Zustands um. Liefert den aktuell gĂźltigen Repeat-Zustand.</li>
  29708. <li><a name="SONOSPLAYER_setter_Shuffle">
  29709. <b><code>Shuffle &lt;State&gt;</code></b></a>
  29710. <br /> Legt den Zustand des Shuffle-Zustands fest. Liefert den aktuell gĂźltigen Shuffle-Zustand.</li>
  29711. <li><a name="SONOSPLAYER_setter_ShuffleT">
  29712. <b><code>ShuffleT</code></b></a>
  29713. <br /> Schaltet den Zustand des Shuffle-Zustands um. Liefert den aktuell gĂźltigen Shuffle-Zustand.</li>
  29714. <li><a name="SONOSPLAYER_setter_SleepTimer">
  29715. <b><code>SleepTimer &lt;Timestring|Seconds&gt;</code></b></a>
  29716. <br /> Legt den aktuellen SleepTimer fest. Der Wert muss ein kompletter Zeitstempel sein (HH:MM:SS). Zum Deaktivieren darf der Zeitstempel nur Nullen enthalten oder das Wort 'off'.</li>
  29717. <li><a name="SONOSPLAYER_setter_Treble">
  29718. <b><code>Treble &lt;TrebleValue&gt;</code></b></a>
  29719. <br /> Setzt den Treblelevel auf den angegebenen Wert. Der Wert kann zwischen -10 bis 10 sein. Gibt den wirklich eingestellten Treblelevel als Ergebnis zurĂźck.</li>
  29720. <li><a name="SONOSPLAYER_setter_Volume">
  29721. <b><code>Volume &lt;VolumeLevel&gt; [RampType]</code></b></a>
  29722. <br /> Setzt die aktuelle Lautstärke auf den angegebenen Wert. Der Wert kann ein relativer Wert mittels + oder - Zeichen sein. Liefert den aktuell gßltigen Lautstärkewert zurßck.<br />Optional kann ein RampType ßbergeben werden, der einen Wert zwischen 1 und 3 annehmen kann, und verschiedene von Sonos festgelegte Muster beschreibt.</li>
  29723. <li><a name="SONOSPLAYER_setter_VolumeD">
  29724. <b><code>VolumeD</code></b></a>
  29725. <br /> Verringert die aktuelle Lautstärke um volumeStep-Einheiten.</li>
  29726. <li><a name="SONOSPLAYER_setter_VolumeRestore">
  29727. <b><code>VolumeRestore</code></b></a>
  29728. <br /> Stellt die mittels <code>VolumeSave</code> gespeicherte Lautstärke wieder her.</li>
  29729. <li><a name="SONOSPLAYER_setter_VolumeSave">
  29730. <b><code>VolumeSave &lt;VolumeLevel&gt;</code></b></a>
  29731. <br /> Setzt die aktuelle Lautstärke auf den angegebenen Wert. Der Wert kann ein relativer Wert mittels + oder - Zeichen sein. Liefert den aktuell gßltigen Lautstärkewert zurßck. Zusätzlich wird der alte Lautstärkewert gespeichert und kann mittels <code>VolumeRestore</code> wiederhergestellt werden.</li>
  29732. <li><a name="SONOSPLAYER_setter_VolumeU">
  29733. <b><code>VolumeU</code></b></a>
  29734. <br /> ErhÜht die aktuelle Lautstärke um volumeStep-Einheiten.</li>
  29735. </ul></li>
  29736. <li><b>Steuerung der aktuellen Abspielliste</b><ul>
  29737. <li><a name="SONOSPLAYER_setter_AddURIToQueue">
  29738. <b><code>AddURIToQueue &lt;songURI&gt;</code></b></a>
  29739. <br /> FĂźgt die angegebene MP3-Datei an der aktuellen Stelle in die Abspielliste ein.</li>
  29740. <li><a name="SONOSPLAYER_setter_CurrentPlaylist">
  29741. <b><code>CurrentPlaylist</code></b></a>
  29742. <br /> Setzt den Abspielmodus auf die aktuelle Abspielliste, startet aber keine Wiedergabe (z.B. nach dem HĂśren eines Radiostreams, wo die aktuelle Abspielliste noch existiert, aber gerade "nicht verwendet" wird)</li>
  29743. <li><a name="SONOSPLAYER_setter_DeleteFromQueue">
  29744. <b><code>DeleteFromQueue <index_of_elems></code></b></a>
  29745. <br /> LĂśscht die angegebenen Elemente aus der aktuellen Abspielliste. Die Angabe erfolgt Ăźber die Indizies der Titel. Es kĂśnnen die bei Perl-Array-Ăźblichen Formate verwendet werden: "1..12,17,20..22". Die Indizies beziehen sich auf die aktuell angezeigte Reihenfolge (diese unterscheidet sich zwischen der normalen Abspielweise und dem Shufflemodus).</li>
  29746. <li><a name="SONOSPLAYER_setter_DeletePlaylist">
  29747. <b><code>DeletePlaylist</code></b></a>
  29748. <br /> LĂśscht die bezeichnete Playliste. Zum mĂśglichen Format des Playlistenamen unter LoadPlaylist nachsehen.</li>
  29749. <li><a name="SONOSPLAYER_setter_EmptyPlaylist">
  29750. <b><code>EmptyPlaylist</code></b></a>
  29751. <br /> Leert die aktuelle Abspielliste</li>
  29752. <li><a name="SONOSPLAYER_setter_LoadFavourite">
  29753. <b><code>LoadFavourite &lt;FavouriteName&gt;</code></b></a>
  29754. <br /> Lädt den angegebenen Favoriten. Der Name bezeichnet einen Eintrag in der Sonos-Favoritenliste. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermÜglichen.<br />Zusätzlich kann ein regulärer Ausdruck fßr den Namen verwendet werden. Der erste Treffer wird verwendet. Das Format ist z.B. <code>/meine.hits/</code>.</li>
  29755. <li><a name="SONOSPLAYER_setter_LoadPlaylist">
  29756. <b><code>LoadPlaylist &lt;Playlistname|Fhem-Devicename&gt; [EmptyQueueBeforeImport]</code></b></a>
  29757. <br /> Lädt die angegebene Playlist in die aktuelle Abspielliste. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermÜglichen. Der Playlistname kann ein Fhem-Sonosplayer-Devicename sein, dann wird dessen aktuelle Abpielliste kopiert. Der Playlistname kann aber auch ein Dateiname sein. Dann muss dieser mit 'file:' beginnen (z.B. 'file:c:/Test.m3u).<br />Wenn der Parameter EmptyQueueBeforeImport mit ''1'' angegeben wirde, wird die aktuelle Abspielliste vor dem Import geleert. Standardmä�ig wird hier ''1'' angenommen.<br />Zusätzlich kann ein regulärer Ausdruck fßr den Namen verwendet werden. Der erste Treffer wird verwendet. Das Format ist z.B. <code>/hits.2014/</code>.</li>
  29758. <li><a name="SONOSPLAYER_setter_LoadRadio">
  29759. <b><code>LoadRadio &lt;Radiostationname&gt;</code></b></a>
  29760. <br /> Startet den angegebenen Radiostream. Der Name bezeichnet einen Sender in der Radiofavoritenliste. Die aktuelle Abspielliste wird nicht verändert. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermÜglichen.<br />Zusätzlich kann ein regulärer Ausdruck fßr den Namen verwendet werden. Der erste Treffer wird verwendet. Das Format ist z.B. <code>/radio/</code>.</li>
  29761. <li><a name="SONOSPLAYER_setter_LoadSearchlist">
  29762. <b><code>LoadSearchlist &lt;Kategoriename&gt; &lt;KategorieElement&gt; [[TitelfilterRegEx]/[AlbumfilterRegEx]/[ArtistfilterRegEx] [[*]maxElem[+|-]]]</code></b></a>
  29763. <br /> Lädt Titel nach diversen Kriterien in die aktuelle Abspielliste. Nähere Beschreibung bitte im Wiki nachlesen.</li>
  29764. <li><a name="SONOSPLAYER_setter_SavePlaylist">
  29765. <b><code>SavePlaylist &lt;Playlistname&gt;</code></b></a>
  29766. <br /> Speichert die aktuelle Abspielliste unter dem angegebenen Namen. Eine bestehende Playlist mit diesem Namen wird Ăźberschrieben. Der Parameter sollte/kann URL-Encoded werden um auch Spezialzeichen zu ermĂśglichen. Der Playlistname kann auch ein Dateiname sein. Dann muss dieser mit 'file:' beginnen (z.B. 'file:c:/Test.m3u).</li>
  29767. </ul></li>
  29768. <li><b>Gruppenbefehle</b><ul>
  29769. <li><a name="SONOSPLAYER_setter_AddMember">
  29770. <b><code>AddMember &lt;devicename&gt;</code></b></a>
  29771. <br />FĂźgt dem Device das Ăźbergebene Device als Gruppenmitglied hinzu. Die Wiedergabe des aktuellen Devices bleibt erhalten, und wird auf das angegebene Device mit Ăźbertragen.</li>
  29772. <li><a name="SONOSPLAYER_setter_CreateStereoPair">
  29773. <b><code>CreateStereoPair &lt;rightPlayerDevicename&gt;</code></b></a>
  29774. <br />FĂźgt dem Device das Ăźbergebene Device als rechtes Stereopaar-Element hinzu. Die Wiedergabe des aktuellen Devices bleibt erhalten (als linker Lautsprecher), und wird auf das angegebene Device mit Ăźbertragen (als rechter Lautsprecher).</li>
  29775. <li><a name="SONOSPLAYER_setter_GroupMute">
  29776. <b><code>GroupMute &lt;State&gt;</code></b></a>
  29777. <br />Setzt den Mute-Zustand fĂźr die komplette Gruppe in einem Schritt. Der Wert kann on oder off sein.</li>
  29778. <li><a name="SONOSPLAYER_setter_GroupVolume">
  29779. <b><code>GroupVolume &lt;VolumeLevel&gt;</code></b></a>
  29780. <br />Setzt die Gruppenlautstärke in der Art des Original-Controllers. Das bedeutet, dass das Lautstärkeverhältnis der Player zueinander beim Anpassen erhalten bleibt.</li>
  29781. <li><a name="SONOSPLAYER_setter_GroupVolumeD">
  29782. <b><code>GroupVolumeD</code></b></a>
  29783. <br /> Verringert die aktuelle Gruppenlautstärke um volumeStep-Einheiten.</li>
  29784. <li><a name="SONOSPLAYER_setter_GroupVolumeU">
  29785. <b><code>GroupVolumeU</code></b></a>
  29786. <br /> ErhÜht die aktuelle Gruppenlautstärke um volumeStep-Einheiten.</li>
  29787. <li><a name="SONOSPLAYER_setter_MakeStandaloneGroup">
  29788. <b><code>MakeStandaloneGroup</code></b></a>
  29789. <br />Macht diesen Player zu seiner eigenen Gruppe.</li>
  29790. <li><a name="SONOSPLAYER_setter_RemoveMember">
  29791. <b><code>RemoveMember &lt;devicename&gt;</code></b></a>
  29792. <br />Entfernt dem Device das ßbergebene Device, sodass die beiden keine Gruppe mehr bilden. Die Wiedergabe des aktuellen Devices läuft normal weiter. Das abgetrennte Device stoppt seine Wiedergabe, und hat keine aktuelle Abspielliste mehr (seit Sonos Version 4.2 hat der Player wieder die Playliste von vorher aktiv).</li>
  29793. <li><a name="SONOSPLAYER_setter_SeparateStereoPair">
  29794. <b><code>SeparateStereoPair</code></b></a>
  29795. <br />Trennt das Stereopaar wieder auf.</li>
  29796. <li><a name="SONOSPLAYER_setter_SnapshotGroupVolume">
  29797. <b><code>SnapshotGroupVolume</code></b></a>
  29798. <br /> Legt das Lautstärkeverhältnis der aktuellen Player der Gruppe fßr folgende '''GroupVolume'''-Aufrufe fest. Dieses festgelegte Verhältnis wird bis zum nächsten Aufruf von '''SnapshotGroupVolume''' beibehalten.</li>
  29799. </ul></li>
  29800. </ul>
  29801. <a name="SONOSPLAYERget"></a>
  29802. <h4>Get</h4>
  29803. <ul>
  29804. <li><b>Grundsätzliches</b><ul>
  29805. <li><a name="SONOSPLAYER_getter_Alarm">
  29806. <b><code>Alarm &lt;ID&gt;</code></b></a>
  29807. <br /> Ausnahmefall. Diese Get-Anweisung liefert direkt ein Hash zurĂźck, in welchem die Informationen des Alarms mit der gegebenen ID enthalten sind. Es ist die Kurzform fĂźr <code>eval(ReadingsVal(&lt;Devicename&gt;, 'Alarmlist', ()))->{&lt;ID&gt;};</code>, damit sich nicht jeder ausdenken muss, wie er jetzt am einfachsten an die Alarm-Informationen rankommen kann.</li>
  29808. <li><a name="SONOSPLAYER_getter_EthernetPortStatus">
  29809. <b><code>EthernetPortStatus &lt;PortNumber&gt;</code></b></a>
  29810. <br /> Liefert den Ethernet-Portstatus des gegebenen Ports. Kann 'Active' oder 'Inactive' liefern.</li>
  29811. <li><a name="SONOSPLAYER_getter_PossibleRoomIcons">
  29812. <b><code>PossibleRoomIcons</code></b></a>
  29813. <br /> Liefert eine Liste aller mĂśglichen RoomIcon-Bezeichnungen zurĂźck.</li>
  29814. <li><a name="SONOSPLAYER_getter_SupportLinks">
  29815. <b><code>SupportLinks</code></b></a>
  29816. <br /> Ausnahmefall. Diese Get-Anweisung liefert eine Liste mit passenden Links zu den Supportseiten des Player.</li>
  29817. <li><a name="SONOSPLAYER_getter_WifiPortStatus">
  29818. <b><code>WifiPortStatus</code></b></a>
  29819. <br /> Liefert den Wifi-Portstatus. Kann 'Active' oder 'Inactive' liefern.</li>
  29820. </ul></li>
  29821. <li><b>Listen</b><ul>
  29822. <li><a name="SONOSPLAYER_getter_Favourites">
  29823. <b><code>Favourites</code></b></a>
  29824. <br /> Liefert eine Liste mit den Namen aller gespeicherten Sonos-Favoriten. Das Format der Liste ist eine Komma-Separierte Liste, bei der die Namen in doppelten AnfĂźhrungsstrichen stehen. z.B. "Liste 1","Eintrag 2","Test"</li>
  29825. <li><a name="SONOSPLAYER_getter_FavouritesWithCovers">
  29826. <b><code>FavouritesWithCovers</code></b></a>
  29827. <br /> Liefert die Stringrepräsentation eines Hash mit den Namen und Covern aller gespeicherten Sonos-Favoriten. Z.B.: {'FV:2/22' => {'Cover' => 'urlzumcover', 'Title' => '1. Favorit'}}. Dieser String kann einfach mit '''eval''' in eine Perl-Datenstruktur umgewandelt werden.</li>
  29828. <li><a name="SONOSPLAYER_getter_Playlists">
  29829. <b><code>Playlists</code></b></a>
  29830. <br /> Liefert eine Liste mit den Namen aller gespeicherten Playlists. Das Format der Liste ist eine Komma-Separierte Liste, bei der die Namen in doppelten AnfĂźhrungsstrichen stehen. z.B. "Liste 1","Liste 2","Test"</li>
  29831. <li><a name="SONOSPLAYER_getter_PlaylistsWithCovers">
  29832. <b><code>PlaylistsWithCovers</code></b></a>
  29833. <br /> Liefert die Stringrepräsentation eines Hash mit den Namen und Covern aller gespeicherten Sonos-Playlisten. Z.B.: {'SQ:14' => {'Cover' => 'urlzumcover', 'Title' => '1. Playlist'}}. Dieser String kann einfach mit '''eval''' in eine Perl-Datenstruktur umgewandelt werden.</li>
  29834. <li><a name="SONOSPLAYER_getter_Queue">
  29835. <b><code>Queue</code></b></a>
  29836. <br /> Liefert eine Liste mit den Namen aller Titel in der aktuellen Abspielliste. Das Format der Liste ist eine Komma-Separierte Liste, bei der die Namen in doppelten AnfĂźhrungsstrichen stehen. z.B. "1. Liste 1 [0:02:14]","2. Eintrag 2 [k.A.]","3. Test [0:14:00]"</li>
  29837. <li><a name="SONOSPLAYER_getter_QueueWithCovers">
  29838. <b><code>QueueWithCovers</code></b></a>
  29839. <br /> Liefert die Stringrepräsentation eines Hash mit den Namen und Covern aller Titel der aktuellen Abspielliste. Z.B.: {'Q:0/22' => {'Cover' => 'urlzumcover', 'Title' => '1. Titel'}}. Dieser String kann einfach mit '''eval''' in eine Perl-Datenstruktur umgewandelt werden.</li>
  29840. <li><a name="SONOSPLAYER_getter_Radios">
  29841. <b><code>Radios</code></b></a>
  29842. <br /> Liefert eine Liste mit den Namen aller gespeicherten Radiostationen (Favoriten). Das Format der Liste ist eine Komma-Separierte Liste, bei der die Namen in doppelten AnfĂźhrungsstrichen stehen. z.B. "Sender 1","Sender 2","Test"</li>
  29843. <li><a name="SONOSPLAYER_getter_RadiosWithCovers">
  29844. <b><code>RadiosWithCovers</code></b></a>
  29845. <br /> Liefert die Stringrepräsentation eines Hash mit den Namen und Covern aller gespeicherten Sonos-Radiofavoriten. Z.B.: {'R:0/0/2' => {'Cover' => 'urlzumcover', 'Title' => '1. Radiosender'}}. Dieser String kann einfach mit '''eval''' in eine Perl-Datenstruktur umgewandelt werden.</li>
  29846. <li><a name="SONOSPLAYER_getter_SearchlistCategories">
  29847. <b><code>SearchlistCategories</code></b></a>
  29848. <br /> Liefert eine Liste mit den Namen alle mĂśglichen Kategorien fĂźr den Aufruf von "LoadSearchlist". Das Format der Liste ist eine Komma-Separierte Liste, bei der die Namen in doppelten AnfĂźhrungsstrichen stehen.</li>
  29849. </ul></li>
  29850. <li><b>Informationen zum aktuellen Titel</b><ul>
  29851. <li><a name="SONOSPLAYER_getter_CurrentTrackPosition">
  29852. <b><code>CurrentTrackPosition</code></b></a>
  29853. <br /> Liefert die aktuelle Position innerhalb des Titels.</li>
  29854. </ul></li>
  29855. </ul>
  29856. <a name="SONOSPLAYERattr"></a>
  29857. <h4>Attribute</h4>
  29858. '''Hinweis'''<br />Die Attribute werden erst bei einem Neustart von Fhem verwendet, da diese dem SubProzess initial zur VerfĂźgung gestellt werden mĂźssen.
  29859. <ul>
  29860. <li><b>Grundsätzliches</b><ul>
  29861. <li><a name="SONOSPLAYER_attribut_disable"><b><code>disable &lt;int&gt;</code></b>
  29862. </a><br /> One of (0,1). Deaktiviert die Event-Verarbeitung fĂźr diesen Zoneplayer.</li>
  29863. <li><a name="SONOSPLAYER_attribut_generateSomethingChangedEvent"><b><code>generateSomethingChangedEvent &lt;int&gt;</code></b>
  29864. </a><br /> One of (0,1). 1 wenn ein 'SomethingChanged'-Event erzeugt werden soll. Dieses Event wird immer dann erzeugt, wenn sich irgendein Wert ändert. Dies ist nßtzlich, wenn man immer informiert werden mÜchte, egal, was sich geändert hat.</li>
  29865. <li><a name="SONOSPLAYER_attribut_generateVolumeEvent"><b><code>generateVolumeEvent &lt;int&gt;</code></b>
  29866. </a><br /> One of (0,1). Aktiviert die Generierung eines Events bei Lautstärkeänderungen, wenn minVolume oder maxVolume definiert sind.</li>
  29867. <li><a name="SONOSPLAYER_attribut_generateVolumeSlider"><b><code>generateVolumeSlider &lt;int&gt;</code></b>
  29868. </a><br /> One of (0,1). Aktiviert einen Slider fßr die Lautstärkekontrolle in der Detailansicht.</li>
  29869. <li><a name="SONOSPLAYER_attribut_getAlarms"><b><code>getAlarms &lt;int&gt;</code></b>
  29870. </a><br /> One of (0..1). Richtet eine Callback-Methode fĂźr Alarme ein. Damit wird auch die DailyIndexRefreshTime automatisch aktualisiert.</li>
  29871. <li><a name="SONOSPLAYER_attribut_suppressControlButtons"><b><code>suppressControlButtons &lt;int&gt;</code></b>
  29872. </a><br /> One of (0,1). Gibt an, ob die Steuerbuttons unter der Cover-/Titelanzeige angezeigt werden sollen (=1) oder nicht (=0).</li>
  29873. </ul></li>
  29874. <li><a name="SONOSPLAYER_attribut_volumeStep"><b><code>volumeStep &lt;int&gt;</code></b>
  29875. </a><br /> One of (0..100). Definiert die Schrittweite fĂźr die Aufrufe von <code>VolumeU</code> und <code>VolumeD</code>.</li>
  29876. </ul></li>
  29877. <li><b>Informationen generieren</b><ul>
  29878. <li><a name="SONOSPLAYER_attribut_generateInfoSummarize1"><b><code>generateInfoSummarize1 &lt;string&gt;</code></b>
  29879. </a><br /> Erzeugt das Reading 'InfoSummarize1' mit dem angegebenen Format. Mehr Informationen dazu im Bereich Beispiele.</li>
  29880. <li><a name="SONOSPLAYER_attribut_generateInfoSummarize2"><b><code>generateInfoSummarize2 &lt;string&gt;</code></b>
  29881. </a><br /> Erzeugt das Reading 'InfoSummarize2' mit dem angegebenen Format. Mehr Informationen dazu im Bereich Beispiele.</li>
  29882. <li><a name="SONOSPLAYER_attribut_generateInfoSummarize3"><b><code>generateInfoSummarize3 &lt;string&gt;</code></b>
  29883. </a><br /> Erzeugt das Reading 'InfoSummarize3' mit dem angegebenen Format. Mehr Informationen dazu im Bereich Beispiele.</li>
  29884. <li><a name="SONOSPLAYER_attribut_generateInfoSummarize4"><b><code>generateInfoSummarize4 &lt;string&gt;</code></b>
  29885. </a><br /> Erzeugt das Reading 'InfoSummarize4' mit dem angegebenen Format. Mehr Informationen dazu im Bereich Beispiele.</li>
  29886. <li><a name="SONOSPLAYER_attribut_getTitleInfoFromMaster"><b><code>getTitleInfoFromMaster &lt;int&gt;</code></b>
  29887. </a><br /> Eins aus (0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60). Bringt das Device dazu, seine aktuellen Abspielinformationen vom aktuellen Gruppenmaster zu holen, wenn es einen solchen gibt.</li>
  29888. <li><a name="SONOSPLAYER_attribut_simulateCurrentTrackPosition"><b><code>simulateCurrentTrackPosition &lt;int&gt;</code></b>
  29889. </a><br /> Eins aus (0, 1). Bringt das Device dazu, seine aktuelle Abspielposition simuliert weiterlaufen zu lassen. Dazu werden die Readings <code>currentTrackPositionSimulated</code> und <code>currentTrackPositionSimulatedSec</code> gesetzt. Gleichzeitig wird auch das Reading <code>currentTrackPositionSimulatedPercent</code> (zwischen 0.0 und 100.0) gesetzt.</li>
  29890. <li><a name="SONOSPLAYER_attribut_simulateCurrentTrackPositionPercentFormat"><b><code>simulateCurrentTrackPositionPercentFormat &lt;Format&gt;</code></b>
  29891. </a><br /> Definiert das Format fĂźr die sprintf-Prozentausgabe im Reading <code>currentTrackPositionSimulatedPercent</code>.</li>
  29892. <li><a name="SONOSPLAYER_attribut_stateVariable"><b><code>stateVariable &lt;string&gt;</code></b>
  29893. </a><br /> One of (TransportState,NumberOfTracks,Track,TrackURI,TrackDuration,Title,Artist,Album,OriginalTrackNumber,AlbumArtist,<br />Sender,SenderCurrent,SenderInfo,StreamAudio,NormalAudio,AlbumArtURI,nextTrackDuration,nextTrackURI,nextAlbumArtURI,<br />nextTitle,nextArtist,nextAlbum,nextAlbumArtist,nextOriginalTrackNumber,Volume,Mute,Shuffle,Repeat,RepeatOne,CrossfadeMode,Balance,<br />HeadphoneConnected,SleepTimer,Presence,RoomName,SaveRoomName,PlayerType,Location,SoftwareRevision,SerialNum,InfoSummarize1,I<br />nfoSummarize2,InfoSummarize3,InfoSummarize4). Gibt an, welche Variable in das Reading <code>state</code> kopiert werden soll.</li>
  29894. </ul></li>
  29895. <li><b>Steueroptionen</b><ul>
  29896. <li><a name="SONOSPLAYER_attribut_maxVolume"><b><code>maxVolume &lt;int&gt;</code></b>
  29897. </a><br /> One of (0..100). Definiert die maximale Lautstärke dieses Zoneplayer.</li>
  29898. <li><a name="SONOSPLAYER_attribut_minVolume"><b><code>minVolume &lt;int&gt;</code></b>
  29899. </a><br /> One of (0..100). Definiert die minimale Lautstärke dieses Zoneplayer.</li>
  29900. <li><a name="SONOSPLAYER_attribut_maxVolumeHeadphone"><b><code>maxVolumeHeadphone &lt;int&gt;</code></b>
  29901. </a><br /> One of (0..100). Definiert die maximale Lautstärke dieses Zoneplayer im KopfhÜrerbetrieb.</li>
  29902. <li><a name="SONOSPLAYER_attribut_minVolumeHeadphone"><b><code>minVolumeHeadphone &lt;int&gt;</code></b>
  29903. </a><br /> One of (0..100). Definiert die minimale Lautstärke dieses Zoneplayer im KopfhÜrerbetrieb.</li>
  29904. <li><a name="SONOSPLAYER_attribut_buttonEvents"><b><code>buttonEvents &lt;Time:Pattern&gt;[ &lt;Time:Pattern&gt; ...]</code></b>
  29905. </a><br /> Definiert, dass bei einer bestimten Tastenfolge am Player ein Event erzeugt werden soll. Die Definition der Events erfolgt als Tupel: Der erste Teil vor dem Doppelpunkt ist die Zeit in Sekunden, die berĂźcksichtigt werden soll, der zweite Teil hinter dem Doppelpunkt definiert die Abfolge der Buttons, die fĂźr dieses Event notwendig sind.<br />
  29906. Folgende Button-Kßrzel sind zulässig: <ul><li><b>M</b>: Der Mute-Button</li><li><b>H</b>: Die Headphone-Buchse</li><li><b>U</b>: Up-Button (Lautstärke Hoch)</li><li><b>D</b>: Down-Button (Lautstärke Runter)</li></ul><br />
  29907. Das Event, das geworfen wird, hei�t <code>ButtonEvent</code>, der Wert ist die definierte Tastenfolge<br />
  29908. Z.B.: <code>2:MM</code><br />
  29909. Hier wird definiert, dass ein Event erzeugt werden soll, wenn innerhalb von 2 Sekunden zweimal die Mute-Taste gedrĂźckt wurde. Das damit erzeugte Event hat dann den Namen <code>ButtonEvent</code>, und den Wert <code>MM</code>.</li>
  29910. </ul></li>
  29911. <li><a name="SONOSPLAYER_attribut_saveSleeptimerInAction"><b><code>saveSleeptimerInAction &lt;int&gt;</code></b>
  29912. </a><br /> One of (0..1). Wenn gesetzt, wird ein etwaig gesetztes Attribut "stopSleeptimerInAction" ignoriert.</li>
  29913. <li><a name="SONOSPLAYER_attribut_stopSleeptimerInAction"><b><code>stopSleeptimerInAction &lt;int&gt;</code></b>
  29914. </a><br /> One of (0..1). Wenn gesetzt, wird bei einem Wechsel des transportState auf "PAUSED_PLAYBACK" oder "STOPPED" ein etwaig definierter SleepTimer deaktiviert.</li>
  29915. </ul>
  29916. <a name="SONOSPLAYERexamples"></a>
  29917. <h4>Beispiele / Hinweise</h4>
  29918. <ul>
  29919. <li><a name="SONOSPLAYER_examples_InfoSummarize">Format von InfoSummarize:</a><br />
  29920. <code>infoSummarizeX := &lt;NormalAudio&gt;:summarizeElem:&lt;/NormalAudio&gt; &lt;StreamAudio&gt;:summarizeElem:&lt;/StreamAudio&gt;|:summarizeElem:</code><br />
  29921. <code>:summarizeElem: := &lt;:variable:[ prefix=":text:"][ suffix=":text:"][ instead=":text:"][ ifempty=":text:"]/[ emptyVal=":text:"]&gt;</code><br />
  29922. <code>:variable: := TransportState|NumberOfTracks|Track|TrackURI|TrackDuration|Title|Artist|Album|OriginalTrackNumber|AlbumArtist|<br />Sender|SenderCurrent|SenderInfo|StreamAudio|NormalAudio|AlbumArtURI|nextTrackDuration|nextTrackURI|nextAlbumArtURI|<br />nextTitle|nextArtist|nextAlbum|nextAlbumArtist|nextOriginalTrackNumber|Volume|Mute|Shuffle|Repeat|RepeatOne|CrossfadeMode|Balance|<br />HeadphoneConnected|SleepTimer|Presence|RoomName|SaveRoomName|PlayerType|Location|SoftwareRevision|SerialNum|InfoSummarize1|<br />InfoSummarize2|InfoSummarize3|InfoSummarize4</code><br />
  29923. <code>:text: := [Jeder beliebige Text ohne doppelte AnfĂźhrungszeichen]</code><br /></li>
  29924. </ul>
  29925. <p><a name="SSCam"></a>
  29926. <h3>SSCam</h3>
  29927. <div class='langLinks'>[<a href='commandref.html#SSCam'>EN</a> DE]</div>
  29928. <ul>
  29929. Mit diesem Modul kĂśnnen Operationen von in der Synology Surveillance Station (SVS) definierten Kameras und Funktionen
  29930. der SVS ausgefĂźhrt werden. Es basiert auf der SVS API und unterstĂźtzt die SVS ab Version 7. <br>
  29931. Zur Zeit werden folgende Funktionen unterstĂźtzt: <br><br>
  29932. <ul>
  29933. <ul>
  29934. <li>Start einer Aufnahme</li>
  29935. <li>Stop einer Aufnahme (per Befehl bzw. automatisch nach Ablauf der Aufnahmedauer) </li>
  29936. <li>Aufnehmen eines Schnappschusses und Ablage in der Synology Surveillance Station </li>
  29937. <li>Deaktivieren einer Kamera in Synology Surveillance Station</li>
  29938. <li>Aktivieren einer Kamera in Synology Surveillance Station</li>
  29939. <li>Steuerung der Belichtungsmodi Tag, Nacht bzw. Automatisch </li>
  29940. <li>Umschaltung der Ereigniserkennung durch Kamera, durch SVS oder deaktiviert </li>
  29941. <li>steuern der Erkennungsparameterwerte Empfindlichkeit, Schwellwert, ObjektgrÜ�e und Prozentsatz fßr AuslÜsung </li>
  29942. <li>Abfrage von Kameraeigenschaften (auch mit Polling) sowie den Eigenschaften des installierten SVS-Paketes</li>
  29943. <li>Bewegen an eine vordefinierte Preset-Position (bei PTZ-Kameras) </li>
  29944. <li>Start einer vordefinierten �berwachungstour (bei PTZ-Kameras) </li>
  29945. <li>Positionieren von PTZ-Kameras zu absoluten X/Y-Koordinaten </li>
  29946. <li>kontinuierliche Bewegung von PTZ-Kameras </li>
  29947. <li>auslĂśsen externer Ereignisse 1-10 (Aktionsregel SVS) </li>
  29948. <li>starten und beenden von Kamera-Livestreams incl. Audiowiedergabe, anzeigen der letzten Aufnahme oder des letzten Schnappschusses </li>
  29949. <li>Abruf und Ausgabe der Kamera Streamkeys sowie Stream-Urls (Nutzung von Kamera-Livestreams ohne Session Id) </li>
  29950. <li>abspielen der letzten Aufnahme bzw. Anzeige des letzten Schnappschusses </li>
  29951. <li>anzeigen der gespeicherten Anmeldeinformationen (Credentials) </li>
  29952. <li>Ein- bzw. Ausschalten des Surveillance Station HomeMode und abfragen des HomeMode-Status </li>
  29953. <li>abrufen des Surveillance Station Logs, auswerten des neuesten Eintrags als Reading </li>
  29954. <li>erzeugen einer Gallerie der letzten 1-10 SchnappschĂźsse (als Popup oder permanentes Device) </li>
  29955. <li>Start bzw. Stop Objekt Tracking (nur unterstßtzte PTZ-Kameras mit dieser Fähigkeit) </li>
  29956. <li>Setzen/LĂśschen eines Presets (bei PTZ-Kameras) </li>
  29957. <li>Setzen der Home-Position (bei PTZ-Kameras) </li>
  29958. <li>erstellen eines Paneels zur Kamera-Steuerung. (bei PTZ-Kameras) </li>
  29959. <li>erzeugen unterschiedlicher Typen von separaten Streaming-Devices (createStreamDev) </li>
  29960. <li>Aktivierung / Deaktivierung eines kamerainternen PIR-Sensors </li>
  29961. </ul>
  29962. </ul>
  29963. <br>
  29964. Die Aufnahmen stehen in der Synology Surveillance Station (SVS) zur VerfĂźgung und unterliegen, wie jede andere Aufnahme, den in der Synology Surveillance Station eingestellten Regeln. <br>
  29965. So werden zum Beispiel die Aufnahmen entsprechend ihrer Archivierungsfrist gespeichert und dann gelĂśscht. <br><br>
  29966. Wenn sie Ăźber dieses Modul diskutieren oder zur Verbesserung des Moduls beitragen mĂśchten, ist im FHEM-Forum ein Sammelplatz unter:<br>
  29967. <a href="http://forum.fhem.de/index.php/topic,45671.msg374390.html#msg374390">49_SSCam: Fragen, Hinweise, Neuigkeiten und mehr rund um dieses Modul</a>.<br><br>
  29968. Weitere Infomationen zum Modul sind im FHEM-Wiki zu finden:<br>
  29969. <a href="http://www.fhemwiki.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station">SSCAM - Steuerung von Kameras in Synology Surveillance Station</a>.<br><br>
  29970. <b>Vorbereitung </b> <br><br>
  29971. <ul>
  29972. Dieses Modul nutzt das Perl-Modul JSON. <br>
  29973. Auf Debian-Linux basierenden Systemen kann es installiert werden mit: <br><br>
  29974. <code>sudo apt-get install libjson-perl</code> <br><br>
  29975. Das Modul verwendet fĂźr HTTP-Calls die nichtblockierenden Funktionen von HttpUtils bzw. HttpUtils_NonblockingGet. <br>
  29976. Im DSM bzw. der Synology Surveillance Station mu� ein Nutzer angelegt sein. Die Zugangsdaten werden später ßber ein Set-Kommando dem angelegten Gerät zugewiesen. <br>
  29977. Nähere Informationen dazu unter <a href="#SSCam_Credentials">Credentials</a><br><br>
  29978. �berblick ßber die Perl-Module welche von SSCam genutzt werden: <br><br>
  29979. JSON <br>
  29980. Data::Dumper <br>
  29981. MIME::Base64 <br>
  29982. Time::HiRes <br>
  29983. HttpUtils (FHEM-Modul) <br><br>
  29984. </ul>
  29985. <a name="SSCamdefine"></a>
  29986. <b>Definition</b>
  29987. <ul>
  29988. <br>
  29989. Bei der Definition wird zwischen einer Kamera-Definition und der Definition einer Surveillance Station (SVS), d.h.
  29990. der Applikation selbst auf der Diskstation, unterschieden.
  29991. Abhängig von der Art des definierten Devices wird das Internal MODEL auf "&lt;Hersteller&gt; - &lt;Kameramodell&gt;" oder
  29992. SVS gesetzt und eine passende Teilmenge der beschriebenen set/get-Befehle dem Device zugewiesen. <br>
  29993. Der GĂźltigkeitsbereich von set/get-Befehlen ist nach dem jeweiligen Befehl angegeben "gilt fĂźr CAM, SVS, CAM/SVS".
  29994. <br><br>
  29995. Eine <b>Kamera</b> wird definiert mit: <br><br>
  29996. <ul>
  29997. <b><code>define &lt;Name&gt; SSCAM &lt;Kameraname in SVS&gt; &lt;ServerAddr&gt; [Port] [Protocol]</code></b> <br><br>
  29998. </ul>
  29999. Zunächst mu� diese Kamera in der Synology Surveillance Station 7.0 oder hÜher eingebunden sein und entsprechend
  30000. funktionieren. <br><br>
  30001. Ein <b>SVS-Device</b> zur Steuerung von Funktionen der Surveillance Station wird definiert mit: <br><br>
  30002. <ul>
  30003. <b><code>define &lt;Name&gt; SSCAM SVS &lt;ServerAddr&gt; [Port] [Protocol]</code></b> <br><br>
  30004. </ul>
  30005. In diesem Fall wird statt &lt;Kameraname in SVS&gt; nur <b>SVS</b> angegeben. <br><br>
  30006. Das Modul SSCam basiert auf Funktionen der Synology Surveillance Station API. <br><br>
  30007. Die Parameter beschreiben im Einzelnen:
  30008. <br>
  30009. <br>
  30010. <table>
  30011. <colgroup> <col width=15%> <col width=85%> </colgroup>
  30012. <tr><td><b>Name</b> </td><td>der Name des neuen Gerätes in FHEM</td></tr>
  30013. <tr><td><b>Kameraname</b> </td><td>Kameraname wie er in der Synology Surveillance Station angegeben ist fĂźr Kamera-Device, "SVS" fĂźr SVS-Device. Leerzeichen im Namen sind nicht erlaubt. </td></tr>
  30014. <tr><td><b>ServerAddr</b> </td><td>die IP-Addresse des Synology Surveillance Station Host. Hinweis: Es sollte kein Servername verwendet werden weil DNS-Aufrufe in FHEM blockierend sind.</td></tr>
  30015. <tr><td><b>Port</b> </td><td>optional - der Port der Synology Disc Station. Wenn nicht angegeben, wird der Default-Port "5000" genutzt </td></tr>
  30016. <tr><td><b>Protocol</b> </td><td>optional - das Protokoll (http oder https) zum Funktionsaufruf. Wenn nicht angegeben, wird der Default "http" genutzt </td></tr>
  30017. </table>
  30018. <br><br>
  30019. <b>Beispiel:</b>
  30020. <pre>
  30021. <code>define CamCP SSCAM Carport 192.168.2.20 [5000] [http] </code>
  30022. <code>define CamCP SSCAM Carport 192.168.2.20 [5001] [https]</code>
  30023. # erstellt ein neues Kamera-Device CamCP
  30024. <code>define DS1 SSCAM SVS 192.168.2.20 [5000] [http] </code>
  30025. <code>define DS1 SSCAM SVS 192.168.2.20 [5001] [https] </code>
  30026. # erstellt ein neues SVS-Device DS1
  30027. </pre>
  30028. Wird eine neue Kamera definiert, wird diesem Device zunächst eine Standardaufnahmedauer von 15 zugewiesen. <br>
  30029. �ber das <a href="#SSCamattr">Attribut</a> "rectime" kann die Aufnahmedauer fßr jede Kamera individuell angepasst werden. Der Wert "0" fßr "rectime" fßhrt zu einer Endlosaufnahme, die durch "set &lt;name&gt; off" wieder gestoppt werden mu�. <br>
  30030. Ein Logeintrag mit einem entsprechenden Hinweis auf diesen Umstand wird geschrieben. <br><br>
  30031. Wird das <a href="#SSCamattr">Attribut</a> "rectime" gelĂśscht, greift wieder der Default-Wert (15s) fĂźr die Aufnahmedauer. <br><br>
  30032. Mit dem <a href="#SSCamset">Befehl</a> <b>"set &lt;name&gt; on [rectime]"</b> wird die Aufnahmedauer temporär festgelegt und ßberschreibt einmalig sowohl den Defaultwert als auch den Wert des gesetzten Attributs "rectime". <br>
  30033. Auch in diesem Fall fĂźhrt <b>"set &lt;name&gt; on 0"</b> zu einer Daueraufnahme. <br><br>
  30034. Eine eventuell in der SVS eingestellte Dauer der Voraufzeichnung wird weiterhin berĂźcksichtigt. <br><br>
  30035. Erkennt das Modul die definierte Kamera als PTZ-Device (Reading "DeviceType = PTZ"), wird automatisch ein
  30036. Steuerungspaneel in der Detailansicht erstellt. Dieses Paneel setzt SVS >= 7.1 voraus. Die Eigenschaften und das
  30037. Verhalten des Paneels kĂśnnen mit den <a href="#SSCamattr">Attributen</a> "ptzPanel_.*" beeinflusst werden. <br>
  30038. Siehe dazu auch den <a href="#SSCamset">Befehl</a> <b>"set &lt;name&gt; createPTZcontrol"</b>.
  30039. <br><br><br>
  30040. </ul>
  30041. <a name="SSCam_Credentials"></a>
  30042. <b>Credentials </b><br><br>
  30043. <ul>
  30044. Nach dem Definieren des Gerätes mßssen zuerst die Zugangsparameter gespeichert werden. Das geschieht mit dem Befehl:
  30045. <pre>
  30046. set &lt;name&gt; credentials &lt;Username&gt; &lt;Passwort&gt;
  30047. </pre>
  30048. Die Passwortlänge beträgt maximal 20 Zeichen. <br>
  30049. Der Anwender kann in Abhängigkeit der beabsichtigten einzusetzenden Funktionen einen Nutzer im DSM bzw. in der Surveillance
  30050. Station einrichten. <br>
  30051. Ist der DSM-Nutzer der Gruppe Administratoren zugeordnet, hat er auf alle Funktionen Zugriff. Ohne diese GruppenzugehĂśrigkeit
  30052. kĂśnnen nur Funktionen mit niedrigeren Rechtebedarf ausgefĂźhrt werden. Die benĂśtigten Mindestrechte der Funktionen sind in
  30053. der Tabelle weiter unten aufgefĂźhrt. <br>
  30054. Alternativ zum DSM-Nutzer kann ein in der SVS angelegter Nutzer verwendet werden. Auch in diesem Fall hat ein Nutzer vom
  30055. Typ Manager das Recht alle Funktionen auszufßhren, wobei der Zugriff auf bestimmte Kameras/ im Privilegienprofil beschränkt
  30056. werden kann (siehe Hilfefunktion in SVS). <br>
  30057. Als Best Practice wird vorgeschlagen, jeweils einen User im DSM und einen in der SVS anzulegen: <br><br>
  30058. <ul>
  30059. <li>DSM-User als Mitglied der Admin-Gruppe: uneingeschränkter Test aller Modulfunktionen -> session: DSM </li>
  30060. <li>SVS-User als Manager oder Betrachter: angepasstes Privilegienprofil -> session: SurveillanceStation </li>
  30061. </ul>
  30062. <br>
  30063. �ber das <a href="#SSCamattr">Attribut</a> "session" kann ausgewählt werden, ob die Session mit dem DSM oder der SVS
  30064. aufgebaut werden soll. Weitere Informationen zum Usermanagement in der SVS sind verfĂźgbar mit
  30065. "get &lt;name&gt; versionNotes 5".<br>
  30066. Erfolgt der Session-Aufbau mit dem DSM, stehen neben der SVS Web-API auch darĂźber hinausgehende API-Zugriffe zur VerfĂźgung,
  30067. die unter Umständen zur Verarbeitung benÜtigt werden. <br><br>
  30068. Nach der Gerätedefinition ist die Grundeinstellung "Login in das DSM", d.h. es kÜnnen Credentials mit Admin-Berechtigungen
  30069. genutzt werden um zunächst alle Funktionen der Kameras testen zu kÜnnen. Danach kÜnnen die Credentials z.B. in Abhängigkeit
  30070. der benÜtigten Funktionen auf eine SVS-Session mit entsprechend beschränkten Privilegienprofil umgestellt werden. <br><br>
  30071. Die nachfolgende Aufstellung zeigt die <b>Mindestanforderungen</b> der jeweiligen Modulfunktionen an die Nutzerrechte. <br><br>
  30072. <ul>
  30073. <table>
  30074. <colgroup> <col width=20%> <col width=80%> </colgroup>
  30075. <tr><td><li>set ... credentials </td><td> - </li></td></tr>
  30076. <tr><td><li>set ... delPreset </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30077. <tr><td><li>set ... disable </td><td> session: ServeillanceStation - Manager </li></td></tr>
  30078. <tr><td><li>set ... enable </td><td> session: ServeillanceStation - Manager </li></td></tr>
  30079. <tr><td><li>set ... expmode </td><td> session: ServeillanceStation - Manager </li></td></tr>
  30080. <tr><td><li>set ... extevent </td><td> session: DSM - Nutzer Mitglied von Admin-Gruppe </li></td></tr>
  30081. <tr><td><li>set ... goPreset </td><td> session: ServeillanceStation - Betrachter mit Privileg Objektivsteuerung der Kamera </li></td></tr>
  30082. <tr><td><li>set ... homeMode </td><td> session: ServeillanceStation - Betrachter mit Privileg Home-Modus schalten ( gilt fĂźr <b>SVS-Device !</b> ) </li></td></tr>
  30083. <tr><td><li>set ... goAbsPTZ </td><td> session: ServeillanceStation - Betrachter mit Privileg Objektivsteuerung der Kamera </li></td></tr>
  30084. <tr><td><li>set ... move </td><td> session: ServeillanceStation - Betrachter mit Privileg Objektivsteuerung der Kamera </li></td></tr>
  30085. <tr><td><li>set ... motdetsc </td><td> session: ServeillanceStation - Manager </li></td></tr>
  30086. <tr><td><li>set ... on </td><td> session: ServeillanceStation - Betrachter mit erweiterten Privileg "manuelle Aufnahme" </li></td></tr>
  30087. <tr><td><li>set ... off </td><td> session: ServeillanceStation - Betrachter mit erweiterten Privileg "manuelle Aufnahme" </li></td></tr>
  30088. <tr><td><li>set ... runView </td><td> session: ServeillanceStation - Betrachter mit Privileg Liveansicht fĂźr Kamera </li></td></tr>
  30089. <tr><td><li>set ... runPatrol </td><td> session: ServeillanceStation - Betrachter mit Privileg Objektivsteuerung der Kamera </li></td></tr>
  30090. <tr><td><li>set ... setHome </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30091. <tr><td><li>set ... setPreset </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30092. <tr><td><li>set ... snap </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30093. <tr><td><li>set ... snapGallery </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30094. <tr><td><li>set ... stopView </td><td> - </li></td></tr>
  30095. <tr><td><li>get ... caminfo[all] </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30096. <tr><td><li>get ... eventlist </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30097. <tr><td><li>get ... listLog </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30098. <tr><td><li>get ... listPresets </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30099. <tr><td><li>get ... scanVirgin </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30100. <tr><td><li>get ... svsinfo </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30101. <tr><td><li>get ... snapfileinfo </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30102. <tr><td><li>get ... snapGallery </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30103. <tr><td><li>get ... snapinfo </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30104. <tr><td><li>get ... stmUrlPath </td><td> session: ServeillanceStation - Betrachter </li></td></tr>
  30105. </table>
  30106. </ul>
  30107. <br><br>
  30108. </ul>
  30109. <a name="SSCam_HTTPTimeout"></a>
  30110. <b>HTTP-Timeout setzen</b><br><br>
  30111. <ul>
  30112. Alle Funktionen dieses Moduls verwenden HTTP-Aufrufe gegenĂźber der SVS Web API. <br>
  30113. Der Standardwert fßr den HTTP-Timeout beträgt 4 Sekunden. Durch Setzen des
  30114. <a href="#SSCamattr">Attributes</a> "httptimeout" > 0 kann dieser Wert bei Bedarf entsprechend den technischen
  30115. Gegebenheiten angepasst werden. <br>
  30116. </ul>
  30117. <br><br><br>
  30118. <a name="SSCamset"></a>
  30119. <b>Set </b>
  30120. <ul>
  30121. <br>
  30122. Die aufgefĂźhrten set-Befehle sind fĂźr CAM/SVS-Devices oder nur fĂźr CAM-Devices bzw. nur fĂźr SVS-Devices gĂźltig. Sie stehen im
  30123. Drop-Down-MenĂź des jeweiligen Devices zur Auswahl zur VerfĂźgung. <br><br>
  30124. <ul>
  30125. <a name="SSCamcreateStreamDev"></a>
  30126. <li><b> set &lt;name&gt; createStreamDev [generic | mjpeg | switched] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30127. Es wird ein separates Streaming-Device (Typ SSCamSTRM) erstellt. Dieses Device kann z.B. als separates Device
  30128. in einem Dashboard genutzt werden.
  30129. Dem Streaming-Device wird der aktuelle Raum des Kameradevice zugewiesen sofern dort gesetzt.
  30130. <br><br>
  30131. <ul>
  30132. <table>
  30133. <colgroup> <col width=10%> <col width=90%> </colgroup>
  30134. <tr><td>generic </td><td>- das Streaming-Device gibt einen durch das Attribut "genericStrmHtmlTag" bestimmten Content wieder </td></tr>
  30135. <tr><td>mjpeg </td><td>- das Streaming-Device gibt einen permanenten MJPEG Kamerastream wieder (Streamkey Methode) </td></tr>
  30136. <tr><td>switched </td><td>- Wiedergabe unterschiedlicher Streamtypen. Drucktasten zur Steuerung werden angeboten. </td></tr>
  30137. </table>
  30138. </ul>
  30139. <br><br>
  30140. Die Gestaltung kann durch HTML-Tags im <a href="#SSCamattr">Attribut</a> "htmlattr" im Kameradevice oder mit den
  30141. spezifischen Attributen im Streaming-Device beeinflusst werden. <br>
  30142. Soll ein HLS-Stream im Streaming-Device vom Typ "switched" gestartet werden, muss die Kamera in der Synology Surveillance Station
  30143. auf das Videoformat H.264 eingestellt und HLS von der eingesetzten SVS-Version unterstĂźtzt sein.
  30144. Diese Auswahltaste wird deshalb im nur im Streaming-Device angeboten wenn das Reading "CamStreamFormat = HLS" beinhaltet. <br>
  30145. HLS (HTTP Live Streaming) kann momentan nur auf Mac Safari oder mobilen iOS/Android-Geräten wiedergegeben werden. <br>
  30146. Im "switched"-Device werden Drucktasten zur Steuerung des zu startenden Medientyps angeboten. <br>
  30147. Ein Streaming-Device vom Typ "generic" benĂśtigt die Angabe von HTML-Tags im Attribut "genericStrmHtmlTag". Diese Tags
  30148. spezifizieren den wiederzugebenden Content. <br><br>
  30149. <ul>
  30150. <b>Beispiel:</b>
  30151. <pre>
  30152. attr &lt;name&gt; genericStrmHtmlTag &lt;video $HTMLATTR controls autoplay&gt;
  30153. &lt;source src='http://192.168.2.10:32000/$NAME.m3u8' type='application/x-mpegURL'&gt;
  30154. &lt;/video&gt;
  30155. </pre>
  30156. Die Variablen $HTMLATTR, $NAME sind Platzhalter und Ăźbernehmen ein gesetztes Attribut "htmlattr" bzw. den SSCam-Devicenamen.
  30157. </ul>
  30158. </ul>
  30159. <br><br>
  30160. <ul>
  30161. <li><b> set &lt;name&gt; createPTZcontrol </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr PTZ-CAM)</li> <br>
  30162. Es wird ein separates PTZ-Steuerungspaneel (Type SSCamSTRM) erstellt. Es wird der aktuelle Raum des Kameradevice
  30163. zugewiesen sofern dort gesetzt.
  30164. Mit den "ptzPanel_.*"-<a href="#SSCamattr">Attributen</a> bzw. den spezifischen Attributen des erzeugten
  30165. SSCamSTRM-Devices kĂśnnen die Eigenschaften des PTZ-Paneels beeinflusst werden. <br>
  30166. <br><br>
  30167. </ul>
  30168. <ul>
  30169. <li><b> set &lt;name&gt; createSnapGallery </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30170. Es wird eine Schnappschu�gallerie als separates Device (Type SSCamSTRM) erzeugt. Das Device wird im Raum
  30171. "SnapGallery" erstellt.
  30172. Mit den "snapGallery..."-<a href="#SSCamattr">Attributen</a> bzw. den spezifischen Attributen des erzeugten SSCamSTRM-Devices
  30173. kÜnnen die Eigenschaften der Schnappschu�gallerie beeinflusst werden. <br>
  30174. <br><br>
  30175. </ul>
  30176. <ul>
  30177. <li><b> set &lt;name&gt; credentials &lt;username&gt; &lt;password&gt; </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM/SVS)</li> <br>
  30178. Setzt Username / Passwort fĂźr den Zugriff auf die Synology Surveillance Station.
  30179. Siehe <a href="#SSCam_Credentials">Credentials</a><br>
  30180. <br><br>
  30181. </ul>
  30182. <ul>
  30183. <li><b> set &lt;name&gt; delPreset &lt;PresetName&gt; </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr PTZ-CAM)</li> <br>
  30184. LĂśscht einen Preset "&lt;PresetName&gt;". Im FHEMWEB wird eine Drop-Down Liste der aktuell vorhandenen
  30185. Presets angeboten.
  30186. </ul>
  30187. <br><br>
  30188. <ul>
  30189. <li><b> set &lt;name&gt; [enable|disable] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30190. Aktviviert / deaktiviert eine Kamera. <br>
  30191. Um eine Liste von Kameras oder alle Kameras (mit Regex) zum Beispiel um 21:46 zu <b>deaktivieren</b> / zu <b>aktivieren</b> zwei Beispiele mit at:
  30192. <pre>
  30193. define a13 at 21:46 set CamCP1,CamFL,CamHE1,CamTER disable (enable)
  30194. define a14 at 21:46 set Cam.* disable (enable)
  30195. </pre>
  30196. Etwas komfortabler gelingt das Schalten aller Kameras ßber einen Dummy. Zunächst wird der Dummy angelegt:
  30197. <pre>
  30198. define allcams dummy
  30199. attr allcams eventMap on:enable off:disable
  30200. attr allcams room Cams
  30201. attr allcams webCmd enable:disable
  30202. </pre>
  30203. Durch VerknĂźpfung mit zwei angelegten notify, jeweils ein notify fĂźr "enable" und "disable", kann man durch Schalten des Dummys auf "enable" bzw. "disable" alle Kameras auf einmal aktivieren bzw. deaktivieren.
  30204. <pre>
  30205. define all_cams_disable notify allcams:.*off set CamCP1,CamFL,CamHE1,CamTER disable
  30206. attr all_cams_disable room Cams
  30207. define all_cams_enable notify allcams:on set CamCP1,CamFL,CamHE1,CamTER enable
  30208. attr all_cams_enable room Cams
  30209. </pre>
  30210. </ul>
  30211. <br>
  30212. <ul>
  30213. <li><b> set &lt;name&gt; expmode [day|night|auto] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30214. Mit diesem Befehl kann der Belichtungsmodus der Kameras gesetzt werden. Dadurch wird z.B. das Verhalten der Kamera-LED's entsprechend gesteuert.
  30215. Die erfolgreiche Umschaltung wird durch das Reading CamExposureMode ("get ... caminfoall") reportet. <br><br>
  30216. <b> Hinweis: </b> <br>
  30217. Die erfolgreiche Ausfßhrung dieser Funktion ist davon abhängig ob die SVS diese Funktionalität der Kamera unterstßtzt.
  30218. Ist in SVS -&gt; IP-Kamera -&gt; Optimierung -&gt; Belichtungsmodus das Feld fßr den Tag/Nachtmodus grau hinterlegt, ist nicht von einer lauffähigen Unterstßtzung dieser
  30219. Funktion auszugehen.
  30220. <br><br>
  30221. </ul>
  30222. <ul>
  30223. <li><b> set &lt;name&gt; extevent [ 1-10 ] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr SVS)</li> <br>
  30224. Dieses Kommando triggert ein externes Ereignis (1-10) in der SVS.
  30225. Die Aktionen, die dieses Ereignis auslĂśst, sind zuvor in dem Aktionsregeleditor der SVS einzustellen. Es stehen die Ereignisse
  30226. 1-10 zur VerfĂźgung.
  30227. In der Benachrichtigungs-App der SVS kĂśnnen auch Email, SMS oder Mobil (DS-Cam) Nachrichten ausgegeben werden wenn ein externes
  30228. Ereignis ausgelĂśst wurde.
  30229. Nähere Informationen dazu sind in der Hilfe zum Aktionsregeleditor zu finden.
  30230. Der verwendete User benĂśtigt Admin-Rechte in einer DSM-Session.
  30231. </ul>
  30232. <br><br>
  30233. <ul>
  30234. <li><b> set &lt;name&gt; goAbsPTZ [ X Y | up | down | left | right ] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30235. Mit diesem Kommando wird eine PTZ-Kamera in Richtung einer wählbaren absoluten X/Y-Koordinate bewegt, oder zur maximalen Absolutposition in Richtung up/down/left/right.
  30236. Die Option ist nur fßr Kameras verfßgbar die das Reading "CapPTZAbs=true" (die Fähigkeit fßr PTZAbs-Aktionen) besitzen. Die Eigenschaften der Kamera kann mit "get &lt;name&gt; caminfoall" abgefragt werden.
  30237. <br><br>
  30238. Beispiel fĂźr Ansteuerung absoluter X/Y-Koordinaten: <br>
  30239. <pre>
  30240. set &lt;name&gt; goAbsPTZ 120 450
  30241. </pre>
  30242. Dieses Beispiel bewegt die Kameralinse in die Position X=120 und Y=450. <br>
  30243. Der Wertebereich ist dabei:
  30244. <pre>
  30245. X = 0 - 640 (0 - 319 bewegt nach links, 321 - 640 bewegt nach rechts, 320 bewegt die Linse nicht)
  30246. Y = 0 - 480 (0 - 239 bewegt nach unten, 241 - 480 bewegt nach oben, 240 bewegt die Linse nicht)
  30247. </pre>
  30248. Die Linse kann damit in kleinsten bis sehr gro�en Schritten in die gewßnschte Richtung bewegt werden.
  30249. Dieser Vorgang mu� ggf. mehrfach wiederholt werden um die Kameralinse in die gewßnschte Position zu bringen. <br><br>
  30250. Soll die Bewegung mit der maximalen Schrittweite erfolgen, kann zur Vereinfachung der Befehl:
  30251. <pre>
  30252. set &lt;name&gt; goAbsPTZ [up|down|left|right]
  30253. </pre>
  30254. verwendet werden. Die Optik wird in diesem Fall mit der grÜ�t mÜglichen Schrittweite zur Absolutposition in der angegebenen Richtung bewegt.
  30255. Auch in diesem Fall mu� der Vorgang ggf. mehrfach wiederholt werden um die Kameralinse in die gewßnschte Position zu bringen.
  30256. </ul>
  30257. <br><br>
  30258. <ul>
  30259. <li><b> set &lt;name&gt; goPreset &lt;Preset&gt; </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30260. Mit diesem Kommando kĂśnnen PTZ-Kameras in eine vordefininierte Position bewegt werden. <br>
  30261. Die Preset-Positionen mßssen dazu zunächst in der Synology Surveillance Station angelegt worden sein. Das geschieht in der PTZ-Steuerung im IP-Kamera Setup.
  30262. Die Presets werden Ăźber das Kommando "get &lt;name&gt; caminfoall" eingelesen (geschieht bei restart von FHEM automatisch). Der Einlesevorgang kann durch ein Kamerapolling
  30263. regelmä�ig wiederholt werden. Ein langes Pollingintervall ist in diesem Fall empfehlenswert, da sich die Presetpositionen nur im Fall der Neuanlage bzw. �nderung verändern werden.
  30264. <br><br>
  30265. Hier ein Beispiel einer PTZ-Steuerung in Abhängigkeit eines IR-Melder Events:
  30266. <pre>
  30267. define CamFL.Preset.Wandschrank notify MelderTER:on.* set CamFL goPreset Wandschrank, ;; define CamFL.Preset.record at +00:00:10 set CamFL on 5 ;;;; define s3 at +*{3}00:00:05 set CamFL snap ;; define CamFL.Preset.back at +00:00:30 set CamFL goPreset Home
  30268. </pre>
  30269. Funktionsweise: <br>
  30270. Der IR-Melder "MelderTER" registriert eine Bewegung. Daraufhin wird die Kamera CamFL in die Preset-Position "Wandschrank" gebracht. Eine Aufnahme mit Dauer von 5 Sekunden startet 10 Sekunden
  30271. später. Da die Voraufnahmezeit der Kamera 10s beträgt (vgl. Reading "CamPreRecTime"), startet die effektive Aufnahme wenn der Kameraschwenk beginnt. <br>
  30272. Mit dem Start der Aufnahme werden drei SchnappschĂźsse im Abstand von 5 Sekunden angefertigt. <br>
  30273. Nach einer Zeit von 30 Sekunden fährt die Kamera wieder zurßck in die "Home"-Position. <br><br>
  30274. Ein Auszug aus dem Log verdeutlicht den Ablauf:
  30275. <pre>
  30276. 2016.02.04 15:02:14 2: CamFL - Camera Flur_Vorderhaus has moved to position "Wandschrank"
  30277. 2016.02.04 15:02:24 2: CamFL - Camera Flur_Vorderhaus Recording with Recordtime 5s started
  30278. 2016.02.04 15:02:29 2: CamFL - Snapshot of Camera Flur_Vorderhaus has been done successfully
  30279. 2016.02.04 15:02:30 2: CamFL - Camera Flur_Vorderhaus Recording stopped
  30280. 2016.02.04 15:02:34 2: CamFL - Snapshot of Camera Flur_Vorderhaus has been done successfully
  30281. 2016.02.04 15:02:39 2: CamFL - Snapshot of Camera Flur_Vorderhaus has been done successfully
  30282. 2016.02.04 15:02:44 2: CamFL - Camera Flur_Vorderhaus has moved to position "Home"
  30283. </pre>
  30284. </ul>
  30285. <br><br>
  30286. <ul>
  30287. <li><b> set &lt;name&gt; homeMode [on|off] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr SVS)</li> <br>
  30288. Schaltet den HomeMode der Surveillance Station ein bzw. aus.
  30289. Informationen zum HomeMode sind in der <a href="https://www.synology.com/de-de/knowledgebase/Surveillance/help/SurveillanceStation/home_mode">Synology Onlinehilfe</a>
  30290. enthalten.
  30291. <br><br>
  30292. </ul>
  30293. <ul>
  30294. <li><b> set &lt;name&gt; motdetsc [camera|SVS|disable] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30295. Der Befehl "motdetsc" (steht fĂźr motion detection source) schaltet die Bewegungserkennung in den gewĂźnschten Modus.
  30296. Wird die Bewegungserkennung durch die Kamera / SVS ohne weitere Optionen eingestellt, werden die momentan gĂźltigen Bewegungserkennungsparameter der
  30297. Kamera / SVS beibehalten. Die erfolgreiche Ausfßhrung der Operation lässt sich u.a. anhand des Status von SVS -&gt; IP-Kamera -&gt; Ereigniserkennung -&gt;
  30298. Bewegung nachvollziehen. <br><br>
  30299. FĂźr die Bewegungserkennung durch SVS bzw. durch Kamera kĂśnnen weitere Optionen angegeben werden. Die verfĂźgbaren Optionen bezĂźglich der Bewegungserkennung
  30300. durch SVS sind "Empfindlichkeit" und "Schwellwert". <br><br>
  30301. <ul>
  30302. <table>
  30303. <colgroup> <col width=50%> <col width=50%> </colgroup>
  30304. <tr><td>set &lt;name&gt; motdetsc SVS [Empfindlichkeit] [Schwellwert] </td><td># Befehlsmuster </td></tr>
  30305. <tr><td>set &lt;name&gt; motdetsc SVS 91 30 </td><td># setzt die Empfindlichkeit auf 91 und den Schwellwert auf 30 </td></tr>
  30306. <tr><td>set &lt;name&gt; motdetsc SVS 0 40 </td><td># behält gesetzten Wert fßr Empfindlichkeit bei, setzt Schwellwert auf 40 </td></tr>
  30307. <tr><td>set &lt;name&gt; motdetsc SVS 15 </td><td># setzt die Empfindlichkeit auf 15, Schwellwert bleibt unverändert </td></tr>
  30308. </table>
  30309. </ul>
  30310. <br><br>
  30311. Wird die Bewegungserkennung durch die Kamera genutzt, stehen die Optionen "Empfindlichkeit", "ObjektgrÜ�e" und "Prozentsatz fßr AuslÜsung" zur Verfßgung. <br><br>
  30312. <ul>
  30313. <table>
  30314. <colgroup> <col width=50%> <col width=50%> </colgroup>
  30315. <tr><td>set &lt;name&gt; motdetsc camera [Empfindlichkeit] [Schwellwert] [Prozentsatz] </td><td># Befehlsmuster </td></tr>
  30316. <tr><td>set &lt;name&gt; motdetsc camera 89 0 20 </td><td># setzt die Empfindlichkeit auf 89, Prozentsatz auf 20 </td></tr>
  30317. <tr><td>set &lt;name&gt; motdetsc camera 0 40 10 </td><td># behält gesetzten Wert fßr Empfindlichkeit bei, setzt Schwellwert auf 40, Prozentsatz auf 10 </td></tr>
  30318. <tr><td>set &lt;name&gt; motdetsc camera 30 </td><td># setzt die Empfindlichkeit auf 30, andere Werte bleiben unverändert </td></tr>
  30319. </table>
  30320. </ul>
  30321. <br><br>
  30322. Es ist immer die Reihenfolge der Optionswerte zu beachten. Nicht gewĂźnschte Optionen sind mit "0" zu besetzen sofern danach Optionen folgen
  30323. deren Werte verändert werden sollen (siehe Beispiele oben). Der Zahlenwert der Optionen beträgt 1 - 99 (au�er Sonderfall "0"). <br><br>
  30324. Die jeweils verfĂźgbaren Optionen unterliegen der Funktion der Kamera und der UnterstĂźtzung durch die SVS. Es kĂśnnen jeweils nur die Optionen genutzt werden die in
  30325. SVS -&gt; Kamera bearbeiten -&gt; Ereigniserkennung zur VerfĂźgung stehen. Weitere Infos sind der Online-Hilfe zur SVS zu entnehmen. <br><br>
  30326. �ber den Befehl "get &lt;name&gt; caminfoall" wird auch das <a href="#SSCamreadings">Reading</a> "CamMotDetSc" aktualisiert welches die gegenwärtige Einstellung der Bewegungserkennung dokumentiert.
  30327. Es werden nur die Parameter und Parameterwerte angezeigt, welche die SVS aktiv unterstĂźtzt. Die Kamera selbst kann weiterfĂźhrende EinstellmĂśglichkeiten besitzen. <br><br>
  30328. Beipiel:
  30329. <pre>
  30330. CamMotDetSc SVS, sensitivity: 76, threshold: 55
  30331. </pre>
  30332. <br><br>
  30333. </ul>
  30334. <ul>
  30335. <li><b> set &lt;name&gt; move [ right | up | down | left | dir_X ] [Sekunden] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM bis SVS Version 7.1)</li>
  30336. <b> set &lt;name&gt; move [ right | upright | up | upleft | left | downleft | down | downright ] [Sekunden] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM ab SVS Version 7.2) <br><br>
  30337. Mit diesem Kommando wird eine kontinuierliche Bewegung der PTZ-Kamera gestartet. Neben den vier Grundrichtungen up/down/left/right stehen auch
  30338. Zwischenwinkelma�e "dir_X" zur Verfßgung. Die Feinheit dieser Graduierung ist von der Kamera abhängig und kann dem Reading "CapPTZDirections" entnommen werden. <br><br>
  30339. Das Bogenma� von 360 Grad teilt sich durch den Wert von "CapPTZDirections" und beschreibt die Bewegungsrichtungen beginnend mit "0=rechts" entgegen dem
  30340. Uhrzeigersinn. D.h. bei einer Kamera mit "CapPTZDirections = 8" bedeutet dir_0 = rechts, dir_2 = oben, dir_4 = links, dir_6 = unten bzw. dir_1, dir_3, dir_5 und dir_7
  30341. die entsprechenden Zwischenrichtungen. Die mĂśglichen Bewegungsrichtungen bei Kameras mit "CapPTZDirections = 32" sind dementsprechend kleinteiliger. <br><br>
  30342. Im Gegensatz zum "set &lt;name&gt; goAbsPTZ"-Befehl startet der Befehl "set &lt;name&gt; move" eine kontinuierliche Bewegung bis ein Stop-Kommando empfangen wird.
  30343. Das Stop-Kommando wird nach Ablauf der optional anzugebenden Zeit [Sekunden] ausgelĂśst. Wird diese Laufzeit nicht angegeben, wird implizit Sekunde = 1 gesetzt. <br><br>
  30344. <b>Beispiele: </b><br>
  30345. <pre>
  30346. set &lt;name&gt; move up 0.5 : bewegt PTZ 0,5 Sek. (zzgl. Prozesszeit) nach oben
  30347. set &lt;name&gt; move dir_1 1.5 : bewegt PTZ 1,5 Sek. (zzgl. Prozesszeit) nach rechts-oben
  30348. set &lt;name&gt; move dir_20 0.7 : bewegt PTZ 1,5 Sek. (zzgl. Prozesszeit) nach links-unten ("CapPTZDirections = 32)"
  30349. </pre>
  30350. </ul>
  30351. <br><br>
  30352. <ul>
  30353. <li><b> set &lt;name&gt; [on [&lt;rectime&gt;] | off] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li><br>
  30354. Der Befehl "set &lt;name&gt; on" startet eine Aufnahme. Die Standardaufnahmedauer beträgt 15 Sekunden. Sie kann mit dem
  30355. Attribut "rectime" individuell festgelegt werden.
  30356. Die im Attribut (bzw. im Standard) hinterlegte Aufnahmedauer kann einmalig mit "set &lt;name&gt; on &lt;rectime&gt;"
  30357. Ăźberschrieben werden.
  30358. Die Aufnahme stoppt automatisch nach Ablauf der Zeit "rectime".<br>
  30359. Ein Sonderfall ist der Start einer Daueraufnahme mit "set &lt;name&gt; on 0" bzw. dem Attributwert "rectime = 0".
  30360. In diesem Fall wird eine Daueraufnahme gestartet, die explizit wieder mit dem Befehl "set &lt;name&gt; off" gestoppt
  30361. werden mu�.<br>
  30362. Das Aufnahmeverhalten kann weiterhin mit dem Attribut "recextend" beeinflusst werden.<br><br>
  30363. <b>Attribut "recextend = 0" bzw. nicht gesetzt (Standard):</b><br><br>
  30364. <ul>
  30365. <li> wird eine Aufnahme mit z.B. rectime=22 gestartet, wird kein weiterer Startbefehl fĂźr eine Aufnahme akzeptiert bis diese gestartete Aufnahme nach 22 Sekunden
  30366. beendet ist. Ein Hinweis wird bei verbose=3 im Logfile protokolliert. </li>
  30367. </ul>
  30368. <br>
  30369. <b>Attribut "recextend = 1" gesetzt:</b><br>
  30370. <ul>
  30371. <li> eine zuvor gestartete Aufnahme wird bei einem erneuten "set <name> on" -Befehl um die Aufnahmezeit "rectime" verlängert. Das bedeutet, dass der Timer fßr
  30372. den automatischen Stop auf den Wert "rectime" neu gesetzt wird. Dieser Vorgang wiederholt sich mit jedem Start-Befehl. Dadurch verlängert sich eine laufende
  30373. Aufnahme bis kein Start-Inpuls mehr registriert wird. </li>
  30374. <li> eine zuvor gestartete Endlos-Aufnahme wird mit einem erneuten "set <name> on"-Befehl nach der Aufnahmezeit "rectime" gestoppt (Timerneustart). Ist dies
  30375. nicht gewĂźnscht, ist darauf zu achten dass bei der Verwendung einer Endlos-Aufnahme das Attribut "recextend" nicht verwendet wird. </li>
  30376. </ul>
  30377. <br>
  30378. Beispiele fĂźr einfachen <b>Start/Stop einer Aufnahme</b>: <br><br>
  30379. <table>
  30380. <colgroup> <col width=20%> <col width=80%> </colgroup>
  30381. <tr><td>set &lt;name&gt; on [rectime] </td><td>startet die Aufnahme der Kamera &lt;name&gt;, automatischer Stop der Aufnahme nach Ablauf der Zeit [rectime] (default 15s oder wie im <a href="#SSCamattr">Attribut</a> "rectime" angegeben)</td></tr>
  30382. <tr><td>set &lt;name&gt; off </td><td>stoppt die Aufnahme der Kamera &lt;name&gt;</td></tr>
  30383. </table>
  30384. </ul>
  30385. <br><br>
  30386. <ul>
  30387. <li><b> set &lt;name&gt; optimizeParams [mirror:&lt;value&gt;] [flip:&lt;value&gt;] [rotate:&lt;value&gt;] [ntp:&lt;value&gt;]</b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30388. Setzt eine oder mehrere Eigenschaften fĂźr die Kamera. Das Video kann gespiegelt (mirror), auf den Kopf gestellt (flip) oder
  30389. gedreht (rotate) werden. Die jeweiligen Eigenschaften mĂźssen von der Kamera unterstĂźtzt werden. Mit "ntp" wird der Zeitserver
  30390. eingestellt den die Kamera zur Zeitsynchronisation verwendet. <br><br>
  30391. &lt;value&gt; kann sein fĂźr: <br>
  30392. <ul>
  30393. <li> <b>mirror, flip, rotate: </b> true | false </li>
  30394. <li> <b>ntp: </b> der Name oder die IP-Adresse des Zeitservers </li>
  30395. </ul>
  30396. <br><br>
  30397. <b>Beispiele:</b> <br>
  30398. <code> set &lt;name&gt; optimizeParams mirror:true flip:true ntp:time.windows.com </code><br>
  30399. # Das Bild wird gespiegelt, auf den Kopf gestellt und der Zeitserver auf "time.windows.com" eingestellt.<br>
  30400. <code> set &lt;name&gt; optimizeParams ntp:Surveillance%20Station </code><br>
  30401. # Die Surveillance Station wird als Zeitserver eingestellt. (NTP-Dienst muss im DSM aktiviert sein) <br>
  30402. <code> set &lt;name&gt; optimizeParams mirror:true flip:false rotate:true </code><br>
  30403. # Das Bild wird gespiegelt und um 90 Grad gedreht. <br>
  30404. <br><br>
  30405. </ul>
  30406. <ul>
  30407. <li><b> set &lt;name&gt; pirSensor [activate | deactivate] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30408. Aktiviert / deaktiviert den Infrarot-Sensor der Kamera (sofern die Kamera einen PIR-Sensor enthält).
  30409. </ul>
  30410. <br><br>
  30411. <ul>
  30412. <li><b> set &lt;name&gt; runPatrol &lt;Patrolname&gt; </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30413. Dieses Kommando startet die vordefinierterte �berwachungstour einer PTZ-Kamera. <br>
  30414. Die �berwachungstouren mßssen dazu zunächst in der Synology Surveillance Station angelegt worden sein.
  30415. Das geschieht in der PTZ-Steuerung im IP-Kamera Setup -&gt; PTZ-Steuerung -&gt; �berwachung.
  30416. Die �berwachungstouren (Patrols) werden ßber das Kommando "get &lt;name&gt; caminfoall" eingelesen, welches beim Restart von FHEM automatisch abgearbeitet wird.
  30417. Der Einlesevorgang kann durch ein Kamerapolling regelmä�ig wiederholt werden. Ein langes Pollingintervall ist in diesem Fall empfehlenswert, da sich die
  30418. �berwachungstouren nur im Fall der Neuanlage bzw. �nderung verändern werden.
  30419. Nähere Informationen zur Anlage von �berwachungstouren sind in der Hilfe zur Surveillance Station enthalten.
  30420. </ul>
  30421. <br><br>
  30422. <ul>
  30423. <li><b> set &lt;name&gt; runView [live_fw | live_fw_hls | live_link | live_open [&lt;room&gt;] | lastrec_fw | lastrec_fw_MJPEG | lastrec_fw_MPEG4/H.264 | lastrec_open [&lt;room&gt;] | lastsnap_fw] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30424. <ul>
  30425. <table>
  30426. <colgroup> <col width=25%> <col width=75%> </colgroup>
  30427. <tr><td>live_fw </td><td>- MJPEG-LiveStream. Audiowiedergabe wird mit angeboten wenn verfĂźgbar. </td></tr>
  30428. <tr><td>live_fw_hls </td><td>- HLS-LiveStream (aktuell nur Mac Safari und mobile iOS/Android-Geräte) </td></tr>
  30429. <tr><td>live_link </td><td>- Link zu einem MJPEG-Livestream </td></tr>
  30430. <tr><td>live_open [&lt;room&gt;] </td><td>- Ăśffnet MJPEG-Stream in separatem Browser-Fenster </td></tr>
  30431. <tr><td>lastrec_fw </td><td>- letzte Aufnahme als iFrame Objekt </td></tr>
  30432. <tr><td>lastrec_fw_MJPEG </td><td>- nutzbar wenn Aufnahme im Format MJPEG vorliegt </td></tr>
  30433. <tr><td>lastrec_fw_MPEG4/H.264 </td><td>- nutzbar wenn Aufnahme im Format MPEG4/H.264 vorliegt </td></tr>
  30434. <tr><td>lastrec_open [&lt;room&gt;] </td><td>- letzte Aufnahme wird in separatem Browser-Fenster geĂśffnet </td></tr>
  30435. <tr><td>lastsnap_fw </td><td>- letzter Schnappschuss wird dargestellt </td></tr>
  30436. </table>
  30437. </ul>
  30438. <br><br>
  30439. Mit <b>"live_fw, live_link, live_open"</b> wird ein MJPEG-Livestream, entweder als eingebettetes Image
  30440. oder als generierter Link, gestartet. <br>
  30441. Der Befehl <b>"live_open"</b> Ăśffnet ein separates Browserfenster mit dem MJPEG-Livestream. Wird dabei optional der Raum mit
  30442. angegeben, wird das Browserfenster nur dann gestartet, wenn dieser Raum aktuell im Browser geĂśffnet ist. <br>
  30443. Soll mit <b>"live_fw_hls"</b> ein HLS-Stream verwendet werden, muss die Kamera in der Synology Surveillance Station auf
  30444. das Videoformat H.264 (nicht MJPEG) eingestellt und HLS durch die eingesetzte SVS-Version unterstĂźtzt sein.
  30445. Diese MĂśglichkeit wird deshalb nur dann angeboten wenn das Reading "CamStreamFormat" den Wert "HLS" hat.
  30446. <br><br>
  30447. Der Zugriff auf die letzte Aufnahme einer Kamera kann Ăźber die Optionen <b>"lastrec_fw.*"</b> bzw. <b>"lastrec_open"</b> erfolgen.
  30448. Bei Verwendung von <b>"lastrec_fw.*"</b> wird die letzte Aufnahme als eingebettetes iFrame-Objekt abgespielt. Es werden entsprechende
  30449. Steuerungselemente zur Wiedergabegeschwindigkeit usw. angeboten wenn verfĂźgbar. <br><br>
  30450. Der Befehl <b>"set &lt;name&gt; runView lastsnap_fw"</b> zeigt den letzten Schnappschuss der Kamera eingebettet an. <br>
  30451. Durch Angabe des optionalen Raumes bei <b>"lastrec_open"</b> erfolgt die gleiche Einschränkung wie bei "live_open". <br>
  30452. Die Gestaltung der Fenster im FHEMWEB kann durch HTML-Tags im <a href="#SSCamattr">Attribut</a> "htmlattr" beeinflusst werden.
  30453. <br><br>
  30454. <b>Beispiel:</b><br>
  30455. <pre>
  30456. attr &lt;name&gt; htmlattr width="500" height="375"
  30457. attr &lt;name&gt; htmlattr width="500" height="375" top="200" left="300"
  30458. </pre>
  30459. Wird der Stream als live_fw gestartet, ändert sich die GrÜ�e entsprechend der Angaben von Width und Hight. <br>
  30460. Das Kommando <b>"set &lt;name&gt; runView live_open"</b> startet den Livestreamlink sofort in einem neuen
  30461. Browserfenster.
  30462. Dabei wird fßr jede aktive FHEMWEB-Session eine FensterÜffnung initiiert. Soll dieses Verhalten geändert werden, kann
  30463. <b>"set &lt;name&gt; runView live_open &lt;room&gt;"</b> verwendet werden um das �ffnen des Browserfensters in einem
  30464. beliebigen, in einer FHEMWEB-Session aktiven Raum "&lt;room&gt;", zu initiieren.<br>
  30465. Das gesetzte <a href="#SSCamattr">Attribut</a> "livestreamprefix" Ăźberschreibt im <a href="#SSCamreadings">Reading</a> "LiveStreamUrl"
  30466. die Angaben fĂźr Protokoll, Servername und Port. Damit kann z.B. die LiveStreamUrl fĂźr den Versand und externen Zugriff
  30467. auf die SVS modifiziert werden. <br><br>
  30468. <b>Beispiel:</b><br>
  30469. <pre>
  30470. attr &lt;name&gt; livestreamprefix https://&lt;Servername&gt;:&lt;Port&gt;
  30471. </pre>
  30472. Der Livestream wird Ăźber das Kommando <b>"set &lt;name&gt; stopView"</b> wieder beendet. <br>
  30473. Die "runView" Funktion schaltet ebenfalls Streaming-Devices vom Typ "switched" in den entsprechenden Modus. <br><br>
  30474. Abhängig vom wiedergegebenen Content werden unterschiedliche Steuertasten angeboten: <br><br>
  30475. <ul>
  30476. <table>
  30477. <colgroup> <col width=25%> <col width=75%> </colgroup>
  30478. <tr><td> Start Recording </td><td>- startet eine Endlosaufnahme </td></tr>
  30479. <tr><td> Stop Recording </td><td>- stoppt eine Aufnahme </td></tr>
  30480. <tr><td> Take Snapshot </td><td>- lÜst einen Schnappschu� aus </td></tr>
  30481. <tr><td> Switch off </td><td>- stoppt eine laufende Wiedergabe </td></tr>
  30482. </table>
  30483. </ul>
  30484. <br>
  30485. <b>Hinweis zu HLS (HTTP Live Streaming):</b> <br>
  30486. Das Video startet mit einer technologisch bedingten VerzĂśgerung. Jeder Stream wird in eine Reihe sehr kleiner Videodateien
  30487. (mit etwa 10 Sekunden Länge) segmentiert und an den Client ausgeliefert.
  30488. Die Kamera muss in der SVS auf das Videoformat H.264 eingestellt sein und nicht jeder Kameratyp ist gleichermassen fĂźr
  30489. HLS-Streaming geeignet.
  30490. Momentan kann HLS nur durch den Mac Safari Browser sowie auf mobilen iOS/Android-Geräten wiedergegeben werden.
  30491. </ul>
  30492. <br><br>
  30493. <ul>
  30494. <li><b> set &lt;name&gt; setHome &lt;PresetName&gt; </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr PTZ-CAM)</li> <br>
  30495. Setzt die Home-Position der Kamera auf einen vordefinierten Preset "&lt;PresetName&gt;" oder auf die aktuell angefahrene
  30496. Position.
  30497. </ul>
  30498. <br><br>
  30499. <ul>
  30500. <li><b> set &lt;name&gt; setPreset &lt;PresetNummer&gt; [&lt;PresetName&gt;] [&lt;Speed&gt;] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr PTZ-CAM)</li> <br>
  30501. Setzt einen Preset mit dem Namen "&lt;PresetName&gt;" auf die aktuell angefahrene Position der Kamera. Optional kann die
  30502. Geschwindigkeit angegeben werden (&lt;Speed&gt;). Ist kein PresetName angegeben, wird die PresetNummer als Name verwendet.
  30503. Aus diesem Grund ist &lt;PresetName&gt; optional definiert, sollte jedoch im Normalfall gesetzt werden.
  30504. </ul>
  30505. <br><br>
  30506. <ul>
  30507. <li><b> set &lt;name&gt; snap </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30508. Ein <b>Schnappschu�</b> kann ausgelÜst werden mit:
  30509. <pre>
  30510. set &lt;name&gt; snap
  30511. </pre>
  30512. Nachfolgend einige Beispiele fĂźr die <b>AuslĂśsung von SchnappschĂźssen</b>. <br><br>
  30513. Soll eine Reihe von SchnappschĂźssen ausgelĂśst werden wenn eine Aufnahme startet, kann das z.B. durch folgendes notify geschehen. <br>
  30514. Sobald der Start der Kamera CamHE1 ausgelÜst wird (Attribut event-on-change-reading -> "Record" setzen), werden abhängig davon 3 Snapshots im Abstand von 2 Sekunden getriggert.
  30515. <pre>
  30516. define he1_snap_3 notify CamHE1:Record.*Start define h3 at +*{3}00:00:02 set CamHE1 snap
  30517. </pre>
  30518. Triggern von 2 SchnappschĂźssen der Kamera "CamHE1" im Abstand von 6 Sekunden nachdem der Bewegungsmelder "MelderHE1" einen Event gesendet hat, <br>
  30519. kann z.B. mit folgendem notify geschehen:
  30520. <pre>
  30521. define he1_snap_2 notify MelderHE1:on.* define h2 at +*{2}00:00:06 set CamHE1 snap
  30522. </pre>
  30523. Es wird die ID und der Filename des letzten Snapshots als Wert der Variable "LastSnapId" bzw. "LastSnapFilename" in den Readings der Kamera ausgegeben. <br><br>
  30524. </ul>
  30525. <br><br>
  30526. <ul>
  30527. <li><b> set &lt;name&gt; snapGallery [1-10] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30528. Der Befehl ist nur vorhanden wenn das Attribut "snapGalleryBoost=1" gesetzt wurde.
  30529. Er erzeugt eine Ausgabe der letzten [x] SchnappschĂźsse ebenso wie <a href="#SSCamget">"get &lt;name&gt; snapGallery"</a>. Abweichend von "get" wird mit Attribut
  30530. <a href="#SSCamattr">Attribut</a> "snapGalleryBoost=1" kein Popup erzeugt, sondern die Schnappschu�galerie als Browserseite
  30531. dargestellt. Alle weiteren Funktionen und Attribute entsprechen dem "get &lt;name&gt; snapGallery" Kommando. <br>
  30532. Wenn die Ausgabe einer Schnappschu�galerie, z.B. ßber ein "at oder "notify", getriggert wird, sollte besser das
  30533. <a href="#SSCamget">"get &lt;name&gt; snapGallery"</a> Kommando anstatt "set" verwendet werden.
  30534. </ul>
  30535. <br><br>
  30536. <ul>
  30537. <li><b> set &lt;name&gt; startTracking </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fßr CAM mit Tracking Fähigkeit)</li> <br>
  30538. Startet Objekt Tracking der Kamera.
  30539. Der Befehl ist nur vorhanden wenn die Surveillance Station die Fähigkeit der Kamera zum Objekt Tracking erkannt hat
  30540. (Reading "CapPTZObjTracking").
  30541. </ul>
  30542. <br><br>
  30543. <ul>
  30544. <li><b> set &lt;name&gt; stopTracking </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fßr CAM mit Tracking Fähigkeit)</li> <br>
  30545. Stoppt Objekt Tracking der Kamera.
  30546. Der Befehl ist nur vorhanden wenn die Surveillance Station die Fähigkeit der Kamera zum Objekt Tracking erkannt hat
  30547. (Reading "CapPTZObjTracking").
  30548. </ul>
  30549. <br><br>
  30550. </ul>
  30551. <br>
  30552. <a name="SSCamget"></a>
  30553. <b>Get</b>
  30554. <ul>
  30555. <br>
  30556. Mit SSCam kĂśnnen die Eigenschaften der Surveillance Station und der Kameras abgefragt werden. <br>
  30557. Die aufgefĂźhrten get-Befehle sind fĂźr CAM/SVS-Devices oder nur fĂźr CAM-Devices bzw. nur fĂźr SVS-Devices gĂźltig. Sie stehen im
  30558. Drop-Down-MenĂź des jeweiligen Devices zur Auswahl zur VerfĂźgung. <br><br>
  30559. <ul>
  30560. <li><b> get &lt;name&gt; caminfoall </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM/SVS)</li>
  30561. <b> get &lt;name&gt; caminfo </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM) <br><br>
  30562. Es werden SVS-Parameter und abhängig von der Art der Kamera (z.B. Fix- oder PTZ-Kamera) die verfßgbaren Kamera-Eigenschaften
  30563. ermittelt und als Readings zur VerfĂźgung gestellt. <br>
  30564. So wird zum Beispiel das Reading "Availability" auf "disconnected" gesetzt falls die Kamera von der Surveillance Station
  30565. getrennt ist. <br>
  30566. "getcaminfo" ruft eine Teilmenge von "getcaminfoall" ab.
  30567. </ul>
  30568. <br><br>
  30569. <ul>
  30570. <li><b> get &lt;name&gt; eventlist </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30571. Es wird das <a href="#SSCamreadings">Reading</a> "CamEventNum" und "CamLastRec"
  30572. aktualisiert, welches die Gesamtanzahl der registrierten Kameraevents und den Pfad / Namen der letzten Aufnahme enthält.
  30573. Dieser Befehl wird implizit mit "get &lt;name&gt; caminfoall" ausgefĂźhrt. <br>
  30574. Mit dem <a href="#SSCamattr">Attribut</a> "videofolderMap" kann der Inhalt des Readings "VideoFolder" Ăźberschrieben werden.
  30575. Dies kann von Vortel sein wenn das Surveillance-Verzeichnis der SVS an dem lokalen PC unter anderem Pfadnamen gemountet ist
  30576. und darĂźber der Zugriff auf die Aufnahmen erfolgen soll (z.B. Verwendung bei Email-Versand). <br><br>
  30577. Ein DOIF-Beispiel fĂźr den Email-Versand von Snapshot und Aufnahmelink per non-blocking sendmail:
  30578. <pre>
  30579. define CamHE1.snap.email DOIF ([CamHE1:"LastSnapFilename"])
  30580. ({DebianMailnbl ('Recipient@Domain','Bewegungsalarm CamHE1','Eine Bewegung wurde an der HaustĂźr registriert. Aufnahmelink: \
  30581. \[CamHE1:VideoFolder]\[CamHE1:CamLastRec]','/media/sf_surveillance/@Snapshot/[CamHE1:LastSnapFilename]')})
  30582. </pre>
  30583. </ul>
  30584. <ul>
  30585. <li><b> get &lt;name&gt; homeModeState </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr SVS)</li> <br>
  30586. HomeMode-Status der Surveillance Station wird abgerufen.
  30587. </ul>
  30588. <br><br>
  30589. <ul>
  30590. <li><b> get &lt;name&gt; listLog [severity:&lt;Loglevel&gt;] [limit:&lt;Zeilenzahl&gt;] [match:&lt;Suchstring&gt;] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr SVS)</li> <br>
  30591. Ruft das Surveillance Station Log vom Synology Server ab. Ohne Angabe der optionalen Zusätze wird das gesamte Log abgerufen. <br>
  30592. Es kĂśnnen alle oder eine Auswahl der folgenden Optionen angegeben werden: <br><br>
  30593. <ul>
  30594. <li> &lt;Loglevel&gt; - Information, Warning oder Error. Nur Sätze mit dem Schweregrad werden abgerufen (default: alle) </li>
  30595. <li> &lt;Zeilenzahl&gt; - die angegebene Anzahl der Logzeilen (neueste) wird abgerufen (default: alle) </li>
  30596. <li> &lt;Suchstring&gt; - nur Logeinträge mit dem angegeben String werden abgerufen (Achtung: kein Regex, der Suchstring wird im Call an die SVS mitgegeben) </li>
  30597. </ul>
  30598. <br>
  30599. <b>Beispiele</b> <br>
  30600. <ul>
  30601. <code>get &lt;name&gt; listLog severity:Error limit:5 </code> <br>
  30602. Zeigt die letzten 5 Logeinträge mit dem Schweregrad "Error" <br>
  30603. <code>get &lt;name&gt; listLog severity:Information match:Carport </code> <br>
  30604. Zeigt alle Logeinträge mit dem Schweregrad "Information" die den String "Carport" enthalten <br>
  30605. <code>get &lt;name&gt; listLog severity:Warning </code> <br>
  30606. Zeigt alle Logeinträge mit dem Schweregrad "Warning" <br><br>
  30607. </ul>
  30608. Wurde mit dem <a href="#SSCamattr">Attribut</a> "pollcaminfoall" das Polling der SVS aktiviert, wird das <a href="#SSCamreadings">Reading</a>
  30609. "LastLogEntry" erstellt. <br>
  30610. Im Protokoll-Setup der SVS kann man einstellen was protokolliert werden soll. FĂźr weitere Informationen
  30611. siehe <a href="https://www.synology.com/de-de/knowledgebase/Surveillance/help/SurveillanceStation/log_advanced">Synology Online-Hlfe</a>.
  30612. </ul>
  30613. <br><br>
  30614. <ul>
  30615. <li><b> get &lt;name&gt; listPresets </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr PTZ-CAM)</li> <br>
  30616. Die fĂźr die Kamera gespeicherten Presets werden in einem Popup ausgegeben.
  30617. </ul>
  30618. <br><br>
  30619. <ul>
  30620. <li><b> get &lt;name&gt; scanVirgin </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM/SVS)</li> <br>
  30621. Wie mit get caminfoall werden alle Informationen der SVS und Kamera abgerufen. Allerdings wird in jedem Fall eine
  30622. neue Session ID generiert (neues Login), die Kamera-ID neu ermittelt und es werden alle notwendigen API-Parameter neu
  30623. eingelesen.
  30624. </ul>
  30625. <br><br>
  30626. <ul>
  30627. <li><b> get &lt;name&gt; snapGallery [1-10] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30628. Es wird ein Popup mit den letzten [x] SchnapschĂźssen erzeugt. Ist das <a href="#SSCamattr">Attribut</a> "snapGalleryBoost" gesetzt,
  30629. werden die letzten SchnappschĂźsse (default 3) Ăźber Polling abgefragt und im Speicher gehalten. Das Verfahren hilft die Ausgabe zu beschleunigen,
  30630. kann aber mÜglicherweise nicht den letzten Schnappschu� anzeigen, falls dieser NICHT ßber das Modul ausgelÜst wurde. <br>
  30631. Diese Funktion kann ebenfalls, z.B. mit "at" oder "notify", getriggert werden. Dabei wird die Schnappschu�galerie auf allen
  30632. verbundenen FHEMWEB-Instanzen als Popup angezeigt. <br><br>
  30633. Zur weiteren Steuerung dieser Funktion stehen die <a href="#SSCamattr">Attribute</a>: <br><br>
  30634. <ul>
  30635. <li>snapGalleryBoost </li>
  30636. <li>snapGalleryColumns </li>
  30637. <li>snapGalleryHtmlAttr </li>
  30638. <li>snapGalleryNumber </li>
  30639. <li>snapGallerySize </li>
  30640. </ul> <br>
  30641. zur VerfĂźgung.
  30642. </ul> <br>
  30643. <ul>
  30644. <b>Hinweis:</b><br>
  30645. Abhängig von der Anzahl und AuflÜsung (Qualität) der Schnappschu�-Images werden entsprechend ausreichende CPU und/oder
  30646. RAM-Ressourcen benĂśtigt.
  30647. </ul>
  30648. <br><br>
  30649. <ul>
  30650. <li><b> get &lt;name&gt; snapfileinfo </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30651. Es wird der Filename des letzten Schnapschusses ermittelt. Der Befehl wird implizit mit <b>"get &lt;name&gt; snap"</b>
  30652. ausgefĂźhrt.
  30653. </ul>
  30654. <br><br>
  30655. <ul>
  30656. <li><b> get &lt;name&gt; snapinfo </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30657. Es werden Schnappschussinformationen gelesen. Hilfreich wenn SchnappschĂźsse nicht durch SSCam, sondern durch die Bewegungserkennung der Kamera
  30658. oder Surveillance Station erzeugt werden.
  30659. </ul>
  30660. <br><br>
  30661. <ul>
  30662. <li><b> get &lt;name&gt; stmUrlPath </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM)</li> <br>
  30663. Mit diesem Kommando wird der aktuelle Streamkey der Kamera abgerufen und das Reading mit dem Key-Wert gefĂźllt.
  30664. Dieser Streamkey kann verwendet werden um eigene Aufrufe eines Livestreams aufzubauen (siehe Beispiel).
  30665. Wenn das <a href="#SSCamattr">Attribut</a> "showStmInfoFull" gesetzt ist, werden zusaätzliche Stream-Informationen wie "StmKeyUnicst", "StmKeymjpegHttp" ausgegeben.
  30666. Diese Readings enthalten die gĂźltigen Stream-Pfade zu einem Livestream und kĂśnnen z.B. versendet und von einer entsprechenden Anwendung ohne session Id geĂśffnet werden.
  30667. Wenn das Attribut "livestreamprefix" (Format: "http(s)://&lt;hostname&gt;&lt;port&gt;) gesetzt ist, wird der Servername und Port Ăźberschrieben soweit es sinnvoll ist.
  30668. Wird Polling der Kameraeigenschaften genutzt, wird die stmUrlPath-Funktion automatisch mit ausgefĂźhrt.
  30669. <br><br>
  30670. Beispiel fĂźr den Aufbau eines Http-Calls zu einem Livestream mit StmKey:
  30671. <pre>
  30672. http(s)://&lt;hostname&gt;&lt;port&gt;/webapi/entry.cgi?api=SYNO.SurveillanceStation.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=5&StmKey="31fd87279976d89bb98409728cced890"
  30673. </pre>
  30674. cameraId (Internal CAMID), StmKey mĂźssen durch gĂźltige Werte ersetzt werden. <br><br>
  30675. <b>Hinweis:</b> <br>
  30676. Falls der Stream-Aufruf versendet und von extern genutzt wird sowie hostname / port durch gĂźltige Werte ersetzt und die
  30677. Routerports entsprechend geĂśffnet werden, ist darauf zu achten, dass diese sensiblen Daten nicht durch unauthorisierte Personen
  30678. fĂźr den Zugriff genutzt werden kĂśnnen !
  30679. </ul>
  30680. <br><br>
  30681. <ul>
  30682. <li><b> get &lt;name&gt; storedCredentials </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM/SVS)</li> <br>
  30683. Die gespeicherten Anmeldeinformationen (Credentials) werden in einem Popup als Klartext angezeigt.
  30684. </ul>
  30685. <br><br>
  30686. <ul>
  30687. <li><b> get &lt;name&gt; svsinfo </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM/SVS)</li> <br>
  30688. Ermittelt allgemeine Informationen zur installierten SVS-Version und andere Eigenschaften. <br>
  30689. </ul>
  30690. <br><br>
  30691. <ul>
  30692. <li><b> get &lt;name&gt; versionNotes [hints | rel | &lt;key&gt;] </b> &nbsp;&nbsp;&nbsp;&nbsp;(gilt fĂźr CAM/SVS)</li> <br>
  30693. Zeigt Release Informationen und/oder Hinweise zum Modul an. Es sind nur Release Informationen mit Bedeutung fĂźr den
  30694. Modulnutzer enthalten. <br>
  30695. Sind keine Optionen angegben, werden sowohl Release Informationen als auch Hinweise angezeigt. "rel" zeigt nur Release
  30696. Informationen und "hints" nur Hinweise an. Mit der &lt;key&gt;-Angabe wird der Hinweis mit der angegebenen Nummer
  30697. angezeigt.
  30698. Ist das Attribut "language = DE" im global Device gesetzt, erfolgt die Ausgabe der Hinweise in deutscher Sprache.
  30699. </ul>
  30700. <br><br>
  30701. </ul>
  30702. <br><br>
  30703. <a name="SSCamPolling"></a>
  30704. <b>Polling der Kamera/SVS-Eigenschaften:</b><br><br>
  30705. Die Abfrage der Kameraeigenschaften erfolgt automatisch, wenn das Attribut "pollcaminfoall" (siehe Attribute) mit einem Wert &gt; 10 gesetzt wird. <br>
  30706. Per Default ist das Attribut "pollcaminfoall" nicht gesetzt und das automatische Polling nicht aktiv. <br>
  30707. Der Wert dieses Attributes legt das Intervall der Abfrage in Sekunden fest. Ist das Attribut nicht gesetzt oder &lt; 10 wird kein automatisches Polling <br>
  30708. gestartet bzw. gestoppt wenn vorher der Wert &gt; 10 gesetzt war. <br><br>
  30709. Das Attribut "pollcaminfoall" wird durch einen Watchdog-Timer ßberwacht. �nderungen des Attributwertes werden alle 90 Sekunden ausgewertet und entsprechend umgesetzt. <br>
  30710. Eine �nderung des Pollingstatus / Pollingintervalls wird im FHEM-Logfile protokolliert. Diese Protokollierung kann durch Setzen des Attributes "pollnologging=1" abgeschaltet werden.<br>
  30711. Dadurch kann ein unnĂśtiges Anwachsen des Logs vermieden werden. Ab verbose=4 wird allerdings trotz gesetzten "pollnologging"-Attribut ein Log des Pollings <br>
  30712. zu Analysezwecken aktiviert. <br><br>
  30713. Wird FHEM neu gestartet, wird bei aktivierten Polling der ersten Datenabruf innerhalb 60s nach dem Start ausgefĂźhrt. <br><br>
  30714. Der Status des automatischen Pollings wird durch das Reading "PollState" signalisiert: <br><br>
  30715. <ul>
  30716. <li><b> PollState = Active </b> - automatisches Polling wird mit Intervall entsprechend "pollcaminfoall" ausgefĂźhrt </li>
  30717. <li><b> PollState = Inactive </b> - automatisches Polling wird nicht ausgefĂźhrt </li>
  30718. </ul>
  30719. <br>
  30720. Die Bedeutung der Readingwerte ist unter <a href="#SSCamreadings">Readings</a> beschrieben. <br><br>
  30721. <b>Hinweise:</b> <br><br>
  30722. Wird Polling eingesetzt, sollte das Intervall nur so kurz wie benĂśtigt eingestellt werden da die ermittelten Werte Ăźberwiegend statisch sind. <br>
  30723. Das eingestellte Intervall sollte nicht kleiner sein als die Summe aller HTTP-Verarbeitungszeiten.
  30724. Pro Pollingaufruf und Kamera werden ca. 10 - 20 Http-Calls gegen die Surveillance Station abgesetzt.<br><br>
  30725. Bei einem eingestellten HTTP-Timeout (siehe <a href="#SSCamattr">Attribut</a>) "httptimeout") von 4 Sekunden kann die theoretische Verarbeitungszeit nicht hĂśher als 80 Sekunden betragen. <br>
  30726. In dem Beispiel sollte man das Pollingintervall mit einem Sicherheitszuschlag auf nicht weniger 160 Sekunden setzen. <br>
  30727. Ein praktikabler Richtwert kĂśnnte zwischen 600 - 1800 (s) liegen. <br>
  30728. Sind mehrere Kameras in SSCam definiert, sollte "pollcaminfoall" nicht bei allen Kameras auf exakt den gleichen Wert gesetzt werden um Verarbeitungsengpässe <br>
  30729. und dadurch versursachte potentielle Fehlerquellen bei der Abfrage der Synology Surveillance Station zu vermeiden. <br>
  30730. Ein geringfĂźgiger Unterschied zwischen den Pollingintervallen der definierten Kameras von z.B. 1s kann bereits als ausreichend angesehen werden. <br><br>
  30731. <a name="SSCaminternals"></a>
  30732. <b>Internals</b> <br><br>
  30733. <ul>
  30734. Die Bedeutung der verwendeten Internals stellt die nachfolgende Liste dar: <br><br>
  30735. <ul>
  30736. <li><b>CAMID</b> - die ID der Kamera in der SVS, der Wert wird automatisch anhand des SVS-Kameranamens ermittelt. </li>
  30737. <li><b>CAMNAME</b> - der Name der Kamera in der SVS </li>
  30738. <li><b>COMPATIBILITY</b> - Information bis zu welcher SVS-Version das Modul kompatibel bzw. zur Zeit getestet ist (siehe Reading "compstate")</li>
  30739. <li><b>CREDENTIALS</b> - der Wert ist "Set" wenn die Credentials gesetzt wurden </li>
  30740. <li><b>MODEL</b> - Unterscheidung von Kamera-Device (Hersteller - Kameratyp) und Surveillance Station Device (SVS) </li>
  30741. <li><b>NAME</b> - der Kameraname in FHEM </li>
  30742. <li><b>OPMODE</b> - die zuletzt ausgefĂźhrte Operation des Moduls </li>
  30743. <li><b>SERVERADDR</b> - IP-Adresse des SVS Hostes </li>
  30744. <li><b>SERVERPORT</b> - der SVS-Port </li>
  30745. <br><br>
  30746. </ul>
  30747. </ul>
  30748. <a name="SSCamattr"></a>
  30749. <b>Attribute</b>
  30750. <br><br>
  30751. <ul>
  30752. <ul>
  30753. <a name="debugactivetoken"></a>
  30754. <li><b>debugactivetoken</b><br>
  30755. wenn gesetzt wird der Status des Active-Tokens gelogged - nur fĂźr Debugging, nicht im
  30756. normalen Betrieb benutzen ! </li><br>
  30757. <a name="disable"></a>
  30758. <li><b>disable</b><br>
  30759. deaktiviert das Gerätemodul bzw. die Gerätedefinition </li><br>
  30760. <a name="genericStrmHtmlTag"></a>
  30761. <li><b>genericStrmHtmlTag</b><br>
  30762. Das Attribut enthält HTML-Tags zur Video-Spezifikation in einem Streaming-Device von Typ "generic".
  30763. (siehe "set &lt;name&gt; createStreamDev generic") <br><br>
  30764. <ul>
  30765. <b>Beispiel:</b>
  30766. <pre>
  30767. attr &lt;name&gt; genericStrmHtmlTag &lt;video $HTMLATTR controls autoplay&gt;
  30768. &lt;source src='http://192.168.2.10:32000/$NAME.m3u8' type='application/x-mpegURL'&gt;
  30769. &lt;/video&gt;
  30770. </pre>
  30771. Die Variablen $HTMLATTR, $NAME sind Platzhalter und Ăźbernehmen ein gesetztes Attribut "htmlattr" bzw. den SSCam-Devicenamen.
  30772. </ul>
  30773. <br><br>
  30774. </li>
  30775. <a name="httptimeout"></a>
  30776. <li><b>httptimeout</b><br>
  30777. Timeout-Wert fĂźr HTTP-Aufrufe zur Synology Surveillance Station, Default: 4 Sekunden (wenn
  30778. httptimeout = "0" oder nicht gesetzt) </li><br>
  30779. <a name="htmlattr"></a>
  30780. <li><b>htmlattr</b><br>
  30781. ergänzende Angaben zur Inline-Bilddarstellung um das Verhalten wie BildgrÜ�e zu beeinflussen. <br><br>
  30782. <ul>
  30783. <b>Beispiel:</b><br>
  30784. attr &lt;name&gt; htmlattr width="500" height="325" top="200" left="300"
  30785. </ul>
  30786. <br>
  30787. </li>
  30788. <a name="livestreamprefix"></a>
  30789. <li><b>livestreamprefix</b><br>
  30790. �berschreibt die Angaben zu Protokoll, Servernamen und Port in StmKey.*-Readings bzw. der Livestreamadresse zur
  30791. Weiterverwendung z.B. als externer Link. <br>
  30792. Die Spezifikation kann auf zwei Arten erfolgen: <br><br>
  30793. <table>
  30794. <colgroup> <col width=25%> <col width=75%> </colgroup>
  30795. <tr><td> <b>DEF</b> </td><td>: es wird Protokoll, Servername und Port aus der Definition
  30796. des SSCam-Devices verwendet </td></tr>
  30797. <tr><td> <b>http(s)://&lt;servername&gt;:&lt;port&gt;</b> </td><td>: eine eigene Adressenangabe wird verwendet </td></tr>
  30798. </table>
  30799. <br>
  30800. Servername kann der Name oder die IP-Adresse der Synology Surveillance Station sein.
  30801. </li><br>
  30802. <a name="loginRetries"></a>
  30803. <li><b>loginRetries</b><br>
  30804. setzt die Anzahl der Login-Wiederholungen im Fehlerfall (default = 3) </li><br>
  30805. <a name="noQuotesForSID"></a>
  30806. <li><b>noQuotesForSID</b><br>
  30807. dieses Attribut kann in bestimmten Fällen die Fehlermeldung "402 - permission denied"
  30808. vermeiden und ein login ermĂśglichen. </li><br>
  30809. <a name="pollcaminfoall"></a>
  30810. <li><b>pollcaminfoall</b><br>
  30811. Intervall der automatischen Eigenschaftsabfrage (Polling) einer Kamera (kleiner/gleich 10: kein
  30812. Polling, gr�er 10: Polling mit Intervall) </li><br>
  30813. <a name="pollnologging"></a>
  30814. <li><b>pollnologging</b><br>
  30815. "0" bzw. nicht gesetzt = Logging Gerätepolling aktiv (default), "1" = Logging
  30816. Gerätepolling inaktiv </li><br>
  30817. <a name="ptzPanel_Home"></a>
  30818. <li><b>ptzPanel_Home</b><br>
  30819. Im PTZ-Steuerungspaneel wird dem Home-Icon (im Attribut "ptzPanel_row02") automatisch der Wert des Readings
  30820. "PresetHome" zugewiesen.
  30821. Mit "ptzPanel_Home" kann diese Zuweisung mit einem Preset aus der verfßgbaren Preset-Liste geändert werden. </li><br>
  30822. <a name="ptzPanel_iconPath"></a>
  30823. <li><b>ptzPanel_iconPath</b><br>
  30824. Pfad fĂźr Icons im PTZ-Steuerungspaneel, default ist "www/images/sscam".
  30825. Der Attribut-Wert wird fßr alle Icon-Dateien au�er *.svg verwendet. </li><br>
  30826. <a name="ptzPanel_iconPrefix"></a>
  30827. <li><b>ptzPanel_iconPrefix</b><br>
  30828. Prefix fĂźr Icon-Dateien im PTZ-Steuerungspaneel, default ist "black_btn_".
  30829. Der Attribut-Wert wird fßr alle Icon-Dateien au�er *.svg verwendet. <br>
  30830. Beginnen die verwendeten Icon-Dateien z.B. mit "black_btn_" ("black_btn_CAMDOWN.png"), braucht das Icon in den
  30831. Attributen "ptzPanel_row[00-09]" nur noch mit dem darauf folgenden Teilstring, z.B. "CAMDOWN.png" benannt zu werden.
  30832. </li><br>
  30833. <a name="ptzPanel_row00"></a>
  30834. <li><b>ptzPanel_row[00-09] &lt;command&gt;:&lt;icon&gt;,&lt;command&gt;:&lt;icon&gt;,... </b><br>
  30835. FĂźr PTZ-Kameras werden automatisch die Attribute "ptzPanel_row00" bis "ptzPanel_row04" zur Verwendung im
  30836. PTZ-Steuerungspaneel angelegt. <br>
  30837. Die Attribute enthalten eine Komma-separarierte Liste von Befehl:Icon-Kombinationen (Tasten) je Paneelzeile.
  30838. Eine Paneelzeile kann beliebig viele Tasten enthalten. Die Attribute "ptzPanel_row00" bis "ptzPanel_row04" kĂśnnen nicht
  30839. gelÜscht werden da sie in diesem Fall automatisch wieder angelegt werden. Der User kann die Attribute ändern und ergänzen.
  30840. Diese �nderungen bleiben erhalten. <br>
  30841. Bei Bedarf kann die Belegung der Home-Taste in "ptzPanel_row02" geändert werden mit dem Attribut "ptzPanel_Home". <br>
  30842. Die Icons werden im Pfad "ptzPanel_iconPath" gesucht. Dem Icon-Namen wird "ptzPanel_iconPrefix" vorangestellt.
  30843. Eigene Erweiterungen des PTZ-Steuerungspaneels kĂśnnen Ăźber die Attribute "ptzPanel_row05" bis "ptzPanel_row09"
  30844. vorgenommen werden. Zur Erstellung eigener Icons gibt es eine Vorlage im SVN. FĂźr weitere Informationen bitte
  30845. "get &lt;name&gt; versionNotes 2" ausfĂźhren.
  30846. <br><br>
  30847. <b>Hinweis</b> <br>
  30848. FĂźr eine Leerfeld verwenden sie bitte ":CAMBLANK.png" bzw. ":CAMBLANK.png,:CAMBLANK.png,:CAMBLANK.png,..." fĂźr eine
  30849. Leerzeile.
  30850. <br><br>
  30851. <ul>
  30852. <b>Beispiel:</b><br>
  30853. attr &lt;name&gt; ptzPanel_row00 move upleft:CAMUPLEFTFAST.png,:CAMBLANK.png,move up:CAMUPFAST.png,:CAMBLANK.png,move upright:CAMUPRIGHTFAST.png <br>
  30854. # Der Befehl "move upleft" wird der Kamera beim Druck auf Tastenicon "CAMUPLEFTFAST.png" Ăźbermittelt. <br>
  30855. </ul>
  30856. <br>
  30857. </li><br>
  30858. <a name="ptzPanel_use"></a>
  30859. <li><b>ptzPanel_use</b><br>
  30860. Die Anzeige des PTZ-Steuerungspaneels in der Detailanzeige bzw. innerhalb eines generierten Streamdevice wird
  30861. ein- bzw. ausgeschaltet (default ein). </li><br>
  30862. <a name="rectime"></a>
  30863. <li><b>rectime</b><br>
  30864. festgelegte Aufnahmezeit wenn eine Aufnahme gestartet wird. Mit rectime = 0 wird eine
  30865. Endlosaufnahme gestartet. Ist "rectime" nicht gesetzt, wird der Defaultwert von 15s
  30866. verwendet.</li><br>
  30867. <a name="recextend"></a>
  30868. <li><b>recextend</b><br>
  30869. "rectime" einer gestarteten Aufnahme wird neu gesetzt. Dadurch verlängert sich die
  30870. Aufnahemzeit einer laufenden Aufnahme </li><br>
  30871. <a name="session"></a>
  30872. <li><b>session</b><br>
  30873. Auswahl der Login-Session. Nicht gesetzt oder "DSM" -> session wird mit DSM aufgebaut
  30874. (Standard). "SurveillanceStation" -> Session-Aufbau erfolgt mit SVS. <br>
  30875. Um eine Session mit der Surveillance Station aufzubauen muss ein Nutzer mit passenden Privilegien Profil in der SVS
  30876. angelegt werden. FĂźr weitere Informationen bitte "get &lt;name&gt; versionNotes 5" ausfĂźhren. </li><br>
  30877. <a name="simu_SVSversion"></a>
  30878. <li><b>simu_SVSversion</b><br>
  30879. Simuliert eine andere SVS-Version. (es ist nur eine niedrigere als die installierte SVS
  30880. Version mĂśglich !) </li><br>
  30881. <a name="snapGalleryBoost"></a>
  30882. <li><b>snapGalleryBoost</b><br>
  30883. Wenn gesetzt, werden die letzten SchnappschĂźsse (default 3) Ăźber Polling im Speicher gehalten und mit "set/get snapGallery"
  30884. aufbereitet angezeigt. Dieser Modus bietet sich an wenn viele bzw. Fullsize Images angezeigt werden sollen.
  30885. Ist das Attribut eingeschaltet, kĂśnnen bei "set/get snapGallery" keine Argumente mehr mitgegeben werden.
  30886. (siehe Attribut "snapGalleryNumber") </li><br>
  30887. <a name="snapGalleryColumns"></a>
  30888. <li><b>snapGalleryColumns</b><br>
  30889. Die Anzahl der Snaps die in einer Reihe im Popup erscheinen sollen (default 3). </li><br>
  30890. <a name="snapGalleryHtmlAttr"></a>
  30891. <li><b>snapGalleryHtmlAttr</b><br>
  30892. hiermit kann die Bilddarstellung beeinflusst werden. <br>
  30893. Ist das Attribut nicht gesetzt, wird das Attribut "htmlattr" verwendet. <br>
  30894. Ist auch dieses nicht gesetzt, wird eine Standardvorgabe verwendet (width="500" height="325"). <br><br>
  30895. <ul>
  30896. <b>Beispiel:</b><br>
  30897. attr &lt;name&gt; snapGalleryHtmlAttr width="325" height="225"
  30898. </ul>
  30899. <br>
  30900. </li>
  30901. <a name="snapGalleryNumber"></a>
  30902. <li><b>snapGalleryNumber</b><br>
  30903. Die Anzahl der abzurufenden SchnappschĂźsse (default 3). </li><br>
  30904. <a name="snapGallerySize"></a>
  30905. <li><b>snapGallerySize</b><br>
  30906. Mit diesem Attribut kann die Qualität der Images eingestellt werden (default "Icon"). <br>
  30907. Im Modus "Full" wird die original vorhandene AuflĂśsung der Images abgerufen. Dies erfordert mehr Ressourcen und kann die
  30908. Anzeige verlangsamen. Mit "snapGalleryBoost=1" kann die Ausgabe beschleunigt werden, da in diesem Fall die Aufnahmen Ăźber
  30909. Polling abgerufen und nur noch zur Anzeige gebracht werden. </li><br>
  30910. <a name="showStmInfoFull"></a>
  30911. <li><b>showStmInfoFull</b><br>
  30912. zusaätzliche Streaminformationen wie LiveStreamUrl, StmKeyUnicst, StmKeymjpegHttp werden
  30913. ausgegeben</li><br>
  30914. <a name="showPassInLog"></a>
  30915. <li><b>showPassInLog</b><br>
  30916. Wenn gesetzt, wird das verwendete Passwort im Logfile mit verbose 4 angezeigt.
  30917. (default = 0) </li><br>
  30918. <a name="videofolderMap"></a>
  30919. <li><b>videofolderMap</b><br>
  30920. ersetzt den Inhalt des Readings "VideoFolder", Verwendung z.B. bei gemounteten
  30921. Verzeichnissen </li><br>
  30922. <a name="verbose"></a>
  30923. <li><b>verbose</b> </li><br>
  30924. <ul>
  30925. Es werden verschiedene Verbose-Level unterstĂźtzt.
  30926. Dies sind im Einzelnen:
  30927. <table>
  30928. <colgroup> <col width=5%> <col width=95%> </colgroup>
  30929. <tr><td> 0 </td><td>- Start/Stop-Ereignisse werden geloggt </td></tr>
  30930. <tr><td> 1 </td><td>- Fehlermeldungen werden geloggt </td></tr>
  30931. <tr><td> 2 </td><td>- Meldungen Ăźber wichtige Ereignisse oder Alarme </td></tr>
  30932. <tr><td> 3 </td><td>- gesendete Kommandos werden geloggt </td></tr>
  30933. <tr><td> 4 </td><td>- gesendete und empfangene Daten werden geloggt </td></tr>
  30934. <tr><td> 5 </td><td>- alle Ausgaben zur Fehleranalyse werden geloggt. <b>ACHTUNG:</b> mĂśglicherweise werden sehr viele Daten in das Logfile geschrieben! </td></tr>
  30935. </table>
  30936. </ul>
  30937. <br>
  30938. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  30939. <br><br>
  30940. </ul>
  30941. <a name="SSCamreadings"></a>
  30942. <b>Readings</b>
  30943. <ul>
  30944. <br>
  30945. �ber den Pollingmechanismus bzw. durch Abfrage mit "Get" werden Readings bereitgestellt, deren Bedeutung in der nachfolgenden Tabelle dargestellt sind. <br>
  30946. Die ßbermittelten Readings kÜnnen in Abhängigkeit des Kameratyps variieren.<br><br>
  30947. <ul>
  30948. <table>
  30949. <colgroup> <col width=5%> <col width=95%> </colgroup>
  30950. <tr><td><li>CamAudioType</li> </td><td>- listet den eingestellten Audiocodec auf wenn verwendet </td></tr>
  30951. <tr><td><li>Availability</li> </td><td>- VerfĂźgbarkeit der Kamera (disabled, enabled, disconnected, other) </td></tr>
  30952. <tr><td><li>CamEventNum</li> </td><td>- liefert die Gesamtanzahl der in SVS registrierten Events der Kamera </td></tr>
  30953. <tr><td><li>CamExposureControl</li> </td><td>- zeigt den aktuell eingestellten Typ der Belichtungssteuerung </td></tr>
  30954. <tr><td><li>CamExposureMode</li> </td><td>- aktueller Belichtungsmodus (Day, Night, Auto, Schedule, Unknown) </td></tr>
  30955. <tr><td><li>CamForceEnableMulticast</li> </td><td>- sagt aus ob die Kamera verpflichet ist Multicast einzuschalten. </td></tr>
  30956. <tr><td><li>CamIP</li> </td><td>- IP-Adresse der Kamera </td></tr>
  30957. <tr><td><li>CamLastRec</li> </td><td>- Pfad / Name der letzten Aufnahme </td></tr>
  30958. <tr><td><li>CamLastRecTime</li> </td><td>- Datum / Startzeit - Stopzeit der letzten Aufnahme </td></tr>
  30959. <tr><td><li>CamLiveFps</li> </td><td>- Frames pro Sekunde des Live-Streams </td></tr>
  30960. <tr><td><li>CamLiveMode</li> </td><td>- Quelle fĂźr Live-Ansicht (DS, Camera) </td></tr>
  30961. <tr><td><li>camLiveQuality</li> </td><td>- in SVS eingestellte Live-Stream Qualität </td></tr>
  30962. <tr><td><li>camLiveResolution</li> </td><td>- in SVS eingestellte Live-Stream AuflĂśsung </td></tr>
  30963. <tr><td><li>camLiveStreamNo</li> </td><td>- verwendete Stream-Nummer fĂźr Live-Stream </td></tr>
  30964. <tr><td><li>CamModel</li> </td><td>- Kameramodell </td></tr>
  30965. <tr><td><li>CamMotDetSc</li> </td><td>- Status der Bewegungserkennung (disabled, durch Kamera, durch SVS) und deren Parameter </td></tr>
  30966. <tr><td><li>CamNTPServer</li> </td><td>- eingestellter Zeitserver </td></tr>
  30967. <tr><td><li>CamPort</li> </td><td>- IP-Port der Kamera </td></tr>
  30968. <tr><td><li>CamPreRecTime</li> </td><td>- Dauer der der Voraufzeichnung in Sekunden (Einstellung in SVS) </td></tr>
  30969. <tr><td><li>CamPtSpeed</li> </td><td>- eingestellter Wert fĂźr Schwenken/Neige-Aktionen (Einstellung in SVS) </td></tr>
  30970. <tr><td><li>CamRecShare</li> </td><td>- gemeinsamer Ordner auf der DS fĂźr Aufnahmen </td></tr>
  30971. <tr><td><li>CamRecVolume</li> </td><td>- Volume auf der DS fĂźr Aufnahmen </td></tr>
  30972. <tr><td><li>CamStreamFormat</li> </td><td>- aktuelles Format des Videostream </td></tr>
  30973. <tr><td><li>CamVideoType</li> </td><td>- listet den eingestellten Videocodec auf </td></tr>
  30974. <tr><td><li>CamVendor</li> </td><td>- Kamerahersteller Bezeichnung </td></tr>
  30975. <tr><td><li>CamVideoFlip</li> </td><td>- Ist das Video gedreht </td></tr>
  30976. <tr><td><li>CamVideoMirror</li> </td><td>- Ist das Video gespiegelt </td></tr>
  30977. <tr><td><li>CamVideoRotate</li> </td><td>- Ist das Video gedreht </td></tr>
  30978. <tr><td><li>CapAudioOut</li> </td><td>- Fähigkeit der Kamera zur Audioausgabe ßber Surveillance Station (false/true) </td></tr>
  30979. <tr><td><li>CapChangeSpeed</li> </td><td>- Fähigkeit der Kamera verschiedene Bewegungsgeschwindigkeiten auszufßhren </td></tr>
  30980. <tr><td><li>CapPIR</li> </td><td>- besitzt die Kamera einen PIR-Sensor </td></tr>
  30981. <tr><td><li>CapPTZAbs</li> </td><td>- Fähigkeit der Kamera fßr absolute PTZ-Aktionen </td></tr>
  30982. <tr><td><li>CapPTZAutoFocus</li> </td><td>- Fähigkeit der Kamera fßr Autofokus Aktionen </td></tr>
  30983. <tr><td><li>CapPTZDirections</li> </td><td>- die verfĂźgbaren PTZ-Richtungen der Kamera </td></tr>
  30984. <tr><td><li>CapPTZFocus</li> </td><td>- Art der KameraunterstĂźtzung fĂźr Fokussierung </td></tr>
  30985. <tr><td><li>CapPTZHome</li> </td><td>- UnterstĂźtzung der Kamera fĂźr Home-Position </td></tr>
  30986. <tr><td><li>CapPTZIris</li> </td><td>- UnterstĂźtzung der Kamera fĂźr Iris-Aktion </td></tr>
  30987. <tr><td><li>CapPTZObjTracking</li> </td><td>- UnterstĂźtzung der Kamera fĂźr Objekt-Tracking </td></tr>
  30988. <tr><td><li>CapPTZPan</li> </td><td>- UnterstĂźtzung der Kamera fĂźr Pan-Aktion </td></tr>
  30989. <tr><td><li>CapPTZPresetNumber</li> </td><td>- die maximale Anzahl unterstĂźtzter Presets. 0 steht fĂźr keine Preset-UnterstĂźtzung </td></tr>
  30990. <tr><td><li>CapPTZTilt</li> </td><td>- UnterstĂźtzung der Kamera fĂźr Tilt-Aktion </td></tr>
  30991. <tr><td><li>CapPTZZoom</li> </td><td>- UnterstĂźtzung der Kamera fĂźr Zoom-Aktion </td></tr>
  30992. <tr><td><li>DeviceType</li> </td><td>- Kameratyp (Camera, Video_Server, PTZ, Fisheye) </td></tr>
  30993. <tr><td><li>Error</li> </td><td>- Meldungstext des letzten Fehlers </td></tr>
  30994. <tr><td><li>Errorcode</li> </td><td>- Fehlercode des letzten Fehlers </td></tr>
  30995. <tr><td><li>HomeModeState</li> </td><td>- HomeMode-Status (ab SVS-Version 8.1.0) </td></tr>
  30996. <tr><td><li>LastLogEntry</li> </td><td>- der neueste Eintrag des Surveillance Station Logs (nur SVS-Device und wenn Attribut pollcaminfoall gesetzt) </td></tr>
  30997. <tr><td><li>LastSnapFilename</li> </td><td>- der Filename des letzten Schnapschusses </td></tr>
  30998. <tr><td><li>LastSnapId</li> </td><td>- die ID des letzten Schnapschusses </td></tr>
  30999. <tr><td><li>LastSnapTime</li> </td><td>- Zeitstempel des letzten Schnapschusses </td></tr>
  31000. <tr><td><li>LastUpdateTime</li> </td><td>- Datum / Zeit der letzten Aktualisierung durch "caminfoall" </td></tr>
  31001. <tr><td><li>LiveStreamUrl </li> </td><td>- die LiveStream-Url wenn der Stream gestartet ist. (<a href="#SSCamattr">Attribut</a> "showStmInfoFull" muss gesetzt sein) </td></tr>
  31002. <tr><td><li>Patrols</li> </td><td>- in Surveillance Station voreingestellte �berwachungstouren (bei PTZ-Kameras) </td></tr>
  31003. <tr><td><li>PollState</li> </td><td>- zeigt den Status des automatischen Pollings an </td></tr>
  31004. <tr><td><li>PresetHome</li> </td><td>- Name der Home-Position (bei PTZ-Kameras) </td></tr>
  31005. <tr><td><li>Presets</li> </td><td>- in Surveillance Station voreingestellte Positionen (bei PTZ-Kameras) </td></tr>
  31006. <tr><td><li>Record</li> </td><td>- Aufnahme läuft = Start, keine Aufnahme = Stop </td></tr>
  31007. <tr><td><li>StmKey</li> </td><td>- aktueller StreamKey. Kann zum Ăśffnen eines Livestreams ohne Session Id genutzt werden. </td></tr>
  31008. <tr><td><li>StmKeyUnicst</li> </td><td>- Uni-cast Stream Pfad der Kamera. (<a href="#SSCamattr">Attribut</a> "showStmInfoFull" muss gesetzt sein) </td></tr>
  31009. <tr><td><li>StmKeymjpegHttp</li> </td><td>- Mjpeg Stream Pfad (Ăźber http) der Kamera. (<a href="#SSCamattr">Attribut</a> "showStmInfoFull" muss gesetzt sein) </td></tr>
  31010. <tr><td><li>SVScustomPortHttp</li> </td><td>- benutzerdefinierter Port der Surveillance Station (HTTP) im DSM-Anwendungsportal (get mit "svsinfo") </td></tr>
  31011. <tr><td><li>SVScustomPortHttps</li> </td><td>- benutzerdefinierter Port der Surveillance Station (HTTPS) im DSM-Anwendungsportal (get mit "svsinfo") </td></tr>
  31012. <tr><td><li>SVSlicenseNumber</li> </td><td>- die Anzahl der installierten Kameralizenzen (get mit "svsinfo") </td></tr>
  31013. <tr><td><li>SVSuserPriv</li> </td><td>- die effektiven Rechte des verwendeten Users nach dem Login (get mit "svsinfo") </td></tr>
  31014. <tr><td><li>SVSversion</li> </td><td>- die Paketversion der installierten Surveillance Station (get mit "svsinfo") </td></tr>
  31015. <tr><td><li>UsedSpaceMB</li> </td><td>- durch Aufnahmen der Kamera belegter Plattenplatz auf dem Volume </td></tr>
  31016. <tr><td><li>VideoFolder</li> </td><td>- Pfad zu den aufgenommenen Videos </td></tr>
  31017. <tr><td><li>compstate</li> </td><td>- Kompatibilitätsstatus (Vergleich von eingesetzter/simulierter SVS-Version zum Internal COMPATIBILITY) </td></tr>
  31018. </table>
  31019. </ul>
  31020. <br><br>
  31021. </ul>
  31022. </ul>
  31023. <br><br>
  31024. </ul>
  31025. <p><a name="SSCamSTRM"></a>
  31026. <h3>SSCamSTRM</h3>
  31027. <div class='langLinks'>[<a href='commandref.html#SSCamSTRM'>EN</a> DE]</div>
  31028. <br>
  31029. Das Modul SSCamSTRM ist ein mit SSCam abgestimmtes Gerätemodul zur Definition von Streaming-Devices. <br>
  31030. Abhängig vom Zustand des Streaming-Devices werden zum Start von Aktionen unterschiedliche Drucktasten angeboten:
  31031. <ul>
  31032. <table>
  31033. <colgroup> <col width=25%> <col width=75%> </colgroup>
  31034. <tr><td> Switch off </td><td>- stoppt eine laufende Wiedergabe </td></tr>
  31035. <tr><td> Refresh </td><td>- auffrischen einer Ansicht (kein Browser Seiten-Reload) </td></tr>
  31036. <tr><td> Restart </td><td>- neu starten eines laufenden Contents (z.B. eines HLS-Streams) </td></tr>
  31037. <tr><td> MJPEG </td><td>- Startet MJPEG Livestream </td></tr>
  31038. <tr><td> HLS </td><td>- Startet HLS (HTTP Live Stream) </td></tr>
  31039. <tr><td> Last Record </td><td>- spielt die letzte Aufnahme als iFrame </td></tr>
  31040. <tr><td> Last Rec H.264 </td><td>- spielt die letzte Aufnahme wenn als H.264 vorliegend </td></tr>
  31041. <tr><td> Last Rec MJPEG </td><td>- spielt die letzte Aufnahme wenn als MJPEG vorliegend </td></tr>
  31042. <tr><td> Last SNAP </td><td>- zeigt den letzten Snapshot </td></tr>
  31043. <tr><td> Start Recording </td><td>- startet eine Endlosaufnahme </td></tr>
  31044. <tr><td> Stop Recording </td><td>- stoppt eine Aufnahme </td></tr>
  31045. <tr><td> Take Snapshot </td><td>- lÜst einen Schnappschu� aus </td></tr>
  31046. </table>
  31047. </ul>
  31048. <br>
  31049. <ul>
  31050. <a name="SSCamSTRMdefine"></a>
  31051. <b>Define</b>
  31052. <ul>
  31053. Ein SSCam Streaming-Device wird durch den SSCam Befehl "set &lt;name&gt; createStreamDev" erstellt.
  31054. Siehe auch die Beschreibung zum SSCam <a href="#SSCamcreateStreamDev">"createStreamDev"</a> Befehl.
  31055. <br><br>
  31056. </ul>
  31057. <a name="SSCamSTRMset"></a>
  31058. <b>Set</b> <ul>N/A</ul><br>
  31059. <a name="SSCamSTRMget"></a>
  31060. <b>Get</b> <ul>N/A</ul><br>
  31061. <a name="SSCamSTRMattr"></a>
  31062. <b>Attributes</b>
  31063. <br><br>
  31064. <ul>
  31065. <ul>
  31066. <a name="autoRefresh"></a>
  31067. <li><b>autoRefresh</b><br>
  31068. Wenn gesetzt, werden aktive Browserseiten des FHEMWEB-Devices welches das SSCamSTRM-Device aufgerufen hat, nach der
  31069. eingestellten Zeit (Sekunden) neu geladen. Sollen statt dessen Broserseiten eines bestimmten FHEMWEB-Devices neu
  31070. geladen werden, kann dieses Device mit dem Attribut "autoRefreshFW" festgelegt werden.
  31071. Dies kann in manchen Fällen die Wiedergabe innerhalb einer Anwendung stabilisieren.
  31072. </li>
  31073. <br>
  31074. <a name="autoRefreshFW"></a>
  31075. <li><b>autoRefreshFW</b><br>
  31076. Ist "autoRefresh" aktiviert, kann mit diesem Attribut das FHEMWEB-Device bestimmt werden dessen aktive Browserseiten
  31077. regelmä�ig neu geladen werden sollen.
  31078. </li>
  31079. <br>
  31080. <a name="disable"></a>
  31081. <li><b>disable</b><br>
  31082. Aktiviert/deaktiviert das Device.
  31083. </li>
  31084. <br>
  31085. <a name="forcePageRefresh"></a>
  31086. <li><b>forcePageRefresh</b><br>
  31087. Das Attribut wird durch SSCam ausgewertet. <br>
  31088. Wenn gesetzt, wird ein Reload aller Browserseiten mit aktiven FHEMWEB-Verbindungen nach dem Abschlu� bestimmter
  31089. SSCam-Befehle erzwungen.
  31090. Dies kann in manchen Fällen die Wiedergabe innerhalb einer Anwendung stabilisieren.
  31091. </li>
  31092. <br>
  31093. <a name="hideDisplayName"></a>
  31094. <li><b>hideDisplayName</b><br>
  31095. Verbirgt den Device/Alias-Namen (Link zur Detailansicht).
  31096. </li>
  31097. <br>
  31098. <a name="htmlattr"></a>
  31099. <li><b>htmlattr</b><br>
  31100. Zusätzliche HTML Tags zur Darstellungsänderung im Streaming Device. <br>
  31101. <ul>
  31102. <b>Beispiel: </b><br>
  31103. attr &lt;name&gt; htmlattr width="480" height="560" <br>
  31104. </ul>
  31105. </li>
  31106. </ul>
  31107. </ul>
  31108. </ul>
  31109. <p><a name="STACKABLE"></a>
  31110. <h3>STACKABLE</h3>
  31111. <ul>
  31112. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  31113. hier: <a href='commandref.html#STACKABLE'>STACKABLE</a><br/>
  31114. </ul>
  31115. <a name="STACKABLE_CC"></a>
  31116. <h3>STACKABLE_CC</h3>
  31117. <div class='langLinks'>[<a href='commandref.html#STACKABLE_CC'>EN</a> DE]</div>
  31118. <ul>
  31119. Mit Hilfe dieses Moduls kann man die "Stackable CC" Ger&auml;te von busware.de in
  31120. FHEM integrieren. Diese Ger&auml;te erm&ouml;glichen eine Menge von CULs an einem RPi
  31121. anzuschliessen.
  31122. Das erste Ger&auml;t wird als CUL definiert, alle nachfolgenden als STACKABLE_CC.
  31123. <br><br>
  31124. <a name="STACKABLE_CCdefine"></a>
  31125. <b>Define</b>
  31126. <ul>
  31127. <code>define &lt;name&gt; STACKABLE_CC &lt;Base-Device-Name&gt;</code> <br>
  31128. <br>
  31129. &lt;Base-Device-Name&gt; ist der Name des Ger&auml;tes, der als Basis f&uuml;r das
  31130. aktuelle Ger&auml;t dient.<br>
  31131. Beispiel:
  31132. <ul><code>
  31133. define SCC0 CUL /dev/ttyAMA0@38400<br>
  31134. attr SCC0 rfmode SlowRF<br>
  31135. define SCC1 STACKABLE_CC SCC0<br>
  31136. attr SCC1 rfmode HomeMatic<br>
  31137. define SCC2 STACKABLE_CC SCC1<br>
  31138. attr SCC2 rfmode Max<br>
  31139. </code></ul>
  31140. <b>Wichtig:</b>
  31141. <ul>
  31142. <li>Das rfmode Attribut muss explizit spezifiziert werden. Das gilt nur
  31143. f&uuml;r die STACKABLE_CC Definitionen, und nicht f&uuml;r die erste, die
  31144. als CUL definiert wurde.</li>
  31145. <li>Falls SlowRF spezifiziert wurde, dann muss das FHTID explizit gesetzt
  31146. werden, mit folgendem Kommando: "set SCCX raw T01HHHH". Auch das ist nur
  31147. f&uuml;r die STACKABLE_CC n&ouml;tig.</li>
  31148. <li>Falls ein Ger&auml;t umbenannt wird, was als Basis f&uuml;r ein STACKABLE_CC
  31149. dient, dann muss es auch in der Definition des abh&auml;ngigen Ger&auml;tes
  31150. umbenannt werden, und FHEM muss neugestartet werden.</li>
  31151. </ul>
  31152. </ul>
  31153. <a name="STACKABLE_CCset"></a>
  31154. <b>Set</b> <ul>Die gleichen wie f&uuml;r das <a href="#CULset">CUL</a>.</ul><br>
  31155. <a name="STACKABLE_CCget"></a>
  31156. <b>Get</b> <ul>Die gleichen wie f&uuml;r das <a href="#CULget">CUL</a>.</ul><br>
  31157. <a name="STACKABLE_CCattr"></a>
  31158. <b>Attributes</b>
  31159. <ul>
  31160. <li><a href="#IODev">IODev</a></li><br>
  31161. <li><a href="#ignore">ignore</a></li><br>
  31162. Die anderen Attribute sind die gleichen wie f&uuml;r das <a href="#CULattr">CUL</a>.
  31163. </ul>
  31164. </ul>
  31165. <p><a name="STOCKQUOTES"></a>
  31166. <h3>STOCKQUOTES</h3>
  31167. <div class='langLinks'>[<a href='commandref.html#STOCKQUOTES'>EN</a> DE]</div>
  31168. (<a href="commandref.html#STOCKQUOTES">en</a> | de)
  31169. <ul>
  31170. <a name="STOCKQUOTES"></a>
  31171. Wertpapierdaten von verschiedenen Quellen holen<br>
  31172. <b>Vorbereitung</b><br>
  31173. Perl Modul Finance::Quote muss installiert werden:<br>
  31174. <code>cpan install Finance::Quote</code> oder <code>sudo apt-get install libfinance-quote-perl</code><br><br>
  31175. <b>Define</b>
  31176. <ul>
  31177. <code>define &lt;name&gt; STOCKQUOTES</code><br><br>
  31178. </ul>
  31179. <a name="STOCKQUOTESset"></a>
  31180. <b>Set</b>
  31181. <ul>
  31182. &lt;Symbol&gt; h&auml;ngt von den jeweiligen Quellen ab. Kann auch eine WKN sein. Hier muss ggf. experimentiert werden.<br><br>
  31183. <li><code>set &lt;name&gt; buy &lt;Symbol&gt; &lt;Menge&gt; &lt;Gesamtpreis&gt;</code><br>
  31184. Wertpapier in Depot einbuchen. Wenn dieses Wertpapier bereits vorhanden ist, werden die Neuen einfach dazuaddiert.<br><br>
  31185. </li>
  31186. <li><code>set &lt;name&gt; sell &lt;Symbol&gt; &lt;Menge&gt; &lt;Gesamtpreis&gt;</code><br>
  31187. Wertpapier (auch Teilmenge) wieder ausbuchen.<br><br>
  31188. </li>
  31189. <li><code>set &lt;name&gt; add &lt;Symbol&gt;</code><br>
  31190. Wertpapier nur beobachten<br><br>
  31191. </li>
  31192. <li><code>set &lt;name&gt; remove &lt;Symbol&gt;</code><br>
  31193. Entferne Wertpapier das nur beobachtet wird.<br><br>
  31194. </li>
  31195. <li><code>set &lt;name&gt; clearReadings</code><br>
  31196. Alle Readings l&ouml;schen.<br><br>
  31197. </li>
  31198. <li><code>set &lt;name&gt; update</code><br>
  31199. Alle Readings aktualisieren.<br><br>
  31200. </li>
  31201. </ul>
  31202. <a name="STOCKQUOTESget"></a>
  31203. <b>Get</b>
  31204. <ul>
  31205. <li><code>get &lt;name&gt; sources</code><br>
  31206. Verf&uuml;gbare Datenquellen auflisten. Diese werden f&uuml;r die Attribute defaultSource und sources ben&ouml;tigt<br><br>
  31207. </li>
  31208. <li><code>get &lt;name&gt; currency &lt;Symbol&gt;</code><br>
  31209. Wertpapierw&auml;hrung ermitteln<br><br>
  31210. </li>
  31211. </ul>
  31212. <a name="STOCKQUOTESattr"></a>
  31213. <b>Attribute</b>
  31214. <ul>
  31215. <li>currency<br>
  31216. W&auml;hrung, in der die Wertpapiere angezeigt werden.<br>
  31217. Default: EUR, g&uuml;ltige Werte: W&auml;hrungsk&uuml;rzel<br><br>
  31218. </li>
  31219. <li>defaultSource<br>
  31220. Standardquelle f&uuml;r die Wertpapierdaten.<br>
  31221. Default: europe, g&uuml;ltige Werte: alles was <code>get &lt;name&gt; sources</code> ausgibt.<br><br>
  31222. </li>
  31223. <li>queryTimeout<br>
  31224. Timeout beim holen der Daten in Sekunden.<br>
  31225. Standard: 120, g&uuml;ltige Werte: Zahl<br><br>
  31226. </li>
  31227. <li>pollInterval<br>
  31228. Aktualisierungsintervall in Sekunden.<br>
  31229. Standard: 300, g&uuml;ltige Werte: Zahl<br><br>
  31230. </li>
  31231. <li>sources<br>
  31232. F&uuml;r jedes Wertpapier kann eine eigene Datenquelle definiert werden.<br>
  31233. Die Datenquellen k&ouml;nnen &uuml;ber <code>get &lt;name&gt; sources</code> angefragt werden.<br>
  31234. Format: &lt;Symbol&gt;:&lt;Source&gt;[,&lt;Symbol&gt;:&lt;Source&gt;...]<br>
  31235. Beispiel: <code>A0M16S:vwd,532669:unionfunds,849104:unionfunds</code><br>
  31236. Alle nicht aufgef&uuml;hrten Werpapiere werden &uuml;ber die defaultSource abgefragt.<br><br>
  31237. </li>
  31238. <li>stocks<br>
  31239. Wird &uuml;ber buy/sell/add/remove angelegt/modifiziert<br>
  31240. Enth&auml;lt die Werpapiere im Format &lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;[,&lt;Symbol&gt;:&lt;Anzahl&gt;:&lt;Einstandswert&gt;...]<br><br>
  31241. </li>
  31242. </ul><br>
  31243. </ul>
  31244. <p><a name="STV"></a>
  31245. <h3>STV</h3>
  31246. <ul>
  31247. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  31248. hier: <a href='commandref.html#STV'>STV</a><br/>
  31249. </ul>
  31250. <a name="SUNRISE_EL"></a>
  31251. <h3>SUNRISE_EL</h3>
  31252. <div class='langLinks'>[<a href='commandref.html#SUNRISE_EL'>EN</a> DE]</div>
  31253. <ul>
  31254. <p>
  31255. <strong>SUNRISE_EL</strong> definiert eine Reihe von Perl-Subroutinen (<abbr>z.B.</abbr> zur Nutzung mit <a href="#at">at</a>):
  31256. </p>
  31257. <ul>
  31258. <li><code>sunrise()</code> - absolute Zeit des n&auml;chsten
  31259. Sonnenaufgangs (+ 24 h, wenn am n&auml;chsten Tag)</li>
  31260. <li><code>sunset()</code> - absolute Zeit des n&auml;chsten
  31261. Sonnenuntergangs (+ 24 h, wenn am n&auml;chsten Tag)</li>
  31262. <li><code>sunrise_rel()</code> - relative Zeit des n&auml;chsten
  31263. Sonnenaufgangs</li>
  31264. <li><code>sunset_rel()</code> - relative Zeit des n&auml;chsten
  31265. Sonnenuntergangs</li>
  31266. <li><code>sunrise_abs()</code> - absolute Zeit des n&auml;chsten
  31267. Sonnenaufgangs (ohne Stundenzuschlag)</li>
  31268. <li><code>sunset_abs()</code> - absolute Zeit des n&auml;chsten
  31269. Sonnenuntergangs (ohne Stundenzuschlag)</li>
  31270. <li><code>sunrise_abs_dat()</code> - absolute Zeit des n&auml;chsten
  31271. Sonnenaufgangs an einem bestimmten Tag</li>
  31272. <li><code>sunset_abs_dat()</code> - absolute Zeit des n&auml;chsten
  31273. Sonnenuntergangs an einem bestimmten Tag</li>
  31274. <li><code>isday()</code> - Tag oder Nacht</li>
  31275. </ul>
  31276. <h4>Breite, L&auml;nge und H&ouml;henwinkel</h4>
  31277. <p>
  31278. Bevor du <strong>SUNRISE_EL</strong> verwendest, solltest du im <a href="#global">global-Device</a> die
  31279. Werte f&uuml;r <span>latitude</span> (geographische Breite) und <span>longitude</span> (geographische L&auml;nge) entsprechend
  31280. deines Standorts setzen.
  31281. </p>
  31282. <div>
  31283. <h4>Exkurs: <span>latitude</span> &amp; <span>longitude</span> ermitteln</h4>
  31284. <p>
  31285. Deine geopgragischen Koordinaten kannst du <abbr>z.B.</abbr> mit <a href="https://maps.google.com">Google Maps</a> bestimmen.
  31286. Dazu setzt du einen Punkt auf der Karte und findest dann im unteren Bereich der Karte die Angabe f&uuml;r beide Werte.
  31287. Der erste Wert ist die geographische Breite (<span>latitude</span>); der zweite Wert die geographische L&auml;nge
  31288. (<span>longitude</span>).
  31289. </p>
  31290. <p>
  31291. Der <span>Default</span>-Wert ist 50.112, 8.686 (<a href="https://goo.gl/maps/vkyedDL1DJp">Frankfurt am Main</a>).
  31292. </p>
  31293. </div>
  31294. <p>
  31295. <strong>SUNRISE_EL</strong> geht von einem H&ouml;henwinkel der Sonne bezogen zum Horizont, <var>h</var>, von -6&deg; aus. Dieser Wert bedeutet,
  31296. dass die Sonne 6&deg; <strong>unter</strong> dem Horizont steht und Lesen im Freien ohne k&uuml;nstliche Beleuchtung nicht
  31297. mehr m&ouml;glich ist (<span>civil twilight</span>, b&uuml;rgerliche D&auml;mmerung).
  31298. <strong>SUNRISE_EL</strong> speichert diesen Wert in <var><code>$defaultaltit</code></var>.
  31299. </p>
  31300. <p>
  31301. Siehe auch <a href="http://search.cpan.org/~jforget/DateTime-Event-Sunrise-0.0505/lib/DateTime/Event/Sunrise.pm">perldoc DateTime::Event::Sunrise</a> f&uuml;r
  31302. weitere Hinweise.
  31303. </p>
  31304. <h4>Befehlsreferenz</h4>
  31305. <h5>Parameter</h5>
  31306. <p>
  31307. Jede der folgenden Funktionen akzeptiert bis zu vier (<abbr>bzw.</abbr> f&uuml;nf) Parameter in der angegebenen Reihenfolge:
  31308. </p>
  31309. <dl>
  31310. <dt>
  31311. <var>unix timestamp</var>
  31312. </dt>
  31313. <dd>
  31314. <p>
  31315. <strong>Ausschlie&szlig;lich</strong> <code>sunrise_abs_dat()</code> &amp; <code>sunset_abs_dat()</code>
  31316. erwarten als ersten Parameter einen Unix-Timestamp (Unix-Epoche) in Sekunden, der ein Datum spezifiziert. Andere Subroutinen
  31317. erwarten diesen Parameter nicht!
  31318. </p>
  31319. </dd>
  31320. <dt>
  31321. <var>altitude</var>
  31322. </dt>
  31323. <dd>
  31324. <p>
  31325. Eine der folgenden Zeichenketten, die unterschiedliche H&ouml;henwinkel <var>h</var> definieren und den Wert
  31326. von <code><var>$defaultaltit</var></code> ver&auml;ndern.
  31327. </p>
  31328. <p>
  31329. Erlaubte Werte sind:
  31330. </p>
  31331. <ul>
  31332. <li>
  31333. <code><var>REAL</var></code>, <var>h</var> = 0&deg;,
  31334. </li>
  31335. <li>
  31336. <code><var>CIVIL</var></code>, <var>h</var> = -6&deg;,
  31337. </li>
  31338. <li>
  31339. <code><var>NAUTIC</var></code>, <var>h</var> = -12&deg;,
  31340. </li>
  31341. <li>
  31342. <code><var>ASTRONOMIC</var></code>, <var>h</var> = -18&deg;,
  31343. </li>
  31344. <li>
  31345. oder <code><var>HORIZON=</var></code>, gefolgt von einer positiven oder negativen Zahl ohn Gradzeichen, die einen H&ouml;henwinkel
  31346. angibt.
  31347. </li>
  31348. </ul>
  31349. </dd>
  31350. <dt>
  31351. <var>offset</var>
  31352. </dt>
  31353. <dd>
  31354. <p>
  31355. <span>Offset</span> in Sekunden, der zu dem R&uuml;ckgabewert der Funktion addiert wird.
  31356. </p>
  31357. <p>
  31358. <code>isday()</code>
  31359. ignoriert diesen Wert.
  31360. </p>
  31361. </dd>
  31362. <dt>
  31363. <var>min</var>
  31364. </dt>
  31365. <dd>
  31366. <p>
  31367. Einen Zeitstempel im Format <var>hh:mm</var>, vor dem keine Aktion ausgef&uuml;hrt werden soll.
  31368. </p>
  31369. <p>
  31370. <code>isday()</code> wird <var>(int) 0</var> zur&uuml;ckliefern, wenn <var>min</var> gesetzt
  31371. und der aktuelle Zeitstempel kleiner ist.
  31372. </p>
  31373. </dd>
  31374. <dt>
  31375. <var>max</var>
  31376. </dt>
  31377. <dd>
  31378. <p>
  31379. Einen Zeitstempel im Format <var>hh:mm</var>, nach dem keine Aktion ausgef&uuml;hrt werden soll.
  31380. </p>
  31381. <p>
  31382. <code>isday()</code> wird <var>(int) 0</var> zur&uuml;ckliefern, wenn <var>max</var> gesetzt
  31383. und der aktuelle Zeitstempel gr&ouml;&szlig;er ist.
  31384. </p>
  31385. </dd>
  31386. </dl>
  31387. <h5>Subroutinen</h5>
  31388. <dl>
  31389. <dt>
  31390. <p><code>sunrise(), sunset()</code></p>
  31391. </dt>
  31392. <dd>
  31393. liefern den absoluten Wert des n&auml;chsten Sonnenauf- <abbr>bzw.</abbr> -untergangs zur&uuml;ck, wobei 24 Stunden zu
  31394. diesem Wert addiert werden,
  31395. wenn der Zeitpunkt am n&auml;chsten Tag sein wird, im Format <var>hh:mm:ss</var>.
  31396. </dd>
  31397. <dt>
  31398. <p><code>sunrise_rel(), sunset_rel()</code></p>
  31399. </dt>
  31400. <dd>
  31401. liefern die relative Zeit bis zum n&auml;chsten Sonnenauf- <abbr>bzw.</abbr> -untergang im Format
  31402. <var>hh:mm:ss</var>.
  31403. </dd>
  31404. <dt>
  31405. <p><code>sunrise_abs(), sunset_abs()</code></p>
  31406. </dt>
  31407. <dd>
  31408. liefern den n&auml;chsten absoluten Zeitpunkt des n&auml;chsten Sonnenauf- <abbr>bzw.</abbr> -untergangs
  31409. <strong>ohne</strong> 24 Stunden
  31410. zu addieren im Format <var>hh:mm:ss</var>.
  31411. </dd>
  31412. <dt>
  31413. <p><code>sunrise_abs_dat(), sunset_abs()_dat</code></p>
  31414. </dt>
  31415. <dd>
  31416. liefern den n&auml;chsten absoluten Zeitpunkt des n&auml;chsten Sonnenauf- <abbr>bzw.</abbr> -untergangs
  31417. <strong>ohne</strong> 24 Stunden zu addieren im Format <var>hh:mm:ss</var> zu einem als ersten Parameter angegebenen Datum.
  31418. </dd>
  31419. <dt>
  31420. <p><code>isday()</code></p>
  31421. </dt>
  31422. <dd>
  31423. liefert <var>(int) 1</var> wenn Tag ist, <var>(int) 0</var> wenn Nacht ist.
  31424. </dd>
  31425. </dl>
  31426. <h5>Beispiele</h5>
  31427. <dl>
  31428. <dt>
  31429. <p>
  31430. <code>sunrise("CIVIL");</code>
  31431. </p>
  31432. </dt>
  31433. <dd>
  31434. <p>
  31435. Zeitpunkt des Sonnenaufgangs bei einem H&ouml;henwinkel der Sonne von -6&deg; unter dem Horizont (identisch zu <code>sunrise()</code>).
  31436. </p>
  31437. </dd>
  31438. <dt>
  31439. <p>
  31440. <code>sunset("HORIZON=-3");</code>
  31441. </p>
  31442. </dt>
  31443. <dd>
  31444. <p>
  31445. Zeitpunkt des Sonnenuntergangs bei einem H&ouml;henwinkel der Sonne von 3&deg; unter dem Horizont
  31446. (zwischen <code><var>REAL</var></code> und <code><var>CIVIL</var></code>).
  31447. </p>
  31448. </dd>
  31449. <dt>
  31450. <p>
  31451. <code>sunset("HORIZON=1");</code>
  31452. </p>
  31453. </dt>
  31454. <dd>
  31455. <p>
  31456. Zeitpunkt des Sonnenaufgangs bei einem H&ouml;henwinkel der Sonne von 1&deg; &uuml;ber dem Horizont.
  31457. </p>
  31458. </dd>
  31459. <dt>
  31460. <p>
  31461. <code>defmod a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on</code>
  31462. </p>
  31463. </dt>
  31464. <dd>
  31465. <p>
  31466. Schalte <var>lamp1</var> an, sobald die Sonne unter den Horizont sinkt (<var>h &le; 0</var>), jedoch nicht vor 18:00 und nicht nach 21:00.
  31467. </p>
  31468. </dd>
  31469. <dt>
  31470. <p>
  31471. <code>
  31472. my $date = time() + 7*86400;<br />
  31473. sunrise_abs_dat($date);
  31474. </code>
  31475. </p>
  31476. </dt>
  31477. <dd>
  31478. <p>
  31479. Berechne den Sonnenaufgang von heute + sieben Tage.
  31480. </p>
  31481. </dd>
  31482. <dt>
  31483. <p>
  31484. <code>
  31485. my $date = time() + 7*86400;<br />
  31486. sunrise_abs_dat($date, "CIVIL");
  31487. </code>
  31488. </p>
  31489. </dt>
  31490. <dd>
  31491. <p>
  31492. Berechne den Sonnenaufgang von heute + sieben Tage mit einem H&ouml;henwinkel <var>h = -6&deg;</var>.
  31493. </p>
  31494. </dd>
  31495. </dl>
  31496. <h4>Define</h4>
  31497. <blockquote>
  31498. <strong>SUNRISE_EL</strong> kann nicht explizit als <span>Device</span> definiert werden,
  31499. sondern bietet die oben genannten Subroutinen.
  31500. </blockquote>
  31501. <h4>Set</h4>
  31502. <blockquote>
  31503. <strong>SUNRISE_EL</strong> unterst&uuml;tzt <var>set</var> nicht.
  31504. </blockquote>
  31505. <h4>Get</h4>
  31506. <blockquote>
  31507. <strong>SUNRISE_EL</strong> unterst&uuml;tzt <var>get</var> nicht.
  31508. </blockquote>
  31509. <h4>Attribute</h4>
  31510. <p>
  31511. Diese Attribute m&uuml;ssen im <span><a href="#global">global</a>-Device</span> gesetzt werden!
  31512. </p>
  31513. <dl>
  31514. <dt>
  31515. <p>
  31516. <var>latitude</var>
  31517. </p>
  31518. </dt>
  31519. <dd>
  31520. <blockquote>
  31521. Geographische Breite in Dezimalgrad in Form eines <code>float</code>, <abbr>z.B</abbr> <code><var>49.872471</var></code>.
  31522. </blockquote>
  31523. <blockquote>
  31524. <span>Default</span>-Wert ist <code><var>50.112</var></code>.
  31525. </blockquote>
  31526. </dd>
  31527. <dt>
  31528. <p>
  31529. <var>longitude</var>
  31530. </p>
  31531. </dt>
  31532. <dd>
  31533. <blockquote>
  31534. Geographische L&auml;nge in Dezimalgrad in Form eines <code>float</code>, <abbr>z.B</abbr> <code><var>8.650991</var></code>.
  31535. </blockquote>
  31536. <blockquote>
  31537. <span>Default</span>-Wert ist <code><var>8.686</var></code>.
  31538. </blockquote>
  31539. </dd>
  31540. <dt>
  31541. <p>
  31542. <var>altitude</var>
  31543. </p>
  31544. </dt>
  31545. <dd>
  31546. <blockquote>
  31547. H&ouml;henwinkel <var>h</var> der Sonne bezogen auf den Horizont in Grad in Form einer Zahl ohne Gradzeichen.
  31548. </blockquote>
  31549. <blockquote>
  31550. <span>Default</span>-Wert ist <code><var>-6</var></code>.
  31551. </blockquote>
  31552. </dd>
  31553. </dl>
  31554. </ul>
  31555. <p><a name="SVG"></a>
  31556. <h3>SVG</h3>
  31557. <div class='langLinks'>[<a href='commandref.html#SVG'>EN</a> DE]</div>
  31558. <ul>
  31559. <a name="SVGlinkdefine"></a>
  31560. <b>Define</b>
  31561. <ul>
  31562. <code>define &lt;name&gt; SVG &lt;logDevice&gt;:&lt;gplotfile&gt;:&lt;logfile&gt;</code>
  31563. <br><br>
  31564. Dies ist das Zeichenmodul von FHEMWEB, mit dem Vektorgrafiken (SVG) erzeugt
  31565. werden. <br><br>
  31566. Beispiel:
  31567. <ul>
  31568. <code>define MyPlot SVG inlog:temp4hum4:CURRENT</code><br>
  31569. </ul>
  31570. <br>
  31571. Hinweise:
  31572. <ul>
  31573. <li>Normalerweise m&uuml;ssen SVG-Ger&auml;te nicht manuell erzeugt
  31574. werden, da FHEMWEB es f&uuml;r den Nutzer einfach macht: man muss in
  31575. der Detailansicht eines FileLogs wechseln und auf "Create SVG instance"
  31576. klicken.</li>
  31577. <li>CURRENT als &lt;logfile&gt; wird immer das aktuelle Logfile
  31578. benutzen, selbst dann, wenn der Name des Logfiles sich
  31579. regelm&auml;&szlig;ig &auml;ndert. </li>
  31580. <li>Aus historischen Gr&uuml;nden ben&ouml;tigt jede SVG-Instanz eine
  31581. sog. .gplot Datei, die auch als Input f&uuml;r das gnuplot Programm
  31582. verwendet werden kann. Einige besondere Zeilen (welche mit #FileLog
  31583. oder #DbLog beginnen) werden zus&auml;tzlich benutzt, diese werden von
  31584. gnuplot als Kommentar betrachtet. Auf der anderen Seite implementiert
  31585. dieses Modul nicht alle gnuplot-Attribute.</li>
  31586. </ul>
  31587. </ul>
  31588. <br>
  31589. <a name="SVGset"></a>
  31590. <b>Set</b>
  31591. <ul>
  31592. <li>copyGplotFile<br>
  31593. Kopiert die aktuell ausgew&auml;hlte .gplot Datei in eine neue Datei, die
  31594. den Namen der SVG Instanz tr&auml;gt; bereits bestehende Dateien mit
  31595. gleichem Namen werden &uuml;berschrieben. Diese Vorgehensweise ist
  31596. notwendig, wenn man den Ploteditor benutzt. Erzeugt man aus der
  31597. Detailansicht des FileLogs die SVG Instanz, wird eine eindeutige
  31598. .gplot-Datei erzeugt. In diesem Fall ist dieses Befehl nicht
  31599. erforderlich.</li>
  31600. </ul><br>
  31601. <a name="SVGget"></a>
  31602. <b>Get</b> <ul>N/A</ul><br>
  31603. <a name="SVGattr"></a>
  31604. <b>Attribute</b>
  31605. <ul>
  31606. <a name="captionLeft"></a>
  31607. <li>captionLeft<br>
  31608. Anzeigen der Legende auf der linken Seite. &Uuml;berholt, wird
  31609. automatisch nach captionPos konvertiert.
  31610. </li><br>
  31611. <a name="captionPos"></a>
  31612. <li>captionPos<br>
  31613. right - Anzeigen der Legende auf der rechten Seite (default)<br>
  31614. left - Anzeigen der Legende auf der linken Seite<br>
  31615. auto - Anzeigen der Labels der Legende auf der linken oder rechten Seite
  31616. je nach Achsenzugeh&ouml;rigkeit<br>
  31617. </li><br>
  31618. <li><a href="#endPlotNow">endPlotNow</a></li><br>
  31619. <li><a href="#endPlotToday">endPlotToday</a></li><br>
  31620. <a name="fixedoffset"></a>
  31621. <li>fixedoffset &lt;nTage&gt;<br>
  31622. Verschiebt den Plot-Offset um einen festen Wert (in Tagen).
  31623. </li><br>
  31624. <a name="fixedrange"></a>
  31625. <li>fixedrange [offset]<br>
  31626. Erste Alternative:<br>
  31627. Enth&auml;lt zwei Zeit-Spezifikationen in der Schreibweise YYYY-MM-DD,
  31628. getrennt durch ein Leerzeichen. scrollen der Zeitachse ist nicht
  31629. m&ouml;glich, es wird z.B. verwendet, um sich die Daten verschiedener
  31630. Jahre auf eine Seite anzusehen.<br><br>
  31631. Zweite Alternative:<br>
  31632. Wenn der Wert entweder hour, &lt;N&gt;hours, day, &lt;N&gt;days, week,
  31633. month, year oder &lt;N&gt;years lautet, kann der Zoom-Level f&uuml;r
  31634. dieses SVG unabh&auml;ngig vom User-spezifischen Zoom eingestellt werden.
  31635. Diese Einstellung ist n&uuml;tzlich f&uuml;r mehrere Plots auf einer
  31636. Seite: Eine Grafik ist mit dem Standard-Zoom am aussagekr&auml;ftigsten,
  31637. die anderen mit einem Zoom &uuml;ber eine Woche. Der optionale
  31638. ganzzahlige Parameter [offset] setzt ein anderes Zeitintervall (z.B.
  31639. letztes Jahr: <code>fixedrange year -1</code>, vorgestern: <code>
  31640. fixedrange day -2</code>).
  31641. </li><br>
  31642. <a name="label"></a>
  31643. <li>label<br>
  31644. Eine Liste, bei der die einzelnen Werte mit einem zweifachen Doppelpunkt
  31645. voneinander getrennt werden. Diese Liste wird verwendet um die &lt;L#&gt;
  31646. Zeichenfolgen in der .gplot-Datei zu ersetzen. Dabei steht das # f&uuml;r
  31647. eine laufende Ziffer beginnend mit 1 (&lt;L1&gt;, &lt;L2&gt;, usw.).
  31648. Jeder Wert wird als Perl-Ausdruck bewertet, deshalb hat man Zugriff z.B.
  31649. auf die hinterlegten Funktionen. <br><br>
  31650. Egal, ob es sich bei der Plotart um gnuplot-scroll(-svg) oder SVG
  31651. handelt, es k&ouml;nnen ebenfalls die Werte der individuellen Kurve
  31652. f&uuml;r min, max, mindate, maxdate, avg, cnt, sum, currval (letzter
  31653. Wert) und currdate (letztes Datum) durch Zugriff der entsprechenden Werte
  31654. &uuml;ber das data Hash verwendet werden. Siehe untenstehendes
  31655. Beispiel:<br>
  31656. <ul>
  31657. <li>Beschriftunng der rechten und linken y-Achse:<br>
  31658. <ul>
  31659. <li>Fhem config:<br>
  31660. <code>attr wl_1 label "Temperature"::"Humidity"</code></li>
  31661. <li>Eintrag in der .gplot-Datei:<br>
  31662. <code>set ylabel &lt;L1&gt;<br>
  31663. set y2label &lt;L2&gt;</code></li>
  31664. </ul>
  31665. </li>
  31666. <li>&Uuml;berschrift aus Maximum und dem letzten Wert der ersten
  31667. Kurve(FileLog)
  31668. <ul>
  31669. <li>Fhem config:<br>
  31670. <code>attr wl_1 label "Max $data{max1}, Current
  31671. $data{currval1}"</code></li>
  31672. <li>Eintrag in der .gplot-Datei:<br>
  31673. <code>set title &lt;L1&gt;</code><br></li>
  31674. </ul>
  31675. </li>
  31676. </ul>
  31677. Die Werte minAll und maxAll (die das Minimum/Maximum aller Werte
  31678. repr&auml;sentieren) sind ebenfals im data hash vorhanden.
  31679. <br>&Uuml;berholt, wird durch das plotReplace Attribut abgel&ouml;st.
  31680. </li><br>
  31681. <li><a href="#nrAxis">nrAxis</a></li><br>
  31682. <a name="plotfunction"></a>
  31683. <li>plotfunction<br>
  31684. Eine Liste, deren Werte durch Leerzeichen voneinander getrennt sind.
  31685. Diese Liste wird verwendet um die &lt;SPEC#&gt; Zeichenfolgen in der
  31686. .gplot-Datei zu ersetzen. Dabei steht das # f&uuml;r eine laufende Ziffer
  31687. beginnend mit 1 (&lt;SPEC1&gt;, &lt;SPEC2&gt;, usw.) in der #FileLog oder
  31688. #DBLog Anweisung. Mit diesem Attrbute ist es m&ouml;glich eine
  31689. .gplot-Datei f&uuml;r mehrere Ger&auml;te mit einem einzigen logdevice zu
  31690. verwenden. <br><br>
  31691. <ul><b>Beispiel:</b><br>
  31692. <li>#FileLog &lt;SPEC1&gt;<br>
  31693. mit:<br>
  31694. <code>attr &lt;SVGdevice&gt; plotfunction "4:IR\x3a:0:"</code><br>
  31695. anstelle von:<br>
  31696. <code>#FileLog 4:IR\x3a:0:</code>
  31697. </li>
  31698. <li>#DbLog &lt;SPEC1&gt;<br>
  31699. mit:<br>
  31700. <code>attr &lt;SVGdevice&gt; plotfunction
  31701. "Garage_Raumtemp:temperature::"</code><br>
  31702. anstelle von:<br>
  31703. <code>#DbLog Garage_Raumtemp:temperature::</code>
  31704. </li>
  31705. </ul>
  31706. &Uuml;berholt, wird durch das plotReplace Attribut abgel&ouml;st.
  31707. </li><br>
  31708. <li><a href="#plotmode">plotmode</a></li><br>
  31709. <a name="plotReplace"></a>
  31710. <li>plotReplace<br>
  31711. Leerzeichen getrennte Liste von Name=Wert Paaren. Wert kann Leerzeichen
  31712. enthalten, falls es in "" oder {} eingeschlossen ist. Wert wird als
  31713. perl-Ausdruck ausgewertet, falls es in {} eingeschlossen ist.
  31714. <br>
  31715. In der .gplot Datei werden &lt;Name&gt; Zeichenketten durch den
  31716. zugehoerigen Wert ersetzt, die Auswertung von {} Ausdr&uuml;cken erfolgt
  31717. <i>nach</i> dem die Daten ausgewertet wurden, d.h. man kann hier
  31718. $data{min1},etc verwenden.
  31719. <br>
  31720. Bei %Name% erfolgt die Ersetzung <i>vor</i> der Datenauswertung, das kann
  31721. man verwenden, um Parameter f&uuml;r die Auswertung zu ersetzen.
  31722. </li><br>
  31723. <li><a href="#plotsize">plotsize</a></li><br>
  31724. <li><a href="#plotWeekStartDay">plotWeekStartDay</a></li><br>
  31725. <a name="startDate"></a>
  31726. <li>startDate<br>
  31727. Setzt das Startdatum f&uuml;r den Plot. Wird f&uuml;r Demo-Installationen
  31728. verwendet.
  31729. </li><br>
  31730. <a name="title"></a>
  31731. <li>title<br>
  31732. Eine besondere Form der &Uuml;berschrift (siehe oben), bei der die
  31733. Zeichenfolge &lt;TL&gt; in der .gplot-Datei ersetzt wird.
  31734. Standardm&auml;&szlig;ig wird als &lt;TL&gt; der Dateiname des Logfiles
  31735. eingesetzt.
  31736. <br>&Uuml;berholt, wird durch das plotReplace Attribut abgel&ouml;st.
  31737. </li><br>
  31738. </ul>
  31739. <br>
  31740. <a name="plotEditor"></a>
  31741. <b>Plot-Editor</b>
  31742. <br>
  31743. Dieser Editor ist in der Detailansicht der SVG-Instanz zu sehen. Die
  31744. meisten Features sind hier einleuchtend und bekannt, es gibt aber auch
  31745. einige Ausnahmen:
  31746. <ul>
  31747. <li>wenn f&uuml;r ein Diagramm die &Uuml;berschrift unterdr&uuml;ckt werden
  31748. soll, muss im Eingabefeld <code>notitle</code> eingetragen werden.
  31749. </li>
  31750. <li>wenn ein fester Wert (nicht aus einer Wertespalte) definiert werden
  31751. soll, f&uuml;r den Fall, das eine Zeichenfoge gefunden wurde (z.B. 1
  31752. f&uuml;r eine FS20 Schalter, der AN ist und 0 f&uuml;r den AUS-Zustand),
  31753. muss zuerst das Tics-Feld gef&uuml;llt, und die .gplot-Datei
  31754. gespeichert werden, bevor der Wert &uuml;ber die Dropdownliste erreichbar
  31755. ist.
  31756. <ul><b>Beispiel:</b><br>
  31757. Eingabe im Tics-Feld: ("On" 1, "Off" 0)<br>
  31758. .gplot-Datei speichern<br>
  31759. "1" als Regexp switch.on und "0" f&uuml;r den Regexp switch.off vom
  31760. Spalten-Dropdown ausw&auml;hlen (auf die G&auml;nsef&uuml;&szlig;chen
  31761. achten!).<br>
  31762. .gplot-Datei erneut speichern<br>
  31763. </ul>
  31764. </li>
  31765. <li>Falls Range der Form {...} entspricht, dann wird sie als Perl -
  31766. Expression ausgewertet. Das Ergebnis muss in der Form [min:max] sein.
  31767. </li>
  31768. </ul>
  31769. Die Sichtbarkeit des Plot-Editors kann mit dem FHEMWEB Attribut <a
  31770. href="#ploteditor">ploteditor</a> konfiguriert werden.
  31771. <br>
  31772. </ul>
  31773. <p><a name="SWAP"></a>
  31774. <h3>SWAP</h3>
  31775. <ul>
  31776. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  31777. hier: <a href='commandref.html#SWAP'>SWAP</a><br/>
  31778. </ul>
  31779. <a name="SWAP_0000002200000003"></a>
  31780. <h3>SWAP_0000002200000003</h3>
  31781. <ul>
  31782. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  31783. hier: <a href='commandref.html#SWAP_0000002200000003'>SWAP_0000002200000003</a><br/>
  31784. </ul>
  31785. <a name="SWAP_0000002200000008"></a>
  31786. <h3>SWAP_0000002200000008</h3>
  31787. <ul>
  31788. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  31789. hier: <a href='commandref.html#SWAP_0000002200000008'>SWAP_0000002200000008</a><br/>
  31790. </ul>
  31791. <a name="SYSMON"></a>
  31792. <h3>SYSMON</h3>
  31793. <div class='langLinks'>[<a href='commandref.html#SYSMON'>EN</a> DE]</div>
  31794. (<a href="commandref.html#SYSMON">en</a> | de)
  31795. <ul>
  31796. Dieses Modul liefert diverse Informationen und Statistiken zu dem System, auf dem FHEM-Server ausgef&uuml;hrt wird.
  31797. Weiterhin k&ouml;nnen auch Remote-Systeme abgefragt werden (Telnet).
  31798. Es werden nur Linux-basierte Systeme unterst&uuml;tzt. Manche Informationen sind hardwarespezifisch und sind daher nicht auf jeder Plattform
  31799. verf&uuml;gbar.
  31800. Bis jetzt wurde dieses Modul auf folgenden Systemen getestet: Raspberry Pi (Debian Wheezy), BeagleBone Black,
  31801. FritzBox 7390, WR703N unter OpenWrt, CubieTruck und einige andere.
  31802. <br>
  31803. <br>
  31804. F&uuml;r Informationen zu einer FritzBox beachten Sie bitte auch Module: <a href="#FRITZBOX">FRITZBOX</a> und <a href="#FB_CALLMONITOR">FB_CALLMONITOR</a>.
  31805. <i>Das Modul nutzt das Perlmodule 'Net::Telnet' f&uuml;r den Fernzugriff. Dieses muss ggf. nachinstalliert werden.</i>
  31806. <br><br>
  31807. <b>Define</b>
  31808. <br><br>
  31809. <code>define &lt;name&gt; SYSMON [MODE[:[USER@]HOST][:PORT]] [&lt;M1&gt;[ &lt;M2&gt;[ &lt;M3&gt;[ &lt;M4&gt;]]]]</code><br>
  31810. <br>
  31811. Diese Anweisung erstellt eine neue SYSMON-Instanz.
  31812. Die Parameter M1 bis M4 legen die Aktualisierungsintervalle f&uuml;r verschiedenen Readings (Statistiken) fest.
  31813. Die Parameter sind als Multiplikatoren f&uuml;r die Zeit, die durch INTERVAL_BASE definiert ist, zu verstehen.
  31814. Da diese Zeit fest auf 60 Sekunden gesetzt ist, k&ouml;nnen die Mx-Parameters als Zeitintervalle in Minuten angesehen werden.<br>
  31815. Wird einer (oder mehrere) Multiplikatoren auf Null gesetzt werden, wird das entsprechende Readings deaktiviert.<br>
  31816. <br>
  31817. Die Parameter sind f&uuml;r die Aktualisierung der Readings nach folgender Schema zust&auml;ndig:
  31818. <ul>
  31819. <li>M1: (Default-Wert: 1)<br>
  31820. cpu_freq, cpu_temp, cpu_temp_avg, loadavg, stat_cpu, stat_cpu_diff, stat_cpu_percent, stat_cpu_text, power readings<br><br>
  31821. </li>
  31822. <li>M2: (Default-Wert: M1)<br>
  31823. ram, swap<br>
  31824. </li>
  31825. <li>M3: (Default-Wert: M1)<br>
  31826. eth0, eth0_diff, wlan0, wlan0_diff<br><br>
  31827. </li>
  31828. <li>M4: (Default-Wert: 10*M1)<br>
  31829. Filesystem-Informationen<br><br>
  31830. </li>
  31831. <li>folgende Parameter werden immer anhand des Basisintervalls (unabh&auml;ngig von den Mx-Parameters) aktualisiert:<br>
  31832. fhemuptime, fhemuptime_text, idletime, idletime_text, uptime, uptime_text, starttime, starttime_text<br><br>
  31833. </li>
  31834. </ul>
  31835. F&uuml;r Abfrage eines entfernten Systems muss mindestens deren Adresse (HOST) angegeben werden, bei Bedarf erg&auml;nzt durch den Port und/oder den Benutzernamen.
  31836. Das eventuell ben&ouml;tigte Passwort muss einmalig mit dem Befehl 'set password &lt;pass&gt;' definiert werden.
  31837. Als MODE sind derzeit 'telnet', 'ssh' und 'local' erlaubt. 'local' erfordert keine weiteren Angaben und kann auch ganz weggelassen werden.
  31838. <br>
  31839. Bei SSH-Anmeldung mit Passwort muss 'sshpass' installiert sein (Achtung! Sicherheitstechnisch nicht empfehlenswert! Besser Public-Key-Verfahren benutzen).
  31840. Damit SSH-Anmeldung funktioniert, muss ggf. einmalig eine manuelle SSH-Verbindung an die Remote-Machine von dem FHEM-Acount
  31841. (unter dessen Rechten FHEM läuft) durchgef&uuml;hrt und fingerprint best&auml;tigt werden.
  31842. <br>
  31843. <br>
  31844. <b>Readings:</b>
  31845. <br><br>
  31846. <ul>
  31847. <li>cpu_core_count<br>
  31848. Anzahl der CPU Kerne
  31849. </li>
  31850. <li>cpu_model_name<br>
  31851. CPU Modellname
  31852. </li>
  31853. <li>cpu_bogomips<br>
  31854. CPU Speed: BogoMIPS
  31855. </li>
  31856. <li>cpu_freq (auf den DualCore-Systemen wie Cubietruck auch cpu1_freq)<br>
  31857. CPU-Frequenz
  31858. </li>
  31859. <br>
  31860. <li>cpu_temp<br>
  31861. CPU-Temperatur
  31862. </li>
  31863. <br>
  31864. <li>cpu_temp_avg<br>
  31865. Durchschnitt der CPU-Temperatur, gebildet &uuml;ber die letzten 4 Werte.
  31866. </li>
  31867. <br>
  31868. <li>fhemuptime<br>
  31869. Zeit (in Sekunden) seit dem Start des FHEM-Servers.
  31870. </li>
  31871. <br>
  31872. <li>fhemuptime_text<br>
  31873. Zeit seit dem Start des FHEM-Servers: Menschenlesbare Ausgabe (texttuelle Darstellung).
  31874. </li>
  31875. <br>
  31876. <li>fhemstarttime<br>
  31877. Startzeit (in Sekunden seit 1.1.1970 1:00:00) des FHEM-Servers.
  31878. </li>
  31879. <br>
  31880. <li>fhemstarttime_text<br>
  31881. Startzeit des FHEM-Servers: Menschenlesbare Ausgabe (texttuelle Darstellung).
  31882. </li>
  31883. <br>
  31884. <li>idletime<br>
  31885. Zeit (in Sekunden und in Prozent), die das System (nicht der FHEM-Server!)
  31886. seit dem Start in dem Idle-Modus verbracht hat. Also die Zeit der Inaktivit&auml;t.
  31887. </li>
  31888. <br>
  31889. <li>idletime_text<br>
  31890. Zeit der Inaktivit&auml;t des Systems seit dem Systemstart in menschenlesbarer Form.
  31891. </li>
  31892. <br>
  31893. <li>loadavg<br>
  31894. Ausgabe der Werte f&uuml;r die Systemauslastung (load average): 1 Minute-, 5 Minuten- und 15 Minuten-Werte.
  31895. </li>
  31896. <br>
  31897. <li>ram<br>
  31898. Ausgabe der Speicherauslastung.
  31899. </li>
  31900. <br>
  31901. <li>swap<br>
  31902. Benutzung und Auslastung der SWAP-Datei (bzw. Partition).
  31903. </li>
  31904. <br>
  31905. <li>uptime<br>
  31906. Zeit (in Sekenden) seit dem Systemstart.
  31907. </li>
  31908. <br>
  31909. <li>uptime_text<br>
  31910. Zeit seit dem Systemstart in menschenlesbarer Form.
  31911. </li>
  31912. <br>
  31913. <li>starttime<br>
  31914. Systemstart (Sekunden seit Thu Jan 1 01:00:00 1970).
  31915. </li>
  31916. <br>
  31917. <li>starttime_text<br>
  31918. Systemstart in menschenlesbarer Form.
  31919. </li>
  31920. <br>
  31921. <li>Netzwerkinformationen<br>
  31922. Informationen zu den &uuml;ber die angegebene Netzwerkschnittstellen &uuml;bertragene Datenmengen
  31923. und der Differenz zu der vorherigen Messung.
  31924. <br>
  31925. Beispiele:<br>
  31926. Menge der &uuml;bertragenen Daten &uuml;ber die Schnittstelle eth0.<br>
  31927. <code>eth0: RX: 940.58 MB, TX: 736.19 MB, Total: 1676.77 MB</code><br>
  31928. &Auml;nderung der &uuml;bertragenen Datenmenge in Bezug auf den vorherigen Aufruf (f&uuml;r eth0).<br>
  31929. <code>eth0_diff: RX: 0.66 MB, TX: 0.06 MB, Total: 0.72 MB</code><br>
  31930. IP and IP v6 Adressen
  31931. <code>eth0_ip 192.168.0.15</code><br>
  31932. <code>eth0_ip6 fe85::49:4ff:fe85:f885/64</code><br>
  31933. </li>
  31934. <br>
  31935. <li>Network Speed (wenn verf&uuml;gbar)<br>
  31936. Geschwindigkeit der aktuellen Netzwerkverbindung.
  31937. <br>
  31938. Beispiel:<br>
  31939. <code>eth0_speed 100</code><br>
  31940. </li>
  31941. <br>
  31942. <li>Dateisysteminformationen<br>
  31943. Informationen zu der Gr&ouml;&szlig;e und der Belegung der gew&uuml;nschten Dateisystemen.<br>
  31944. Seit Version 1.1.0 k&ouml;nnen Dateisysteme auch benannt werden (s.u.). <br>
  31945. In diesem Fall werden f&uuml;r die diese Readings die angegebenen Namen verwendet.<br>
  31946. Dies soll die &Uuml;bersicht verbessern und die Erstellung von Plots erleichten.<br>
  31947. Beispiel:<br>
  31948. <code>fs_root: Total: 7340 MB, Used: 3573 MB, 52 %, Available: 3425 MB at /</code>
  31949. </li>
  31950. <br>
  31951. <li>CPU Auslastung<br>
  31952. Informationen zu der Auslastung der CPU(s).<br>
  31953. Beispiel:<br>
  31954. <code>stat_cpu: 10145283 0 2187286 90586051 542691 69393 400342</code><br>
  31955. <code>stat_cpu_diff: 2151 0 1239 2522 10 3 761</code><br>
  31956. <code>stat_cpu_percent: 4.82 0.00 1.81 93.11 0.05 0.00 0.20</code><br>
  31957. <code>stat_cpu_text: user: 32.17 %, nice: 0.00 %, sys: 18.53 %, idle: 37.72 %, io: 0.15 %, irq: 0.04 %, sirq: 11.38 %</code>
  31958. </li>
  31959. <br>
  31960. <li>Benutzerdefinierte Eintr&auml;ge<br>
  31961. Diese Readings sind Ausgaben der Kommanden, die an das Betriebssystem &uuml;bergeben werden.
  31962. Die entsprechende Angaben werden durch Attributen <code>user-defined</code> und <code>user-fn</code> definiert.
  31963. </li>
  31964. <br>
  31965. <b>FritzBox-spezifische Readings</b>
  31966. <li>wlan_state<br>
  31967. WLAN-Status: on/off
  31968. </li>
  31969. <br>
  31970. <li>wlan_guest_state<br>
  31971. Gast-WLAN-Status: on/off
  31972. </li>
  31973. <br>
  31974. <li>internet_ip<br>
  31975. aktuelle IP-Adresse
  31976. </li>
  31977. <br>
  31978. <li>internet_state<br>
  31979. Status der Internetverbindung: connected/disconnected
  31980. </li>
  31981. <br>
  31982. <li>night_time_ctrl<br>
  31983. Status der Klingelsperre on/off
  31984. </li>
  31985. <br>
  31986. <li>num_new_messages<br>
  31987. Anzahl der neuen Anrufbeantworter-Meldungen
  31988. </li>
  31989. <br>
  31990. <li>fw_version_info<br>
  31991. Angaben zu der installierten Firmware-Version: &lt;VersionNr&gt; &lt;Erstelldatum&gt; &lt;Zeit&gt;
  31992. </li>
  31993. <br>
  31994. <b>DSL Informationen (FritzBox)</b>
  31995. <li>dsl_rate<br>
  31996. Down/Up Verbindungsgeschwindigkeit
  31997. </li>
  31998. <br>
  31999. <li>dsl_synctime<br>
  32000. Sync-Zeit mit Vermittlungsstelle
  32001. </li>
  32002. <br>
  32003. <li>dsl_crc_15<br>
  32004. Nicht behebbare &Uuml;bertragungsfehler in den letzten 15 Minuten
  32005. </li>
  32006. <br>
  32007. <li>dsl_fec_15<br>
  32008. Behebbare &Uuml;bertragungsfehler in den letzten 15 Minuten
  32009. </li>
  32010. <br>
  32011. <b>Readings zur Stromversorgung</b>
  32012. <li>power_ac_stat<br>
  32013. Statusinformation f&uuml;r die AC-Buchse: online (0|1), present (0|1), voltage, current<br>
  32014. Beispiel:<br>
  32015. <code>power_ac_stat: 1 1 4.807 264</code><br>
  32016. </li>
  32017. <br>
  32018. <li>power_ac_text<br>
  32019. Statusinformation f&uuml;r die AC-Buchse in menschenlesbarer Form<br>
  32020. Beispiel:<br>
  32021. <code>power_ac_text ac: present / online, Voltage: 4.807 V, Current: 264 mA</code><br>
  32022. </li>
  32023. <br>
  32024. <li>power_usb_stat<br>
  32025. Statusinformation f&uuml;r die USB-Buchse
  32026. </li>
  32027. <br>
  32028. <li>power_usb_text<br>
  32029. Statusinformation f&uuml;r die USB-Buchse in menschenlesbarer Form
  32030. </li>
  32031. <br>
  32032. <li>power_battery_stat<br>
  32033. Statusinformation f&uuml;r die Batterie (wenn vorhanden): online (0|1), present (0|1), voltage, current, actual capacity<br>
  32034. Beispiel:<br>
  32035. <code>power_battery_stat: 1 1 4.807 264 100</code><br>
  32036. </li>
  32037. <br>
  32038. <li>power_battery_text<br>
  32039. Statusinformation f&uuml;r die Batterie (wenn vorhanden) in menschenlesbarer Form
  32040. </li>
  32041. <br>
  32042. <li>power_battery_info<br>
  32043. Menschenlesbare Zusatzinformationen f&uuml;r die Batterie (wenn vorhanden): Technologie, Kapazit&auml;t, Status, Zustand, Gesamtkapazit&auml;t<br>
  32044. Beispiel:<br>
  32045. <code>power_battery_info: battery info: Li-Ion , capacity: 100 %, status: Full , health: Good , total capacity: 2100 mAh</code><br>
  32046. Die Kapazit&auml;t soll in script.bin (z.B. ct-hdmi.bin) eingestellt werden (Parameter pmu_battery_cap). Mit bin2fex konvertieren (bin2fex -> script.fex -> edit -> fex2bin -> script.bin)<br>
  32047. </li>
  32048. <br>
  32049. <li>cpuX_freq_stat<br>
  32050. Frequenz-Statistik f&uuml;r die CPU X: Minimum, Maximum und Durchschnittswert<br>
  32051. Beispiel:<br>
  32052. <code>cpu0_freq_stat: 100 1000 900</code><br>
  32053. </li>
  32054. <br>
  32055. <li>cpuX_idle_stat<br>
  32056. Leerlaufzeit-Statistik f&uuml;r die CPU X: Minimum, Maximum und Durchschnittswert<br>
  32057. Beispiel:<br>
  32058. <code>cpu0_freq_stat: 23.76 94.74 90.75</code><br>
  32059. </li>
  32060. <br>
  32061. <li>cpu[X]_temp_stat<br>
  32062. Temperatur-Statistik f&uuml;r CPU: Minimum, Maximum und Durchschnittswert<br>
  32063. Beispiel:<br>
  32064. <code>cpu_temp_stat: 41.00 42.50 42.00</code><br>
  32065. </li>
  32066. <br>
  32067. <li>ram_used_stat<br>
  32068. Statistik der RAM-Nutzung: Minimum, Maximum und Durchschnittswert<br>
  32069. Example:<br>
  32070. <code>ram_used_stat: 267.55 1267.75 855.00</code><br>
  32071. </li>
  32072. <br>
  32073. <li>swap_used_stat<br>
  32074. Statistik der SWAP-Nutzung: Minimum, Maximum und Durchschnittswert<br>
  32075. Example:<br>
  32076. <code>swap_used_stat: 0 1024.00 250.00</code><br>
  32077. </li>
  32078. <br>
  32079. <br>
  32080. </ul>
  32081. <br>
  32082. <b>Get:</b><br><br>
  32083. <ul>
  32084. <li>interval<br>
  32085. Listet die bei der Definition angegebene Polling-Intervalle auf.
  32086. </li>
  32087. <br>
  32088. <li>interval_multipliers<br>
  32089. Listet die definierten Multipliers.
  32090. </li>
  32091. <br>
  32092. <li>list<br>
  32093. Gibt alle Readings aus.
  32094. </li>
  32095. <br>
  32096. <li>update<br>
  32097. Aktualisiert alle Readings. Alle Werte werden neu abgefragt.
  32098. </li>
  32099. <br>
  32100. <li>version<br>
  32101. Zeigt die Version des SYSMON-Moduls.
  32102. </li>
  32103. <br>
  32104. <br>
  32105. <li>list_lan_devices<br>
  32106. Listet bekannte Ger&auml;te im LAN (nur FritzBox).
  32107. </li>
  32108. </ul>
  32109. <br>
  32110. <b>Set:</b><br><br>
  32111. <ul>
  32112. <li>interval_multipliers<br>
  32113. Definiert Multipliers (wie bei der Definition des Ger&auml;tes).
  32114. </li>
  32115. <br>
  32116. <li>clean<br>
  32117. L&ouml;scht benutzerdefinierbare Readings. Nach einem Update (oder nach der automatischen Aktualisierung) werden neue Readings generiert.<br>
  32118. </li>
  32119. <br>
  32120. <li>clear &lt;reading name&gt;<br>
  32121. L&ouml;scht den Reading-Eintrag mit dem gegebenen Namen. Nach einem Update (oder nach der automatischen Aktualisierung)
  32122. wird dieser Eintrag ggf. neu erstellt (falls noch definiert). Dieses Mechanismus erlaubt das gezielte L&ouml;schen nicht mehr ben&ouml;tigter
  32123. benutzerdefinierten Eintr&auml;ge.<br>
  32124. </li>
  32125. <br>
  32126. <li>password &lt;Passwort&gt;<br>
  32127. Definiert das Passwort f&uuml;r den Remote-Zugriff (i.d.R. nur einmalig notwendig).
  32128. </li>
  32129. <br>
  32130. </ul>
  32131. <br>
  32132. <b>Attributes:</b><br><br>
  32133. <ul>
  32134. <li>filesystems &lt;reading name&gt;[:&lt;mountpoint&gt;[:&lt;comment&gt;]],...<br>
  32135. Gibt die zu &uuml;berwachende Dateisysteme an. Es wird eine kommaseparierte Liste erwartet.<br>
  32136. Reading-Name wird bei der Anzeige und Logging verwendet, Mount-Point ist die Grundlage der Auswertung,
  32137. Kommentar ist relevant f&uuml;r die HTML-Anzeige (s. SYSMON_ShowValuesHTML)<br>
  32138. Beispiel: <code>/boot,/,/media/usb1</code><br>
  32139. oder: <code>fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick</code><br>
  32140. Im Sinne der besseren &Uuml;bersicht sollten zumindest Name und MountPoint angegeben werden.
  32141. </li>
  32142. <br>
  32143. <li>network-interfaces &lt;name&gt;[:&lt;interface&gt;[:&lt;comment&gt;]],...<br>
  32144. Kommaseparierte Liste der Netzwerk-Interfaces, die &uuml;berwacht werden sollen.
  32145. Jeder Eintrag besteht aus dem Reading-Namen, dem Namen
  32146. des Netwerk-Adapters und einem Kommentar f&uuml;r die HTML-Anzeige (s. SYSMON_ShowValuesHTML). Wird kein Doppelpunkt verwendet,
  32147. wird der Wert gleichzeitig als Reading-Name und Interface-Name verwendet.<br>
  32148. Beispiel <code>ethernet:eth0:Ethernet,wlan:wlan0:WiFi</code><br>
  32149. </li>
  32150. <br>
  32151. <li>user-defined &lt;readingsName&gt;:&lt;Interval_Minutes&gt;:&lt;Comment&gt;:&lt;Cmd&gt;,...<br>
  32152. Diese kommaseparierte Liste definiert Eintr&auml;ge mit jeweils folgenden Daten:
  32153. Reading-Name, Aktualisierungsintervall in Minuten, Kommentar und Betriebssystem-Commando.
  32154. <br>Die BS-Befehle werden entsprechend des angegebenen Intervalls ausgef&uuml;hrt und als Readings mit den angegebenen Namen vermerkt.
  32155. Kommentare werden f&uuml;r die HTML-Ausgaben (s. SYSMON_ShowValuesHTML) ben&ouml;tigt.
  32156. <br>Alle Parameter sind nicht optional!
  32157. <br>Es ist wichtig, dass die angegebenen Befehle schnell ausgef&uuml;hrt werden, denn in dieser Zeit wird der gesamte FHEM-Server blockiert!
  32158. <br>Werden Ergebnisse der lang laufenden Operationen ben&ouml;tigt, sollten diese z.B als CRON-Job eingerichtet werden
  32159. und in FHEM nur die davor gespeicherten Ausgaben visualisiert.<br><br>
  32160. Beispiel: Anzeige der vorliegenden Paket-Aktualisierungen f&uuml;r das Betriebssystem:<br>
  32161. In einem cron-Job wird folgendes t&auml;glich ausgef&uuml;hrt: <br>
  32162. <code> sudo apt-get update 2>/dev/null >/dev/null</code>
  32163. <code> apt-get upgrade --dry-run| perl -ne '/(\d*)\s[upgraded|aktualisiert]\D*(\d*)\D*install|^ \S+.*/ and print "$1 aktualisierte, $2 neue Pakete"' 2>/dev/null &gt; /opt/fhem/data/updatestatus.txt</code>
  32164. <br>
  32165. Das Attribute <code>uder-defined</code> wird auf <br><code>sys_updates:1440:System Aktualisierungen:cat /opt/fhem/data/updatestatus.txt</code><br> gesetzt.
  32166. Danach wird die Anzahl der verf&uuml;gbaren Aktualisierungen t&auml;glich als Reading 'sys_updates' protokolliert.
  32167. </li>
  32168. <br>
  32169. <li>user-fn &lt;fn_name&gt;:&lt;Interval_Minutes&gt;:&lt;reading_name1&gt;:&lt;reading_name2&gt;...[:&lt;reading_nameX&gt;],...<br>
  32170. Liste der benutzerdefinierten Perlfunktionen.<br>
  32171. Als &lt;fn_name&gt; k&ouml;nnen entweder Name einer Perlfunktion oder ein Perlausdruck verwendet werden.
  32172. Die Perlfunktion bekommt den Device-Hash als &Uuml;bergabeparameter und muss ein Array mit Werte liefern.
  32173. Diese Werte werden entsprechend den Parameter &lt;reading_nameX&gt; in Readings &uuml;bernommen.<br>
  32174. Ein Perlausdruck muss in geschweifte Klammer eingeschlossen werden und kann folgende Paramter verwenden: $HASH (Device-Hash) und $NAME (Device-Name).
  32175. R&uuml;ckgabe wird analog einer Perlfunktion erwartet.<br>
  32176. Wichtig! Die Trennung zwischen mehreren Benutzerfunktionen muss mit einem Komma UND einem Leerzeichen erfolgen! Innerhalb der Funktiondefinition d&uuml;rfen Kommas nicht durch Leerzeichen gefolgt werden.
  32177. </li>
  32178. <br>
  32179. <li>disable<br>
  32180. M&ouml;gliche Werte: <code>0,1</code>. Bei <code>1</code> wird die Aktualisierung gestoppt.
  32181. </li>
  32182. <br>
  32183. <li>telnet-prompt-regx, telnet-login-prompt-regx<br>
  32184. RegExp zur Erkennung von Login- und Kommandozeile-Prompt. (Nur f&uuml;r Zugriffe &uuml;ber Telnet relevant.)
  32185. </li>
  32186. <br>
  32187. <li>exclude<br>
  32188. Erlaubt das Abfragen bestimmten Informationen zu unterbinden. <br>
  32189. Mögliche Werte: user-defined (s. user-defined und user-fn), cpucount, uptime, fhemuptime,
  32190. loadavg, cputemp, cpufreq, cpuinfo, diskstat, cpustat, ramswap, filesystem, network,
  32191. fbwlan, fbnightctrl, fbnewmessages, fbdecttemp, fbversion, fbdsl, powerinfo
  32192. </li>
  32193. <br>
  32194. </ul>
  32195. <br>
  32196. <b>Plots:</b><br><br>
  32197. <ul>
  32198. F&uuml;r dieses Modul sind bereits einige gplot-Dateien vordefiniert:<br>
  32199. <ul>
  32200. FileLog-Versionen:<br>
  32201. <code>
  32202. SM_RAM.gplot<br>
  32203. SM_CPUTemp.gplot<br>
  32204. SM_FS_root.gplot<br>
  32205. SM_FS_usb1.gplot<br>
  32206. SM_Load.gplot<br>
  32207. SM_Network_eth0.gplot<br>
  32208. SM_Network_eth0t.gplot<br>
  32209. SM_Network_wlan0.gplot<br>
  32210. SM_CPUStat.gplot<br>
  32211. SM_CPUStatSum.gplot<br>
  32212. SM_CPUStatTotal.gplot<br>
  32213. SM_power_ac.gplot<br>
  32214. SM_power_usb.gplot<br>
  32215. SM_power_battery.gplot<br>
  32216. </code>
  32217. DbLog-Versionen:<br>
  32218. <code>
  32219. SM_DB_all.gplot<br>
  32220. SM_DB_CPUFreq.gplot<br>
  32221. SM_DB_CPUTemp.gplot<br>
  32222. SM_DB_Load.gplot<br>
  32223. SM_DB_Network_eth0.gplot<br>
  32224. SM_DB_RAM.gplot<br>
  32225. </code>
  32226. </ul>
  32227. </ul>
  32228. <br>
  32229. <b>HTML-Ausgabe-Methode (f&uuml;r ein Weblink): SYSMON_ShowValuesHTML(&lt;SYSMON-Instanz&gt;[,&lt;Liste&gt;])</b><br><br>
  32230. <ul>
  32231. Das Modul definiert eine Funktion, die ausgew&auml;hlte Readings in HTML-Format ausgibt. <br>
  32232. Als Parameter wird der Name des definierten SYSMON-Ger&auml;ts erwartet.<br>
  32233. Es kann auch ReadingsGroup, CloneDummy oder andere Module genutzt werden, dann werden einfach deren Readings verwendet.<br>
  32234. Der zweite Parameter ist optional und gibt eine Liste der anzuzeigende Readings
  32235. im Format <code>&lt;ReadingName&gt;[:&lt;Comment&gt;[:&lt;Postfix&gt;[:&lt;FormatString&gt;]]]</code> an.<br>
  32236. Dabei gibt <code>ReadingName</code> den anzuzeigenden Reading an, der Wert aus <code>Comment</code> wird als der Anzeigename verwendet
  32237. und <code>Postfix</code> wird nach dem eihentlichen Wert angezeigt (so k&ouml;nnen z.B. Einheiten wie MHz angezeigt werden).
  32238. Mit Hilfe von FormatString kann die Ausgabe beeinflusst werden (s. sprintf in PerlDoku).<br>
  32239. Falls kein <code>Comment</code> angegeben ist, wird eine intern vordefinierte Beschreibung angegeben.
  32240. Bei benutzerdefinierbaren Readings wird ggf. <code>Comment</code> aus der Definition verwendet.<br>
  32241. Wird keine Liste angegeben, wird eine vordefinierte Auswahl verwendet (alle Werte).<br><br>
  32242. <code>define sysv1 weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}</code><br>
  32243. <code>define sysv2 weblink htmlCode {SYSMON_ShowValuesHTML('sysmon', ('date:Datum', 'cpu_temp:CPU Temperatur: &deg;C', 'cpu_freq:CPU Frequenz: MHz'))}</code>
  32244. </ul>
  32245. <br>
  32246. <b>HTML-Ausgabe-Methode (f&uuml;r ein Weblink): SYSMON_ShowValuesHTMLTitled(&lt;SYSMON-Instance&gt;[,&lt;Title&gt;,&lt;Liste&gt;])</b><br><br>
  32247. <ul>
  32248. Wie SYSMON_ShowValuesHTML, aber mit einer &Uuml;berschrift dar&uuml;ber. Wird keine &Uuml;berschrift angegeben, wird alias des Moduls genutzt (falls definiert).<br>
  32249. </ul>
  32250. <br>
  32251. <b>Text-Ausgabe-Methode (see Weblink): SYSMON_ShowValuesText(&lt;SYSMON-Instance&gt;[,&lt;Liste&gt;])</b><br><br>
  32252. <ul>
  32253. Analog SYSMON_ShowValuesHTML, jedoch formatiert als reines Text.<br>
  32254. </ul>
  32255. <br>
  32256. <b>HTML-Ausgabe-Methode (f&uuml;r ein Weblink): SYSMON_ShowValuesTextTitled(&lt;SYSMON-Instance&gt;[,&lt;Title&gt;,&lt;Liste&gt;])</b><br><br>
  32257. <ul>
  32258. Wie SYSMON_ShowValuesText, aber mit einer &Uuml;berschrift dar&uuml;ber.<br>
  32259. </ul>
  32260. <br>
  32261. <b>Readings-Werte mit Perl lesen: SYSMON_getValues(&lt;name&gt;[, &lt;Liste der gew&uuml;nschten Schl&uuml;ssel&gt;])</b><br><br>
  32262. <ul>
  32263. Liefert ein Hash-Ref mit den gew&uuml;nschten Werten. Wenn keine Liste (array) &uuml;bergeben wird, werden alle Werte geliefert.<br>
  32264. {(SYSMON_getValues("sysmon"))->{'cpu_temp'}}<br>
  32265. {(SYSMON_getValues("sysmon",("cpu_freq","cpu_temp")))->{"cpu_temp"}}<br>
  32266. {join(" ", values (SYSMON_getValues("sysmon")))}<br>
  32267. {join(" ", values (SYSMON_getValues("sysmon",("cpu_freq","cpu_temp"))))}<br>
  32268. </ul>
  32269. <br>
  32270. <b>Beispiele:</b><br><br>
  32271. <ul>
  32272. <code>
  32273. # Modul-Definition<br>
  32274. define sysmon SYSMON 1 1 1 10<br>
  32275. #attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,^~ /.*usb.*,~ /$<br>
  32276. attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,fs_.*,stat_cpu_percent<br>
  32277. attr sysmon filesystems fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick<br>
  32278. attr sysmon network-interfaces eth0:eth0:Ethernet,wlan0:wlan0:WiFi<br>
  32279. attr sysmon group RPi<br>
  32280. attr sysmon room 9.03_Tech<br>
  32281. <br>
  32282. # Log<br>
  32283. define FileLog_sysmon FileLog ./log/sysmon-%Y-%m.log sysmon<br>
  32284. attr FileLog_sysmon group RPi<br>
  32285. attr FileLog_sysmon logtype SM_CPUTemp:Plot,text<br>
  32286. attr FileLog_sysmon room 9.03_Tech<br>
  32287. <br>
  32288. # Visualisierung: CPU-Temperatur<br>
  32289. define wl_sysmon_temp SVG FileLog_sysmon:SM_CPUTemp:CURRENT<br>
  32290. attr wl_sysmon_temp group RPi<br>
  32291. attr wl_sysmon_temp label "CPU Temperatur: Min $data{min2}, Max $data{max2}, Last $data{currval2}"<br>
  32292. attr wl_sysmon_temp room 9.03_Tech<br>
  32293. <br>
  32294. # Visualisierung: Netzwerk-Daten&uuml;bertragung f&uuml;r eth0<br>
  32295. define wl_sysmon_eth0 SVG FileLog_sysmon:SM_Network_eth0:CURRENT<br>
  32296. attr wl_sysmon_eth0 group RPi<br>
  32297. attr wl_sysmon_eth0 label "Netzwerk-Traffic eth0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"<br>
  32298. attr wl_sysmon_eth0 room 9.03_Tech<br>
  32299. <br>
  32300. # Visualisierung: Netzwerk-Daten&uuml;bertragung f&uuml;r wlan0<br>
  32301. define wl_sysmon_wlan0 SVG FileLog_sysmon:SM_Network_wlan0:CURRENT<br>
  32302. attr wl_sysmon_wlan0 group RPi<br>
  32303. attr wl_sysmon_wlan0 label "Netzwerk-Traffic wlan0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"<br>
  32304. attr wl_sysmon_wlan0 room 9.03_Tech<br>
  32305. <br>
  32306. # Visualisierung: CPU-Auslastung (load average)<br>
  32307. define wl_sysmon_load SVG FileLog_sysmon:SM_Load:CURRENT<br>
  32308. attr wl_sysmon_load group RPi<br>
  32309. attr wl_sysmon_load label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"<br>
  32310. attr wl_sysmon_load room 9.03_Tech<br>
  32311. <br>
  32312. # Visualisierung: RAM-Nutzung<br>
  32313. define wl_sysmon_ram SVG FileLog_sysmon:SM_RAM:CURRENT<br>
  32314. attr wl_sysmon_ram group RPi<br>
  32315. attr wl_sysmon_ram label "RAM-Nutzung Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"<br>
  32316. attr wl_sysmon_ram room 9.03_Tech<br>
  32317. <br>
  32318. # Visualisierung: Dateisystem: Root-Partition<br>
  32319. define wl_sysmon_fs_root SVG FileLog_sysmon:SM_FS_root:CURRENT<br>
  32320. attr wl_sysmon_fs_root group RPi<br>
  32321. attr wl_sysmon_fs_root label "Root Partition Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"<br>
  32322. attr wl_sysmon_fs_root room 9.03_Tech<br>
  32323. <br>
  32324. # Visualisierung: Dateisystem: USB-Stick<br>
  32325. define wl_sysmon_fs_usb1 SVG FileLog_sysmon:SM_FS_usb1:CURRENT<br>
  32326. attr wl_sysmon_fs_usb1 group RPi<br>
  32327. attr wl_sysmon_fs_usb1 label "USB1 Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"<br>
  32328. attr wl_sysmon_fs_usb1 room 9.03_Tech<br>
  32329. <br>
  32330. # Anzeige der Readings zum Einbinden in ein 'Raum'.<br>
  32331. define SysValues weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}<br>
  32332. attr SysValues group RPi<br>
  32333. attr SysValues room 9.03_Tech<br>
  32334. <br>
  32335. # Anzeige CPU Auslasung<br>
  32336. define wl_sysmon_cpustat SVG FileLog_sysmon:SM_CPUStat:CURRENT<br>
  32337. attr wl_sysmon_cpustat label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"<br>
  32338. attr wl_sysmon_cpustat group RPi<br>
  32339. attr wl_sysmon_cpustat room 9.99_Test<br>
  32340. attr wl_sysmon_cpustat plotsize 840,420<br>
  32341. define wl_sysmon_cpustat_s SVG FileLog_sysmon:SM_CPUStatSum:CURRENT<br>
  32342. attr wl_sysmon_cpustat_s label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"<br>
  32343. attr wl_sysmon_cpustat_s group RPi<br>
  32344. attr wl_sysmon_cpustat_s room 9.99_Test<br>
  32345. attr wl_sysmon_cpustat_s plotsize 840,420<br>
  32346. define wl_sysmon_cpustatT SVG FileLog_sysmon:SM_CPUStatTotal:CURRENT<br>
  32347. attr wl_sysmon_cpustatT label "CPU-Auslastung"<br>
  32348. attr wl_sysmon_cpustatT group RPi<br>
  32349. attr wl_sysmon_cpustatT plotsize 840,420<br>
  32350. attr wl_sysmon_cpustatT room 9.99_Test<br>
  32351. <br>
  32352. # Anzeige Stromversorgung AC<br>
  32353. define wl_sysmon_power_ac SVG FileLog_sysmon:SM_power_ac:CURRENT<br>
  32354. attr wl_sysmon_power_ac label "Stromversorgung (ac) Spannung: $data{min1} - $data{max1} V, Strom: $data{min2} - $data{max2} mA"<br>
  32355. attr wl_sysmon_power_ac room Technik<br>
  32356. attr wl_sysmon_power_ac group system<br>
  32357. # Anzeige Stromversorgung Battery<br>
  32358. define wl_sysmon_power_bat SVG FileLog_sysmon:SM_power_battery:CURRENT<br>
  32359. attr wl_sysmon_power_bat label "Stromversorgung (bat) Spannung: $data{min1} - $data{max1} V, Strom: $data{min2} - $data{max2} mA"<br>
  32360. attr wl_sysmon_power_bat room Technik<br>
  32361. attr wl_sysmon_power_bat group system<br>
  32362. </code>
  32363. </ul>
  32364. </ul>
  32365. <p><a name="SYSSTAT"></a>
  32366. <h3>SYSSTAT</h3>
  32367. <div class='langLinks'>[<a href='commandref.html#SYSSTAT'>EN</a> DE]</div>
  32368. <ul>
  32369. Das Modul stellt Systemstatistiken f&uuml;r den Rechner, auf dem FHEM l&auml;uft bzw.
  32370. f&uuml;r ein entferntes Linux System, das per vorkonfiguriertem ssh Zugang ohne Passwort
  32371. erreichbar ist, zur Vef&uuml;gung.<br><br>
  32372. Notes:
  32373. <ul>
  32374. <li>Dieses Modul ben&ouml;tigt <code>Sys::Statistics::Linux</code> f&uuml;r Linux.<br>
  32375. Es kann mit '<code>cpan install Sys::Statistics::Linux</code>'<br>
  32376. bzw. auf Debian mit '<code>apt-get install libsys-statistics-linux-perl</code>'
  32377. installiert werden.</li>
  32378. <li>Um einen Zielrechner mit snmp zu &uuml;berwachen, muss
  32379. <code>Net::SNMP</code> installiert sein.<br></li>
  32380. <li>Um die Lastwerte zu plotten, kann der folgende Code verwendet werden:
  32381. <pre>
  32382. define sysstatlog FileLog /usr/local/FHEM/var/log/sysstat-%Y-%m.log sysstat
  32383. attr sysstatlog nrarchive 1
  32384. define svg_sysstat SVG sysstatlog:sysstat:CURRENT
  32385. attr wl_sysstat label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
  32386. attr wl_sysstat room System
  32387. </pre></li>
  32388. <li>Um das Wurzel-Dateisystem (Mountpunkt '/') bei Plots der Plattennutzung zu erhalten,
  32389. sollte dieser Code '<code>#FileLog 4:/\x3a:0:</code>' bzw. '<code>#FileLog 4:\s..\s:0:</code>'
  32390. und <b>nicht</b> dieser Code '<code>#FileLog 4:/:0:</code>' verwendet werden, da der letztere
  32391. alle Mountpunkte darstellt.</li>.
  32392. </ul>
  32393. <a name="SYSSTAT_Define"></a>
  32394. <b>Define</b>
  32395. <ul>
  32396. <code>define &lt;name&gt; SYSSTAT [&lt;interval&gt; [&lt;interval_fs&gt;] [&lt;host&gt;]]</code><br>
  32397. <br>
  32398. definiert ein SYSSTAT Device.<br><br>
  32399. Die (Prozessor)last wird alle &lt;interval&gt; Sekunden aktualisiert. Standard bzw. Minimum ist 60.<br><br>
  32400. Die Plattennutzung wird alle &lt;interval_fs&gt; Sekunden aktualisiert. Standardwert ist &lt;interval&gt;*60
  32401. und Minimum ist 60.
  32402. &lt;interval_fs&gt; wird nur angen&auml;hert und funktioniert am Besten, wenn &lt;interval_fs&gt;
  32403. ein ganzzahliges Vielfaches von &lt;interval&gt; ist.<br><br>
  32404. Wenn &lt;host&gt; angegeben wird, muss der Zugang per ssh ohne Passwort m&ouml;glich sein.<br><br>
  32405. Beispiele:
  32406. <ul>
  32407. <code>define sysstat SYSSTAT</code><br>
  32408. <code>define sysstat SYSSTAT 300</code><br>
  32409. <code>define sysstat SYSSTAT 60 600</code>
  32410. </ul>
  32411. </ul><br>
  32412. <a name="SYSSTAT_Readings"></a>
  32413. <b>Readings</b>
  32414. <ul>
  32415. <li>load<br>
  32416. die durchschnittliche (Prozessor)last der letzten 1 Minute (f&uuml;r Windows Rechner mit
  32417. snmp angen&auml;hertem Wert)</li>
  32418. <li>state<br>
  32419. die durchschnittliche (Prozessor)last der letzten 1, 5 und 15 Minuten (f&uuml;r Windows
  32420. Rechner die Nutzung pro CPU via snmp ermittelt)</li>
  32421. <li>user, system, idle, iowait<br>
  32422. den Prozentsatz der entsprechenden Systemlast (nur f&uuml;r Linux Systeme)</li>
  32423. <li>&lt;mountpoint&gt;<br>
  32424. Anzahl der freien Bytes f&uuml;r &lt;mountpoint&gt;</li>
  32425. </ul><br>
  32426. <a name="SYSSTAT_Get"></a>
  32427. <b>Get</b>
  32428. <ul>
  32429. <code>get &lt;name&gt; &lt;value&gt;</code>
  32430. <br><br>
  32431. Werte f&uuml;r <code>value</code> sind<br><br>
  32432. <li>filesystems<br>
  32433. zeigt die Dateisysteme an, die &uuml;berwacht werden k&ouml;nnen.</li>
  32434. </ul><br>
  32435. <a name="SYSSTAT_Attr"></a>
  32436. <b>Attributes</b>
  32437. <ul>
  32438. <li>disable<br>
  32439. l&auml;sst die Timer weiterlaufen, aber stoppt die Speicherung der Daten.</li>
  32440. <li>filesystems<br>
  32441. Liste mit Komma getrennten Dateisystemen (nicht Mountpunkten) die &uuml;berwacht
  32442. werden sollen.<br>
  32443. Beispiele:
  32444. <ul>
  32445. <code>attr sysstat filesystems /dev/md0,/dev/md2</code><br>
  32446. <code>attr sysstat filesystems /dev/.*</code><br>
  32447. <code>attr sysstat filesystems 1,3,5</code><br>
  32448. </ul></li>
  32449. <li>mibs<br>
  32450. Leerzeichen getrennte Liste aus &lt;mib&gt;:&lt;reding&gt; Paaren die abgefragt werden sollen.</li>
  32451. <li>showpercent<br>
  32452. Wenn gesetzt, wird die Nutzung in Prozent angegeben. Wenn nicht gesetzt, wird der verf&uuml;bare
  32453. Platz in Bytes angezeigt.</li>
  32454. <li>snmp<br>
  32455. 1 -> snmp wird verwendet, um Last, Einschaltzeit und Dateisysteme (inkl. physikalischem und
  32456. virtuellem Speicher) zu &uuml;berwachen</li>
  32457. <li>stat<br>
  32458. 1 -> &uuml;berwacht Prozentsatz der user, system, idle und iowait Last
  32459. (nur auf Linux Systemen verf&uuml;gbar)</li>
  32460. <li>raspberrytemperature<br>
  32461. Wenn gesetzt und > 0 wird der Temperatursensor auf dem Raspberry Pi ausgelesen.<br>
  32462. Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.</li>
  32463. <li>synologytemperature<br>
  32464. Wenn gesetzt und > 0 wird die Temperatur einer Synology Diskstation ausgelesen (erfordert snmp).<br>
  32465. Wenn Wert 2 ist, wird ein geometrischer Durchschnitt der letzten 4 Werte dargestellt.</li>
  32466. <li>raspberrycpufreq<br>
  32467. Wenn gesetzt und > 0 wird die Raspberry Pi CPU Frequenz ausgelesen.</li>
  32468. <li>uptime<br>
  32469. Wenn gesetzt und > 0 wird die Betriebszeit (uptime) des Systems ausgelesen.<br>
  32470. Wenn Wert 2 ist, wird die Betriebszeit (uptime) in Sekunden angezeigt.</li>
  32471. <li>useregex<br>
  32472. Wenn Wert gesetzt, werden die Eintr&auml;ge der Dateisysteme als regex behandelt.</li>
  32473. <li>ssh_user<br>
  32474. Der Username f&uuml;r den ssh Zugang auf dem entfernten Rechner.</li>
  32475. <li>snmpVersion</li>
  32476. <li>snmpCommunity</li>
  32477. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  32478. </ul>
  32479. </ul>
  32480. <p><h3>Shelly</h3>
  32481. <div class='langLinks'>[<a href='commandref.html#SYSSTAT_Attr'>EN</a> DE]</div>
  32482. <ul>
  32483. Absichtlich keine deutsche Dokumentation vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#Shelly">Shelly</a>
  32484. </ul>
  32485. <p><a name="SingleFileLog"></a>
  32486. <h3>SingleFileLog</h3>
  32487. <div class='langLinks'>[<a href='commandref.html#SingleFileLog'>EN</a> DE]</div>
  32488. <ul>
  32489. <br>
  32490. <a name="SingleFileLogdefine"></a>
  32491. <b>Define</b>
  32492. <ul>
  32493. <code>define &lt;name&gt; SingleFileLog &lt;filename&gt; &lt;regexp&gt;
  32494. </code>
  32495. <br><br>
  32496. F&uuml; jedes Event oder Ger&auml;tename:Event, worauf &lt;regexp&gt;
  32497. zutrifft, wird eine separate Datei angelegt, der Inhalt wird von dem
  32498. template Attribut gesteuert (s.u.).
  32499. <code>&lt;filename&gt;</code> kann %-Wildcards der POSIX strftime-Funktion
  32500. des darunterliegenden OS enthalten (siehe auch man strftime).
  32501. Zus&auml;tzlich wird %Q durch eine fortlaufende Zahl ersetzt.<br>
  32502. Falls filename in {} eingeschlossen ist, dann wird sie als perl-Ausdruck
  32503. ausgewertet, was erm&ouml;glicht einen vom %L abweichenden globalem Pfad zu
  32504. definieren.
  32505. </ul>
  32506. <br>
  32507. <a name="SingleFileLogset"></a>
  32508. <b>Set</b> <ul>N/A</ul><br>
  32509. <a name="SingleFileLogget"></a>
  32510. <b>Get</b> <ul>N/A</ul><br>
  32511. <a name="SingleFileLogattr"></a>
  32512. <b>Attribute</b>
  32513. <ul>
  32514. <li><a href="#addStateEvent">addStateEvent</a></li><br>
  32515. <li><a href="#disable">disable</a></li>
  32516. <li><a href="#disabledForIntervals">disabledForIntervals</a></li><br>
  32517. <li><a href="#dosLineEnding">dosLineEnding</a><br>
  32518. Erzeugt die Datei mit der auf Windows Systemen ueblichen Zeilenenden
  32519. (\r\n)
  32520. </li><br>
  32521. <li><a name="#numberFormat">numberFormat</a><br>
  32522. Falls ein Wort im Event wie eine Zahl aussieht, dann wird es wie in
  32523. numberFormat angegeben, umformatiert, und als $EVTNUMx (analog zu
  32524. $EVTPARTx) zur Verf&uuml;gung gestellt. Voreinstellung ist %1.6E, siehe
  32525. die printf Formatbeschreibung f&uuml;r Details.
  32526. </li><br>
  32527. <li><a name="#readySuffy">readySuffix</a><br>
  32528. Die in der Definition spezifizierte Datei wird mit dem Suffix .tmp
  32529. angelegt, und nachdem sie fertig ist, mit readySuffix umbenannt.
  32530. Die Voreinstellung ist .rdy; um kein Suffix zu erzeugen, muss man none
  32531. spezifizieren.
  32532. </li><br>
  32533. <li><a name="#syncAfterWrite">syncAfterWrite</a><br>
  32534. Zwingt das Betriebssystem die Datei sofort auf die Platte zu schreiben.
  32535. Achtung: das kann die Geschwindigkeit beeintr&auml;chtigen, und bei SSDs
  32536. zu einem fr&uuml;heren Ausfall f&uuml;hren. Die Voreinstellung ist 0
  32537. (aus).
  32538. </li><br>
  32539. <li><a name="#template">template</a><br>
  32540. Damit wird der Inhalt der geschriebenen Datei spezifiziert. Folgende
  32541. Variablen werden vor dem Schreiben der Datei ersetzt:
  32542. <ul>
  32543. <li>$EVENT - das vollst&auml;ndige Event.</li>
  32544. <li>$EVTPART0 $EVTPART1 ... - die einzelnen W&ouml;rter des Events.</li>
  32545. <li>$EVTNUM0 $EVTNUM1 ... - umformatiert als Zahl, siehe numberFormat
  32546. weiter oben.</li>
  32547. <li>$NAME - der Name des Ger&auml;tes, das das Event generiert.</li>
  32548. <li>$time - die aktuelle Zeit, formatiert als YYYY-MM-DD HH:MM:SS</li>
  32549. <li>$time14 - die aktuelle Zeit, formatiert als YYYYMMDDHHMMSS</li>
  32550. <li>$time16 - die aktuelle Zeit, formatiert als YYYYMMDDHHMMSSCC,
  32551. wobei CC die hundertstel Sekunde ist</li>
  32552. </ul>
  32553. Falls template in {} eingeschlossen ist, dann wird er als perl-Ausdruck
  32554. ausgefuehrt, und das Ergebnis wird in die Datei geschrieben.<br>
  32555. Die Voreinstellung ist $time $NAME $EVENT\n
  32556. </li><br>
  32557. <li><a name="#writeInBackground">writeInBackground</a><br>
  32558. falls gesetzt (auf 1), dann erfolgt das Schreiben in einem
  32559. Hintergrundprozess, um FHEM nicht zu blockieren. Die Voreinstellung ist 0
  32560. (aus).
  32561. </li><br>
  32562. </ul>
  32563. <br>
  32564. </ul>
  32565. <p>
  32566. <a name="Siro"></a>
  32567. <h3>Siro protocol</h3>
  32568. <div class='langLinks'>[<a href='commandref.html#Siro'>EN</a> DE]</div>
  32569. <ul>
  32570. <br> Ein <a href="#SIGNALduino">SIGNALduino</a>-Geraet (dieses sollte als erstes angelegt sein).<br>
  32571. <br>
  32572. Da sich die Protokolle von Siro und Dooya sehr &auml;hneln, ist ein gleichzeitiger Betrieb dieser Systeme ueber ein "IODev" derzeit schwierig. Das Senden von Befehlen funktioniert ohne Probleme, aber das Unterscheiden der Fernbedienungssignale ist in Signalduino kaum m&ouml;glich. Zum Betrieb der Siromoduls wird daher empfohlen, das Dooyaprotokoll im SIGNALduino (16) &uuml;ber die Whitelist auszuschliessen. Zur fehlerfreien Erkennung der Fernbedienungssignale ist es weiterhin erforderlich im SIGMALduino das Protokoll "manchesterMC" zu deaktivieren (disableMessagetype manchesterMC). Wird der Empfang von machestercodierten Befehlen benoetigt, wird der Betrieb eines zweiten Signalduinos empfohlen.<br>
  32573. <br>
  32574. <br>
  32575. <a name="Sirodefine"></a>
  32576. <br>
  32577. <b>Define</b>
  32578. <br>
  32579. <ul>
  32580. <code>define &lt;name&gt; Siro &lt;id&gt; &lt;channel&gt;</code>
  32581. <br>
  32582. <br>
  32583. Bei der <code>&lt;ID&gt;</code> handelt es sich um einen 7-stelligen Hexcode, der einer Siro Fernbedienung eindeutig und fest zugewiesen ist. <code>&lt;Channel&gt;</code> ist die einstellige Kanalzuweisung der Fernbedienung und ist ebenfalls hexadezimal. Somit ergeben sich die m&ouml;glichen Kan&auml;le 0 - 15 (hexadezimal 0-F).
  32584. Eine eindeutige ID muss angegeben werden, der Kanal (Channel) muss ebenfalls angegeben werden. <br>
  32585. Ein Autocreate (falls aktiviert), legt das Device mit der ID der Fernbedienung und dem Kanal automatisch an.
  32586. <br><br>
  32587. Beispiele:<br><br>
  32588. <ul>
  32589. <code>define Siro1 Siro AB00FC1</code><br> erstellt ein Siro-Geraet Siro1 mit der ID: AB00FC und dem Kanal: 1<br>
  32590. </ul>
  32591. </ul>
  32592. <br>
  32593. <a name="Siroset"></a>
  32594. <b>Set </b><br>
  32595. <ul>
  32596. <code>set &lt;name&gt; &lt;value&gt; [&lt;position&gt]</code>
  32597. <br><br>
  32598. where <code>value</code> is one of:<br>
  32599. <pre>
  32600. on
  32601. off
  32602. stop
  32603. pos (0..100)
  32604. prog
  32605. fav
  32606. </pre>
  32607. Beispiele:<br><br>
  32608. <ul>
  32609. <code>set Siro1 on</code><br>
  32610. <code>set Siro1 off</code><br>
  32611. <code>set Siro1 position 50</code><br>
  32612. <code>set Siro1 fav</code><br>
  32613. <code>set Siro1 stop</code><br>
  32614. <code>set Siro1 set_favorite</code><br>
  32615. <code>set Siro1 down_for_timer 5</code><br>
  32616. <code>set Siro1 up_for_timer 5</code><br>
  32617. <code>set Siro1 set_favorite</code><br>
  32618. </ul>
  32619. <br>
  32620. <ul>
  32621. set Siro1 on f&auml;hrt das Rollo komplett hoch (0%)<br>
  32622. set Siro1 off f&auml;hrt das Rollo komplett herunter (100%)<br>
  32623. set Siro1 stop stoppt die aktuelle Fahrt des Rollos<br>
  32624. set Siro1 position 45 f&auml;hrt das Rollo zur angegebenen Position (45%)<br>
  32625. set Siro1 45 f&auml;hrt das Rollo zur angegebenen Position (45%)<br>
  32626. set Siro1 fav f&auml;hrt das Rollo in die hardwarem&auml;ssig programmierte Mittelposition<br>
  32627. et Siro1 down_for_timer 5 f&auml;hrt das Rollo 5 Sekunden nach unten<br>
  32628. et Siro1 uown_for_timer 5 f&auml;hrt das Rollo 5 Sekunden nach oben<br>
  32629. set Siro1 prog entspricht der "P2" Taste der Fernbedienung. Das Modul wird in den Programmiermodus versetzt (3 Min.)<br>
  32630. set Siro1 set_favorite programmiert den aktuellen Rollostand als Hardwaremittelposition, das ATTR time_down_to_favorite wird neu berechnet und gesetzt. <br>
  32631. </ul>
  32632. <br>
  32633. Hinweise:<br><br>
  32634. <ul>
  32635. <li>Befindet sich das Modul im Programmiermodus, werden aufeinanderfolgende Stoppbefehle vom Modul erkannt, da diese zur Programmierung zwingend erforderlich sind. In diesem Modus werden die Readings und das State nicht aktualisiert. Der Modus wird nach 3 Minuten automatisch beendet. Die verbleibende Zeit im Programmiermodus wird im Reading "pro_mode" dargestellt. Die Programmierung des Rollos muss in dieser Zeit abgeschlossen sein, da das Modul andernfalls keine aufeinanderfolgenden Stoppbefehle mehr akzeptiert.
  32636. Die Anzeige der Position, des States, ist eine ausschliesslich rechnerisch ermittelte Position, da es keinen R&uumlckkanal zu Statusmeldung gibt. Aufgrund eines ggf. verpassten Fernbedienungsbefehls, Timingproblems etc. kann es vorkommen, dass diese Anzeige ggf. mal falsche Werte anzeigt. Bei einer Fahrt in eine Endposition, ohne die Fahrt zu stoppen (set Siro1 [on/off]), werden Statusanzeige und echte Position bei Erreichen der Position jedes Mal synchronisiert. Diese ist der Hardware geschuldet und technisch leider nicht anders l&ouml;sbar.
  32637. </li>
  32638. </ul>
  32639. </ul>
  32640. <br>
  32641. <b>Get</b>
  32642. <ul>N/A</ul><br>
  32643. <a name="Siroattr"></a>
  32644. <b>Attributes</b><br><br>
  32645. <ul>
  32646. <a name="IODev"></a>
  32647. <li>IODev<br>
  32648. Das IODev muss das physische Ger&auml;t zum Senden und Empfangen der Signale enthalten. Derzeit wird ein SIGNALduino bzw. SIGNALesp unterstützt.
  32649. Ohne der Angabe des "Sende- und Empfangsmodul" "IODev" ist keine Funktion moeglich.</li><br>
  32650. <a name="channel_send_mode_1 "></a>
  32651. <li>channel_send_mode_1 <br>
  32652. Beinhaltet den Kanal, der vom Modul im "operation_mode 1" zum Senden genutzt wird.
  32653. Dieses Attribut wird in "operation_mode 0" nicht genutzt
  32654. </li><br>
  32655. <a name="down_limit_mode_1 "></a>
  32656. <li>down_limit_mode_1 <br>
  32657. Bei gesetztem Attribut wird das Rollo bei einem Fahrt nach unten nur bis zur angegebenen Position gefahren, egal ob das Kommando über das Modul oder die Fernbedienung ausgloest wurde. Diese Funktion ist nur im Mode 1 aktiv.
  32658. </li><br>
  32659. <a name="down_auto_stop "></a>
  32660. <li>down_auto_stop <br>
  32661. Bei gesetztem Attribut fährt das Rollo bei einer Fahrt nach unten nur bis zur angegebenen Position. Eine weiterfahrt erfolgt nach nochmaligem Befehl. Diese Funktion greift nur bei dem Kommando on ( close ) . Hierbei ist es egal, ob das Kommando über das Modul oder die Fernbedienung ausgelöst wird.
  32662. </li><br>
  32663. <a name="operation_mode"></a>
  32664. <li>operation_mode<br>
  32665. Mode 0<br><br>
  32666. Dies ist der Standardmodus. In diesem Modus nutz das Modul nur den Kanal, der von der Fernbedienung vorgegeben ist. Hier kann es durch von FHEM verpasste Signale, Timingproblemen etc. im schlechtesten Fall zu falschen States und Positionsreadings kommen. Diese werden bei Anfahrt einer Endposition wieder synchronisiert.
  32667. <br><br>Mode 1<br><br>
  32668. Erweiterter Modus. In diesem Modus nutzt das Modul zwei Kan&auml;le. Den Standardkanal "channel" zum Empfangen der Fernbedienung. Dieser sollte nicht mehr durch das Rollo selbst empfangen werden. Und den "channel_send_mode_1", zum Senden an den Rollomotor. Hierzu ist eine Umkonfigurierung des Motors erforderlich. Dieser Modus ist in Bezug auf die Darstellung der States "deutlich sicherer", da ein Verpassen eines Signals durch FHEM nicht dazu f&uumlhrt, das falsche Positionen angezeigt werden. Das Rollo f&auml;hrt nur dann, wenn FHEM das Signal empfangen hat und an den Motor weiterreicht.
  32669. Eine Anleitung zur Konfiguration des Motors folgt.
  32670. </li><br>
  32671. <a name="time_down_to_favorite"></a>
  32672. <li>time_down_to_favorite<br>
  32673. beinhaltet die Fahrtzeit in Sekunden, die das Rollo von der 0% Position bis zur Hardware-Favoriten-Mittelposition ben&ouml;tigt. Diese Zeit muss manuell gemessen werden und eingetragen werden.
  32674. Ohne dieses Attribut ist das Modul nur eingeschr&auml;nkt funktionsf&auml;hig.</li><br>
  32675. <a name="time_to_close"></a>
  32676. <li>time_to_close<br>
  32677. beinhaltet die Fahrtzeit in Sekunden, die das Rollo von der 0% Position bis zur 100% Position ben&ouml;tigt. Diese Zeit muss manuell gemessen werden und eingetragen werden.
  32678. Ohne dieses Attribut ist das Modul nur eingeschr&auml;nkt funktionsf&auml;hig.</li><br>
  32679. <a name="time_to_open"></a>
  32680. <li>time_to_open<br>
  32681. beinhaltet die Fahrtzeit in Sekunden, die das Rollo von der 100% Position bis zur 0% Position ben&ouml;tigt. Diese Zeit muss manuell gemessen werden und eingetragen werden.
  32682. Ohne dieses Attribut ist das Modul nur eingeschr&auml;nkt funktionsf&auml;hig.</li><br>
  32683. <a name="prog_fav_sequence"></a>
  32684. <li>prog_fav_sequence<br>
  32685. beinhaltet die Kommandosequenz zum Programmieren der Harware-Favoritenposition</li><br>
  32686. <a name="debug_mode [0:1]"></a>
  32687. <li>debug_mode [0:1] <br>
  32688. Im Mode 1 werden zus&auml;tzliche Readings zur Fehlerbehebung angelegt, in denen die Ausgabe aller Modulelemente ausgegeben werden. Kommandos werden NICHT physisch gesendet.</li><br>
  32689. <a name="Info"></a>
  32690. <li>Info<br>
  32691. Die Attribute webcmd und devStateIcon werden beim Anlegen des Devices einmalig gesetzt und im auch im Betrieb an den jeweiligen Mode des Devices angepasst. Die Anpassung dieser Inhalte geschieht nur solange, bis diese durch den Nutzer ge&auml;ndert wurden. Danach erfolgt keine automatische Anpassung mehr.</li><br>
  32692. </ul>
  32693. </ul>
  32694. <p><a name="SmartMeterP1"></a>
  32695. <h3>SmartMeterP1</h3>
  32696. <ul>
  32697. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  32698. hier: <a href='commandref.html#SmartMeterP1'>SmartMeterP1</a><br/>
  32699. </ul>
  32700. <a name="SmartPi"></a>
  32701. <h3>SmartPi</h3>
  32702. <div class='langLinks'>[<a href='commandref.html#SmartPi'>EN</a> DE]</div>
  32703. <p><a name="SmarterCoffee"></a>
  32704. <h3>SmarterCoffee</h3>
  32705. <ul>
  32706. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  32707. hier: <a href='commandref.html#SmarterCoffee'>SmarterCoffee</a><br/>
  32708. </ul>
  32709. <a name="Snapcast"></a>
  32710. <h3>Snapcast</h3>
  32711. <ul>
  32712. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  32713. hier: <a href='commandref.html#Snapcast'>Snapcast</a><br/>
  32714. </ul>
  32715. <a name="Spotify"></a>
  32716. <h3>Spotify</h3>
  32717. <div class='langLinks'>[<a href='commandref.html#Spotify'>EN</a> DE]</div>
  32718. <ul>
  32719. Das <i>Spotify</i> Modul ermĂśglicht die Steuerung von Spotify (Connect).<br>
  32720. Um die Wiedergabe zu steuern, wird die Spotify WEB API verwendet. DafĂźr wird eine eigene <a target="_blank" rel="nofollow" href="https://developer.spotify.com/my-applications/#!/applications/create">Spotify API application</a> benĂśtigt.<br>
  32721. Während der Erstellung muss eine <i>redirect_uri</i> angegeben - standardmä�ig wird vom Modul <a href="https://oskar.pw/" target="_blank">https://oskar.pw/</a> verwendet, da diese Seite nach der Anmeldung den Code in leserlicher Form ausgibt.<br>
  32722. Die Seite kann bedenkenlos verwendet werden, da der Code ohne <i>client_secret</i> nutzlos und nur wenige Minuten gĂźltig ist.<br>
  32723. Wenn du diese verwenden willst, stelle sicher, diese bei der Erstellung anzugeben (wichtig: das Hinzufßgen der URL muss mit <b>add</b> und <b>save</b> bestätigt werden), ansonsten kann jede beliebige andere Seite verwendet werden und der Code aus der URL extrahiert werden.<br>
  32724. <br>
  32725. <a name="Spotify_define"></a>
  32726. <p><b>Define</b></p>
  32727. <ul>
  32728. <code>define &lt;name&gt; Spotify &lt;client_id&gt; &lt;client_secret&gt; [ &lt;redirect_url&gt; ]</code><br>
  32729. </ul>
  32730. <br>
  32731. <ul>
  32732. Beispiel: <code>define Spotify Spotify f88e5f5c2911152d914391592e717738 301b6d1a245e4fe01c2f8b4efd250756</code><br>
  32733. </ul>
  32734. <br>
  32735. Sobald das Gerät angelegt wurde, muss die <i>AUTHORIZATION_URL</i> im Browser geÜffnet werden und die Anmeldung mit Spotify erfolgen.<br>
  32736. Sollte der Fehler <b>redirect_uri mismatch</b> auftauchen, stelle sicher, dass <a href="https://oskar.pw/" target="_blank">https://oskar.pw/</a> als <i>redirect_uri</i> hinzugefĂźgt wurde oder die verwendete URL <b>exakt Ăźbereinstimmt</b>.<br>
  32737. Sobald der Anmeldecode ermittelt wurde, fßhre folgenden Befehl aus: <code>set &lt;name&gt; code &lt;code&gt;</code> - der Status sollte nun auf connected wechseln und das Gerät ist einsatzbereit.<br>
  32738. <br>
  32739. <a name="Spotify_set"></a>
  32740. <p><b>set &lt;required&gt; [ &lt;optional&gt; ]</b></p>
  32741. Wird kein Zielgerät angegeben, wird das aktive (oder das Standard-Gerät, wenn <i>alwaysStartOnDefaultDevice</i> aktiviert ist) verwendet.<br>
  32742. An den Stellen, wo eine <i>&lt;device_id&gt;</i> verlangt wird, kann auch der Gerätename, sofern dieser keine Leerzeichen enthält, verwendet werden. Dort wo es <i>&lt;device_name&gt;</i> hei�t, sind auch Leerzeichen im Namen zugelassen.
  32743. Wenn kein aktives oder Standard-Gerät vorhanden ist, wird das erste verfßgbare Gerät verwendet.<br>
  32744. Die Spotify URI kann in der (Desktop) App ermittelt werden, wenn man den teilen Knopf bei einem Track/Playlist/Album drĂźckt.<br><br>
  32745. <ul>
  32746. <li>
  32747. <i>findArtistByName</i><br>
  32748. sucht einen KĂźnstler und liefert das Ergebnis in den Readings
  32749. </li>
  32750. <li>
  32751. <i>findTrackByName</i><br>
  32752. sucht einen Track und liefert das Ergebnis in den Readings
  32753. </li>
  32754. <li>
  32755. <i>pause</i><br>
  32756. pausiert die aktuelle Wiedergabe
  32757. </li>
  32758. <li>
  32759. <i>playArtistByName &lt;artist_name&gt; [ &lt;device_id&gt; ]</i><br>
  32760. sucht einen KĂźnstler und spielt dessen Tracks ab
  32761. </li>
  32762. <li>
  32763. <i>playContextByURI &lt;context_uri&gt; [ &lt;nr_of_start_track&gt; ] [ &lt;device_id / device_name&gt; ]</i><br>
  32764. spielt einen Context (Playlist, Album oder KĂźnstler) durch Angabe der URI ab
  32765. </li>
  32766. <li>
  32767. <i>playPlaylistByName &lt;playlist_name&gt; [ &lt;device_id&gt; ]</i><br>
  32768. sucht eine Playlist und spielt diese ab
  32769. </li>
  32770. <li>
  32771. <i>playRandomTrackFromPlaylistByURI &lt;playlist_uri&gt; [ &lt;limit&gt; ] [ &lt;device_id / device_name&gt; ]</i><br>
  32772. spielt einen zufälligen Track aus einer Playlist ab (berßcksichtigt nur die ersten <i>&lt;limit&gt;</i> Tracks der Playlist)
  32773. </li>
  32774. <li>
  32775. <i>playSavedTracks [ &lt;nr_of_start_track&gt; ] [ &lt;device_id / device_name&gt; ]</i><br>
  32776. spielt die gespeicherten Tracks ab (beginnend mit Track Nummer <i>&lt;nr_of_start_track&gt;</i>)
  32777. </li>
  32778. <li>
  32779. <i>playTrackByName &lt;track_name&gt; [ &lt;device_id&gt; ]</i><br>
  32780. sucht den Song und spielt ihn ab
  32781. </li>
  32782. <li>
  32783. <i>playTrackByURI &lt;track_uri&gt; [ &lt;device_id / device_name&gt; ]</i><br>
  32784. spielt einen Song durch Angabe der URI ab
  32785. </li>
  32786. <li>
  32787. <i>repeat &lt;track,context,off&gt;</i><br>
  32788. setzt den Wiederholungsmodus: entweder <i>one</i>, <i>all</i> (Playlist, Album, KĂźnstler) oder <i>off</i>
  32789. </li>
  32790. <li>
  32791. <i>resume [ &lt;device_id / device_name&gt; ]</i><br>
  32792. fährt mit der Wiedergabe (auf einem Gerät) fort
  32793. </li>
  32794. <li>
  32795. <i>seekToPosition &lt;position&gt;</i><br>
  32796. spult an die Position <i>&lt;position&gt;</i> (in Sekunden, erlaubte Formate: 01:20, 80, 00:20, 20)
  32797. </li>
  32798. <li>
  32799. <i>shuffle &lt;off,on&gt;</i><br>
  32800. setzt den Shuffle-Modus: entweder <i>on</i> oder <i>off</i>
  32801. </li>
  32802. <li>
  32803. <i>skipToNext</i><br>
  32804. weiter zum nächsten Track
  32805. </li>
  32806. <li>
  32807. <i>skipToPrevious</i><br>
  32808. zurĂźck zum vorherigen Track
  32809. </li>
  32810. <li>
  32811. <i>togglePlayback</i><br>
  32812. toggelt die Wiedergabe (hält an, wenn sie aktiv ist, ansonsten fortsetzen)
  32813. </li>
  32814. <li>
  32815. <i>transferPlayback [ &lt;device_id&gt; ]</i><br>
  32816. ßberträgt die aktuelle Wiedergabe auf ein anderes Gerät (wenn kein Gerät angegeben wird, wird das nächste inaktive verwendet)
  32817. </li>
  32818. <li>
  32819. <i>update</i><br>
  32820. lädt den aktuellen Zustand neu
  32821. </li>
  32822. <li>
  32823. <i>volume &lt;volume&gt; [ &lt;device_id&gt; ]</i><br>
  32824. setzt die Lautstärke
  32825. </li>
  32826. <li>
  32827. <i>volumeDown [ &lt;step&gt; ] [ &lt;device_id / device_name&gt; ]</i><br>
  32828. verringert die Lautstärke um <i>step</i> (falls nicht gesetzt, um <i>volumeStep</i>)
  32829. </li>
  32830. <li>
  32831. <i>volumeFade &lt;volume&gt; [ &lt;duration&gt; &lt;step&gt; ] [ &lt;device_id&gt; ]</i><br>
  32832. setzt die Lautstärke schrittweise
  32833. </li>
  32834. <li>
  32835. <i>volumeUp [ &lt;step&gt; ] [ &lt;device_id / device_name&gt; ]</i><br>
  32836. erhÜht die Lautstärke um <i>step</i> (falls nicht gesetzt, um <i>volumeStep</i>)
  32837. </li>
  32838. </ul>
  32839. <br>
  32840. <a name="Spotify_get"></a>
  32841. <p><b>Get</b></p>
  32842. <ul>
  32843. N/A
  32844. </ul>
  32845. <br>
  32846. <a name="Spotify_attr"></a>
  32847. <p><b>Attributes</b></p>
  32848. <ul>
  32849. <li>
  32850. <i>alwaysStartOnDefaultDevice</i><br>
  32851. startet neue Wiedergabe immer auf dem Standard-Gerät<br>
  32852. default: 0
  32853. </li>
  32854. <li>
  32855. <i>defaultPlaybackDeviceID</i><br>
  32856. das Standard-Gerät durch Angabe der Geräte-ID oder des Geräte-Namens<br>
  32857. </li>
  32858. <li>
  32859. <i>disable</i><br>
  32860. deaktiviert das Gerät<br>
  32861. default: 0
  32862. </li>
  32863. <li>
  32864. <i>updateInterval</i><br>
  32865. Intervall in Sekunden, in dem der Status aktualisiert wird, wenn keine Musik läuft<br>
  32866. default: 300
  32867. </li>
  32868. <li>
  32869. <i>updateIntervalWhilePlaying</i><br>
  32870. Intervall in Sekunden, in dem der Status aktualisiert wird, wenn Musik läuft<br>
  32871. default: 10
  32872. </li>
  32873. <li>
  32874. <i>volumeStep</i><br>
  32875. der Wert, um den die Lautstärke bei volumeUp/volumeDown standardmä�ig verändert wird (in Prozent)<br>
  32876. default: 5
  32877. </li>
  32878. </ul>
  32879. </ul>
  32880. <p><a name="TA_CMI_JSON"></a>
  32881. <h3>TA_CMI_JSON</h3>
  32882. <div class='langLinks'>[<a href='commandref.html#TA_CMI_JSON'>EN</a> DE]</div>
  32883. Weitere Informationen zu diesem Modul im <a href="https://wiki.fhem.de/wiki/UVR16x2">FHEM-Wiki</a>.
  32884. <a name="TA_CMI_JSONdefine"></a>
  32885. <b>Define</b>
  32886. <ul>
  32887. <code>define &lt;name&gt; TA_CMI_JSON &lt;IP&gt; &lt;CAN-Node-Id&gt; &lt;Query-Params&gt;</code>
  32888. <br><br>
  32889. Liest Werte vom CMI mit der angegebenen IP fßr das CAN-Gerät mit der angegebenen Node-Id.<br/>
  32890. Query-Param definiert, welche Werte ausgelesen werden sollen. Erlaubt sind I,O,D.
  32891. <br>
  32892. Beispiel:
  32893. <ul>
  32894. <code>defmod cmi TA_CMI_JSON 192.168.4.250 1 I,O,D</code><br>
  32895. </ul>
  32896. <br>
  32897. Daneben muss auch noch das mapping angegeben werden, welche Werte in welches Reading geschrieben werden sollen.<br/>
  32898. Nur gemappte Werte werden in Readings geschrieben. (siehe <a href="#TA_CMI_JSONattr">Attributes</a>)
  32899. </ul>
  32900. <br><br>
  32901. <a name="TA_CMI_JSONget"></a>
  32902. <b>Get</b>
  32903. <ul>
  32904. <li><code>update</code><br>Hiermit kann sofort eine Abfrage der API ausgef&uuml;hrt werden. Das Limit von einer Anfrage pro Minute besteht trotzdem.
  32905. </li>
  32906. </ul>
  32907. <br><br>
  32908. <a name="TA_CMI_JSONattr"></a>
  32909. <b>Attributes</b>
  32910. <br><br>
  32911. <ul>
  32912. <li><code>readingNamesDL-Bus {index:reading-name}</code><br>Hiermit werden erhaltene Werte vom DL-Bus einem Reading zugewiesen. zB <code>1:Durchfluss_Solar 2:T.Solar_RL</code></li>
  32913. <li><code>readingNamesInput {index:reading-name}</code><br>Hiermit werden erhaltene Werte der Eing&auml;nge einem Reading zugewiesen. zB <code>1:Durchfluss_Solar 2:T.Solar_RL</code></li>
  32914. <li><code>readingNamesDL-Bus {index:reading-name}</code><br>Hiermit werden erhaltene Werte der Ausg&auml;nge einem Reading zugewiesen. zB <code>1:Durchfluss_Solar 2:T.Solar_RL</code></li>
  32915. <li><code>readingNamesLoggingAnalog {index:reading-name}</code><br>Hiermit werden erhaltene Werte vom Analog Logging einem Reading zugewiesen. zB <code>1:Durchfluss_Solar 2:T.Solar_RL</code></li>
  32916. <li><code>readingNamesLoggingDigital {index:reading-name}</code><br>Hiermit werden erhaltene Werte vom Digital Logging einem Reading zugewiesen. zB <code>1:Durchfluss_Solar 2:T.Solar_RL</code></li>
  32917. <li><code>includeUnitReadings [0:1]</code><br>Definiert, ob zu jedem Reading ein zusätzliches Reading _Name geschrieben werden soll, welches die Einheit enth&auml;lt.</li>
  32918. <li><code>includePrettyReadings [0:1]</code><br>Definiert, ob zu jedem Reading zusätzlich ein Reading, welches Wert und Einheit enth&auml;lt, geschrieben werden soll.</li>
  32919. <li><code>interval</code><br>Abfrage-Intervall in Sekunden. Muss mindestens 60 sein.</li>
  32920. <li><code>username</code><br>Username zur Abfrage der JSON-API. Muss die Berechtigungsstufe admin oder user haben.</li>
  32921. <li><code>password</code><br>Passwort zur Abfrage der JSON-API.</li>
  32922. </ul>
  32923. <br><br>
  32924. <a name="TA_CMI_JSONreadings"></a>
  32925. <b>Readings</b>
  32926. <br><br>
  32927. Readings werden entsprechend der Definition in den Attributen angelegt.
  32928. =end html
  32929. # Ende der Commandref
  32930. =cut
  32931. <a name="TBot_List"></a>
  32932. <h3>TBot_List</h3>
  32933. <ul>
  32934. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  32935. hier: <a href='commandref.html#TBot_List'>TBot_List</a><br/>
  32936. </ul>
  32937. <a name="TCM"></a>
  32938. <h3>TCM</h3>
  32939. <ul>
  32940. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  32941. hier: <a href='commandref.html#TCM'>TCM</a><br/>
  32942. </ul>
  32943. <a name="TEK603"></a>
  32944. <h3>TEK603</h3>
  32945. <ul>
  32946. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  32947. hier: <a href='commandref.html#TEK603'>TEK603</a><br/>
  32948. </ul>
  32949. <a name="THINKINGCLEANER" id="THINKINGCLEANER"></a>
  32950. <h3>THINKINGCLEANER</h3>
  32951. <div class='langLinks'>[<a href='commandref.html#THINKINGCLEANER'>EN</a> DE]</div>
  32952. <ul>
  32953. Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
  32954. </ul>
  32955. <ul>
  32956. <a href='http://fhem.de/commandref.html#THINKINGCLEANER'>THINKINGCLEANER</a>
  32957. </ul>
  32958. <p><a name="THRESHOLD"></a>
  32959. <h3>THRESHOLD</h3>
  32960. <div class='langLinks'>[<a href='commandref.html#THRESHOLD'>EN</a> DE]</div>
  32961. <ul>
  32962. Vielfältige Steuerungen, bei denen durch die Auswertung von Sensordaten eine Steuerung erfolgen soll, kÜnnen mit Hilfe dieses Moduls realisiert werden.
  32963. Nach der Definition eines THRESHOLD-Moduls und der Vorgabe eines Sollwertes beginnt bereits das definierte Modul mit der Steuerung. Im einfachsten Fall liest das Modul einen Sensor aus, der Werte als Dezimalzahlen liefert
  32964. und schaltet beim �berschreiten einer definierten Schwellen-Obergrenze (Sollwert)
  32965. bzw. beim Unterschreiten einer Schwellen-Untergrenze einen Aktor oder fĂźhrt beliebige FHEM/Perl-Befehle aus.
  32966. Typisches Anwendungsgebiet ist z. B. die Nachbildung eines Thermostats oder Hygrostats - auch Zweipunktregler genannt.<br>
  32967. <br>
  32968. Mit Hilfe des Moduls, bzw. vieler solcher Module, lassen sich einfache oder auch komplexe Steuerungen fĂźr Heizung, KĂźhlung, LĂźftung, Entfeuchtung, Beschattung oder z. B. einfache Benachrichtung
  32969. beim �ber- oder Unterschreiten eines bestimmten Wertes realisieren. Dabei mßssen keine If-Abfragen in Perl oder Notify-Definitionen vorgenommen werden.
  32970. Das fßhrt, nicht nur bei FHEM-Anfängern, zu schnell erstellten und ßbersichtlichen Steuerungen, ohne zwingend in die Perl-Materie einsteigen zu mßssen.<br>
  32971. <br>
  32972. Nach der Definition eines Moduls vom Typ THRESHOLD z. B. mit: <br>
  32973. <br>
  32974. <code>define &lt;name&gt; THRESHOLD &lt;sensor&gt; &lt;actor&gt;</code><br>
  32975. <br>
  32976. erfolgt die eigentliche Steuerung Ăźber die Vorgabe eines Sollwertes. Das geschieht Ăźber:<br>
  32977. <br>
  32978. <code>set &lt;name&gt; desired &lt;value&gt;</code><br>
  32979. <br>
  32980. Das Modul beginnt mit der Steuerung erst dann, wenn ein Sollwert gesetzt wird!<br>
  32981. <br>
  32982. Die Vorgabe des Sollwertes kann bereits bei der Definition des Moduls angegeben werden. Alternativ kann der Sollwert von einem weiteren Sensor kommen.
  32983. Damit kann eine Steuerung durch den Vergleich zweier Sensoren stattfinden.
  32984. Typisches Anwendungsbeispiel ist z. B. die Steuerung von Umwälz- oder Zirkulationspumpen.<br>
  32985. <br>
  32986. Die Vorgabe der Solltemperatur kann auch von beliebigen Wandthermostaten (z. B. HM, MAX, FHT) genutzt werden.<br>
  32987. <br>
  32988. Das Schaltverhalten des THRESHOLD-Moduls kann zusätzlich durch einen weiteren Sensor oder eine Sensorgruppe,
  32989. definiert Ăźber structure (z. B. Fensterkontakte), Ăźber eine AND- bzw. OR-VerknĂźpfung beeinflusst werden.
  32990. Bei komplexeren Bedingungen mit mehreren and- bzw. or-VerknĂźpfung sollte man das neuere <a href="http://fhem.de/commandref_DE.html#DOIF">DOIF</a>-Modul verwenden.<br>
  32991. <br>
  32992. Es ist ebenfalls die Kombination mehrerer THRESHOLD-Module miteinander mĂśglich.<br>
  32993. <br>
  32994. <br>
  32995. <b><u>Beispiele fĂźr Heizungssteuerung:</u></b><br>
  32996. <br>
  32997. <b>Einfaches Heizungsthermostat:</b><br>
  32998. <br>
  32999. Es soll bis 20 Grad geheizt werden. Beim Unterschreiten der Untergrenze von 19=20-1 Grad (Sollwert-Hysterese) wird die Heizung wieder eingeschaltet.<br>
  33000. <br>
  33001. <code>define TH_room THRESHOLD temp_room heating</code><br>
  33002. <code>set TH_room desired 20</code><br>
  33003. <br>
  33004. <b>Zeitgesteuertes Heizen mit Hilfe des DOIF-Moduls:</b><br>
  33005. <br>
  33006. <code>define TH_room THRESHOLD temp_room heating</code><br>
  33007. <code>define di_room DOIF ([05:30-23:00|8] or [07:00-23:00|7]) (set TH_room desired 20) DOELSE (set TH_room desired 18)</code><br>
  33008. <br>
  33009. <b>Steuerung einer Heizung durch ein Wandthermostat mit �bernahme der Soll- und Ist-Temperatur vom Wandthermostat:</b><br>
  33010. <br>
  33011. <code>define TH_Heizung THRESHOLD WT_ch1:measured-temp:1:WT_ch2:desired-temp Heizung</code><br>
  33012. <br>
  33013. Mit <code>set TH_Heizung desired 17</code> wird die Vorgabe vom Wandthermostat Ăźbersteuert bis <code>set TH_Heizung external</code> aufgerufen wird.<br>
  33014. <br>
  33015. <b>Heizung in Kombination mit einem Fensterkontakt mit Zuständen: open, closed:</b><br>
  33016. <br>
  33017. <code>define TH_room THRESHOLD temp_room OR win_sens heating</code><br>
  33018. <br>
  33019. <b>Heizung in Kombination mit mehreren Fensterkontakten:</b><br>
  33020. <br>
  33021. <code>define W_ALL structure W_type W1 W2 W3 ....</code><br>
  33022. <code>attr W_ALL clientstate_behavior relative</code><br>
  33023. <code>attr W_ALL clientstate_priority open closed</code><br>
  33024. <br>
  33025. <code>define thermostat THRESHOLD S1 OR W_ALL heating</code><br>
  33026. <br>
  33027. <b>Kombination mehrerer THRESHOLD-Module miteinander:</b><br>
  33028. <br>
  33029. Es soll bis 21 Grad geheizt werden, aber nur, wenn die Au�entemperatur unter 15 Grad ist:<br>
  33030. <br>
  33031. <code>define TH_outdoor THRESHOLD outdoor:temperature:0:15</code><br>
  33032. <code>define TH_room THRESHOLD indoor OR TH_outdoor:state:off heating</code><br>
  33033. <code>set TH_room desired 21</code><br>
  33034. <br>
  33035. <b>Steuerung einer Heizung nach einer Heizkennlinie:</b><br>
  33036. <br>
  33037. Berechnung der Solltemperatur fßr die Vorlauftemperatur fßr Fu�bodenheizung mit Hilfe der 0,8-Heizkennlinie anhand der Au�entemperatur :<br>
  33038. <br>
  33039. <code>define TH_heating THRESHOLD flow:temperature:2:outdoor:temperature heating</code><br>
  33040. <code>attr TH_heating target_func -0.578*_tv+33.56</code><br>
  33041. <br>
  33042. Nachtabsenkung lässt sich zeitgesteuert durch das Setzen von "offset" realisieren.<br>
  33043. Von 22:00 bis 5:00 Uhr soll die Vorlauftemperatur um 10 Grad herabgesetzt werden:<br>
  33044. <br>
  33045. <code>define di_heating DOIF ([22:00-05:00]) (set TH_heating offset -10) DOELSE (set TH_heating offset 0)</code><br>
  33046. <br>
  33047. <br>
  33048. <b><u>Beispiele fĂźr BelĂźftungssteuerung:</u></b><br>
  33049. <br>
  33050. <b>Einfache BelĂźftung anhand der Luftfeuchtigkeit:</b><br>
  33051. <br>
  33052. Es soll gelĂźftet werden, wenn die Feuchtigkeit im Zimmer Ăźber 70 % ist; bei 60 % geht der LĂźfter wieder aus.<br>
  33053. <br>
  33054. <code>define TH_hum THRESHOLD sens:humidity:10:70 ventilator|set @ on|set @ off|1</code><br>
  33055. <br>
  33056. <b>Belßftung anhand des Taupunktes, abhängig von der Luftfeuchtigkeit innen:</b><br>
  33057. <br>
  33058. Es soll gelßftet werden, wenn die Luftfeuchtigkeit im Zimmer ßber 70 % ist und der Taupunkt innen hÜher ist als au�en.<br>
  33059. <br>
  33060. <code>define TH_hum THRESHOLD sens:humidity:10:70||||on:off|_sc</code><br>
  33061. <code>define dewpoint dewpoint indoor</code><br>
  33062. <code>define dewpoint dewpoint outdoor</code><br>
  33063. <code>define TH_room THRESHOLD indoor:dewpoint:0:outdoor:dewpoint AND TH_hum:state:on ventilator|set @ on|set @ off|2</code><br>
  33064. <br>
  33065. BelĂźftung in Kombination mit einem Lichtschalter mit Nachlaufsteuerung: siehe <a href="http://fhem.de/commandref_DE.html#DOIF">DOIF</a>-Modul.<br>
  33066. <br>
  33067. <b><u>Beispiele fĂźr die Steuerung der Warmwasserzirkulation:</u></b><br>
  33068. <br>
  33069. <b>Zeitgesteuerte Warmwasserzirkulation:</b><br>
  33070. <br>
  33071. In der Hauptzeit soll die Wassertemperatur im RĂźcklauf mindestens 38 Grad betragen.<br>
  33072. <br>
  33073. <code>define TH_circ TRHESHOLD return_w:temperature:0 circ_pump</code><br>
  33074. <code>define di_circ DOIF ([05:30-23:00|8] or [07:00-23:00|7]) (set TH_circ desired 38) DOELSE (set TH_circ desired 15)</code><br>
  33075. <br>
  33076. <b>Alternative Steuerung mit Sollwert-Vorgabe durch einen weiteren Sensor des Warmwasserspeichers:</b><br>
  33077. <br>
  33078. Die RĂźcklauftemperatur soll 5 Grad (offset) unter der Warmwasserspeichertemperatur liegen und bis zu 4 Grad (Hysterese) schwanken dĂźrfen.<br>
  33079. <br>
  33080. <code>define TH_circ THRESHOLD return_w:temperature:4:water_storage:temperature:-5 circ_pump</code><br>
  33081. <br>
  33082. <br>
  33083. <b><u>Beispiele fĂźr Beschattungssteuerung:</u></b><br>
  33084. <br>
  33085. <b>Beispiel fĂźr einfache Beschattung im Sommer:</b><br>
  33086. <br>
  33087. Zwischen 12:00 und 20:00 Uhr (potenzielle Sonnengefahr auf der SĂźdseite) wird der Rolladen auf 30 % heruntergefahren,<br>
  33088. wenn die Raumtemperatur Ăźber 23 Grad ist und die Sonne scheint. Im Winter, wenn die Zimmertemperatur niedriger ist (< 23),<br>
  33089. will man von der Sonnenenergie profitieren und den Rollladen oben lassen.<br>
  33090. <br>
  33091. <code>define TH_shutter_room THRESHOLD T_room AND sun:state:on shutter_room|set @ 30||2</code><br>
  33092. <code>define di_shutter DOIF ([12:00-20:00]) (set TH_shutter desired 23) DOELSE (set TH_shutter desired 30)</code><br>
  33093. <br>
  33094. Weitere Beispiele fĂźr Beschattung mit VerzĂśgerung und automatischem Hochfahren des Rollladens: siehe <a href="http://fhem.de/commandref_DE.html#DOIF">DOIF</a>-Modul.<br>
  33095. <br>
  33096. <br>
  33097. <b><u>Beispiele fĂźr die AusfĂźhrung beliebiger FHEM/Perl-Befehlsketten:</u></b><br>
  33098. <br>
  33099. <code>define thermostat THRESHOLD sensor |set Switch1 on;;set Switch2 on|set Switch1 off;;set Switch2 off|1</code><br>
  33100. <code>define thermostat THRESHOLD sensor alarm|{Log 2,"Wert Ăźberschritten"}|set @ off|</code><br>
  33101. <code>define thermostat THRESHOLD sensor ||{Log 2,"Wert unterschritten"}|</code><br>
  33102. <br>
  33103. <br>
  33104. <b><u>Einige weitere Bespiele fßr Entfeuchtung, Klimatisierung, Bewässerung:</u></b><br>
  33105. <br>
  33106. <code>define hygrostat THRESHOLD hym_sens:humidity dehydrator|set @ on|set @ off|1</code><br>
  33107. <code>define hygrostat THRESHOLD hym_sens:humidity AND Sensor2:state:closed dehydrator|set @ on|set @ off|1</code><br>
  33108. <code>define thermostat THRESHOLD temp_sens:temperature:1 aircon|set @ on|set @ off|1</code><br>
  33109. <code>define thermostat THRESHOLD temp_sens AND Sensor2:state:closed aircon|set @ on|set @ off|1</code><br>
  33110. <code>define hygrostat THRESHOLD hym_sens:humidity:20 watering|set @ off|set @ on|2</code><br>
  33111. <br>
  33112. <br>
  33113. <b><u>Beispiele fĂźr angepasste Statusanzeige des THRESHOLD-Moduls:</u></b><br>
  33114. <br>
  33115. <code>define thermostat THRESHOLD sensor aircon|set @ on|set @ off|2|on:off</code><br>
  33116. <br>
  33117. <b>Beispiel fĂźr reine Zustandanzeige (z. B. fĂźr Zustandsauswertung in anderen Modulen) ohne AusfĂźhrung von Code:</b><br>
  33118. <br>
  33119. <code>define thermostat THRESHOLD sensor:temperature:0:30</code><br>
  33120. <br>
  33121. entspricht wegen Defaultwerte:<br>
  33122. <br>
  33123. <code>define thermostat THRESHOLD sensor:temperature:0:30||||off:on|_sc</code><br>
  33124. <br>
  33125. <b>Es soll der Modus (mode), Status (state_cmd), Sollvorgabewert (desired_value) und Wert des ersten Sensors (sensor_value) angezeigt werden:</b><br>
  33126. <br>
  33127. <code>define TH_living_room THRESHOLD T_living_room heating|set @ off|set @ on|2|off:on|_m _sc _dv _s1v</code><br>
  33128. <br>
  33129. oder<br>
  33130. <br>
  33131. <code>define TH_living_room THRESHOLD T_living_room heating</code><br>
  33132. <code>attr TH_living_room state_cmd1_gt off</code><br>
  33133. <code>attr TH_living_room state_cmd2_lt on</code><br>
  33134. <code>attr TH_living_room state_format _m _sc _dv _s1v</code><br>
  33135. <br>
  33136. </ul>
  33137. <a name="THRESHOLDdefine"></a>
  33138. <b>Define</b>
  33139. <ul>
  33140. <br>
  33141. <code>define &lt;name&gt; THRESHOLD &lt;sensor&gt;:&lt;reading&gt;:&lt;hysteresis&gt;:&lt;target_value&gt;:&lt;offset&gt; AND|OR &lt;sensor2&gt;:&lt;reading2&gt;:&lt;state&gt; &lt;actor&gt;|&lt;cmd1_gt&gt;|&lt;cmd2_lt&gt;|&lt;cmd_default_index&gt;|&lt;state_cmd1_gt&gt;:&lt;state_cmd2_lt&gt;|&lt;state_format&gt;</code><br>
  33142. <br>
  33143. <br>
  33144. <li><b>sensor</b><br>
  33145. ein in FHEM definierter Sensor<br>
  33146. </li>
  33147. <br>
  33148. <li><b>reading</b> (optional)<br>
  33149. Reading des Sensors, der einen Wert als Dezimalzahl beinhaltet<br>
  33150. Defaultwert: temperature<br>
  33151. </li>
  33152. <br>
  33153. <li><b>hysteresis</b> (optional)<br>
  33154. Hysterese, daraus errechnet sich die Untergrenze = Sollwert - hysteresis<br>
  33155. Defaultwert: 1 bei Temperaturen, 10 bei Feuchtigkeit<br>
  33156. </li>
  33157. <br>
  33158. <li><b>target_value</b> (optional)<br>
  33159. bei Zahl: Initial-Sollwert, wenn kein Wert vorgegeben wird, muss er mit "set desired value" gesetzt werden.<br>
  33160. sonst: &lt;sensorname&gt;:&lt;reading&gt, hier kann ein weiterer Sensor angegeben werden, der den Sollwert dynamisch vorgibt.<br>
  33161. Defaultwert: kein<br>
  33162. </li>
  33163. <br>
  33164. <li><b>offset</b> (optional)<br>
  33165. Offset zum Sollwert<br>
  33166. Damit errechnet sich: die Sollwertobergrenze = Sollwert + offset und die Sollwertuntergrenze = Sollwert - Hysterese + offset<br>
  33167. Defaultwert: 0<br>
  33168. </li>
  33169. <br>
  33170. <br>
  33171. <li><b>AND|OR</b> (optional)<br>
  33172. VerknĂźpfung mit einem optionalen zweiten Sensor<br>
  33173. </li>
  33174. <br>
  33175. <li><b>sensor2</b> (optional, nur in Verbindung mit AND oder OR)<br>
  33176. ein definierter Sensor, dessen Status abgefragt wird<br>
  33177. </li>
  33178. <br>
  33179. <li><b>reading2</b> (optional)<br>
  33180. Reading, der den Status des Sensors beinhaltet<br>
  33181. Defaultwert: state<br>
  33182. </li>
  33183. <br>
  33184. <li><b>state</b> (optional)<br>
  33185. Status des Sensors, der zu einer Aktion fĂźhrt<br>
  33186. Defaultwert: open<br>
  33187. </li>
  33188. <br>
  33189. <li><b>actor</b> (optional)<br>
  33190. ein in FHEM definierter Aktor<br>
  33191. </li>
  33192. <br>
  33193. <li><b>cmd1_gt</b> (optional)<br>
  33194. FHEM/Perl Befehl, der beim �berschreiten des Sollwertes ausgefßhrt wird bzw.
  33195. wenn status des sensor2 Ăźbereinstimmt. @ ist ein Platzhalter fĂźr den angegebenen Aktor.<br>
  33196. Defaultwert: set actor off, wenn Aktor angegeben ist<br>
  33197. </li>
  33198. <br>
  33199. <li><b>cmd2_lt</b> (optional)<br>
  33200. FHEM/Perl Befehl, der beim Unterschreiten der Untergrenze (Sollwert-Hysterese) ausgefĂźhrt wird bzw.
  33201. wenn status des sensor2 nicht Ăźbereinstimmt. @ ist ein Platzhalter fĂźr den angegebenen Aktor.<br>
  33202. Defaultwert: set actor on, wenn Aktor angegeben ist<br>
  33203. </li>
  33204. <br>
  33205. <li><b>cmd_default_index</b> (optional)<br>
  33206. FHEM/Perl Befehl, der nach dem Setzen des Sollwertes ausgefĂźhrt wird, bis Sollwert oder die Untergrenze erreicht wird.<br>
  33207. 0 - kein Befehl<br>
  33208. 1 - cmd1_gt<br>
  33209. 2 - cmd2_lt<br>
  33210. Defaultwert: 2, wenn Aktor angegeben ist, sonst 0<br>
  33211. </li>
  33212. <br>
  33213. <li><b>state_cmd1_gt</b> (optional, wird gleichzeitig als Attribut definiert)<br>
  33214. Status, der angezeigt wird, wenn FHEM/Perl-Befehl cmd1_gt ausgefĂźhrt wurde.<br>
  33215. Defaultwert: kein<br>
  33216. </li>
  33217. <br>
  33218. <li><b>state_cmd2_lt</b> (optional, wird gleichzeitig als Attribut definiert)<br>
  33219. Status, der angezeigt wird, wenn FHEM/Perl-Befehl cmd2_lt ausgefĂźhrt wurde.<br>
  33220. Defaultwert: kein<br>
  33221. </li>
  33222. <br>
  33223. <li><b>state_format</b> (optional, wird gleichzeitig als Attribut definiert und kann dort verändert werden)<br>
  33224. Format der Statusanzeige: beliebiger Text mit Platzhaltern<br>
  33225. MĂśgliche Platzhalter:<br>
  33226. _m: mode<br>
  33227. _dv: desired_value<br>
  33228. _s1v: sensor_value<br>
  33229. _s2s: sensor2_state<br>
  33230. _sc: state_cmd<br>
  33231. Defaultwert: _m _dv _sc, _sc, wenn state_cmd1_gt und state_cmd2_lt ohne Aktor gesetzt wird.<br>
  33232. </li>
  33233. <br>
  33234. <br>
  33235. </ul>
  33236. <a name="THRESHOLDset"></a>
  33237. <b>Set </b>
  33238. <ul>
  33239. <li><code>set &lt;name&gt; desired &lt;value&gt;<br></code>
  33240. Setzt den Sollwert. Wenn kein Sollwert gesetzt ist, ist das Modul nicht aktiv.
  33241. Sollwert-Vorgabe durch einen Sensor wird hiermit Ăźbersteuert, solange bis "set external" gesetzt wird.
  33242. </li>
  33243. <br>
  33244. <li><code>set &lt;name&gt; deactivated &lt;command&gt;<br></code>
  33245. Modul wird deaktiviert.<br>
  33246. &lt;command&gt; ist optional. Es kann "cmd1_gt" oder "cmd2_lt" Ăźbergeben werden, um vor dem Deaktivieren des Moduls einen definierten Zustand zu erreichen.
  33247. </li>
  33248. <br>
  33249. <li><code>set &lt;name&gt; active<br></code>
  33250. Modul wird aktiviert, falls unter target_value ein Sensor fĂźr die Sollwert-Vorgabe definiert wurde, wird der aktuelle Sollwert solange eingefroren bis "set <name> external" gesetzt wird.<br>
  33251. </li>
  33252. <br>
  33253. <li><code>set &lt;name&gt; externel<br></code>
  33254. Modul wird aktiviert, Sollwert-Vorgabe kommt vom Sensor, falls ein Sensor unter target_value definierte wurde.<br>
  33255. </li>
  33256. <br>
  33257. <li><code>set &lt;name&gt; hysteresis &lt;value&gt;<br></code>
  33258. Setzt Hysterese-Wert.
  33259. </li>
  33260. <br>
  33261. <li><code>set &lt;name&gt; offset &lt;value&gt;<br></code>
  33262. Setzt Offset-Wert.<br>
  33263. Defaultwert: 0
  33264. </li>
  33265. <br>
  33266. <li><code>set &lt;name&gt; cmd1_gt</code><br>
  33267. FĂźhrt das unter cmd1_gt definierte Kommando aus.<br>
  33268. </li>
  33269. <br>
  33270. <li><code>set &lt;name&gt; cmd2_lt</code><br>
  33271. FĂźhrt das unter cmd2_lt definierte Kommando aus.<br>
  33272. </li>
  33273. </ul>
  33274. <br>
  33275. <a name="THRESHOLDget"></a>
  33276. <b>Get </b>
  33277. <ul>
  33278. N/A
  33279. </ul>
  33280. <br>
  33281. <a name="THRESHOLDattr"></a>
  33282. <b>Attributes</b>
  33283. <ul>
  33284. <li><a href="#disable">disable</a></li>
  33285. <li><a href="#loglevel">loglevel</a></li>
  33286. <li>state_cmd1_gt</li>
  33287. <li>state_cmd2_lt</li>
  33288. <li>state_format</li>
  33289. <li>number_format</li>
  33290. Das angegebene Format wird im Status fĂźr die Formatierung von desired_value (_dv) und sensor_value (_s1v) Ăźber die sprintf-Funktion benutzt.<br>
  33291. Voreingestellt ist "%.1f" fĂźr eine Nachkommastelle. FĂźr weiter Formatierungen - siehe Formatierung in der sprintf-Funktion in der Perldokumentation.<br>
  33292. Wenn das Attribut gelĂśscht wird, werden Zahlen im Status nicht formatiert.<br>
  33293. <li>target_func</li>
  33294. Hier kann ein Perlausdruck angegeben werden, um aus dem Vorgabewert eines externen Sensors (target_value) einen Sollwert zu berechnen.<br>
  33295. Der Sensorwert wird mit "_tv" im Ausdruck angegeben. Siehe dazu Beispiele oben zur Steuerung der Heizung nach einer Heizkennlinie.<br>
  33296. <li>setOnDeactivated</li>
  33297. Kommando, welches durch das Deaktivieren per "set ... deactivated" automatisch ausgefĂźhrt werden soll. MĂśgliche Angaben: cmd1_gt, cmd2_lt<br>
  33298. <li>desiredActivate</li>
  33299. Wenn das Attribut auf 1 gesetzt ist, wird ein deaktiviertes Modul durch "set ... desired <value>" automatisch aktiviert. "set ... active" ist dann nicht erforderlich.<br>
  33300. </ul>
  33301. <br>
  33302. <p><a name="THZ"></a>
  33303. <h3>THZ</h3>
  33304. <div class='langLinks'>[<a href='commandref.html#THZ'>EN</a> DE]</div>
  33305. <ul>
  33306. THZ Modul: Kommuniziert mittels einem seriellen Interface RS232/USB (z.B. /dev/ttyxx), oder mittels ser2net (z.B. 10.0.x.x:5555) mit einer Tecalor / Stiebel
  33307. Eltron W&auml;rmepumpe. <br>
  33308. Getestet mit einer Tecalor THZ303/Sol (Serielle Geschwindigkeit 57600/115200@USB) und einer THZ403 (Serielle Geschwindigkeit 115200) mit identischer
  33309. Firmware 4.39. <br>
  33310. Getestet mit einer Stiebel LWZ404 (Serielle Geschwindigkeit 115200@USB) mit Firmware 5.39. <br>
  33311. Getestet auf FritzBox, nas-qnap, Raspberry Pi and MacOS.<br>
  33312. Dieses Modul funktioniert nicht mit &aumlterer Firmware; Gleichwohl, das "parsing" k&ouml;nnte leicht angepasst werden da die Register gut
  33313. beschrieben wurden.
  33314. https://answers.launchpad.net/heatpumpmonitor/+question/100347 <br>
  33315. Implementiert: Lesen der Statusinformation sowie Lesen und Schreiben einzelner Einstellungen.
  33316. Genauere Beschreinung des Modules --> 00_THZ wiki http://www.fhemwiki.de/wiki/Tecalor_THZ_W%C3%A4rmepumpe
  33317. <br><br>
  33318. <a name="THZdefine"></a>
  33319. <b>Define</b>
  33320. <ul>
  33321. <code>define &lt;name&gt; THZ &lt;device&gt;</code> <br>
  33322. <br>
  33323. <code>device</code> kann einige Parameter beinhalten (z.B. @baudrate, @direction,
  33324. TCP/IP, none) wie das <a href="#CULdefine">CUL</a>, z.B. 57600 baud oder 115200.<br>
  33325. Beispiel:<br>
  33326. Direkte Verbindung
  33327. <ul><code>
  33328. define Mytecalor THZ /dev/ttyUSB0@115200<br>
  33329. </code></ul>
  33330. oder vir Netzwerk (via ser2net)<br>
  33331. <ul><code>
  33332. define Myremotetecalor THZ 192.168.0.244:2323
  33333. </code></ul>
  33334. <br>
  33335. <ul><code>
  33336. define Mythz THZ /dev/ttyUSB0@115200 <br>
  33337. define FileLog_Mythz FileLog ./log/Mythz-%Y.log Mythz <br>
  33338. attr Mythz event-min-interval s.*:4800 <br>
  33339. attr Mythz event-on-change-reading .* <br>
  33340. attr Mythz interval_sDHW 400 <br>
  33341. attr Mythz interval_sElectrDHWDay 2400 <br>
  33342. attr Mythz interval_sElectrDHWTotal 43200 <br>
  33343. attr Mythz interval_sGlobal 400 <br>
  33344. attr Mythz interval_sHC1 400 <br>
  33345. attr Mythz interval_sHeatDHWDay 2400 <br>
  33346. attr Mythz interval_sHeatDHWTotal 43200 <br>
  33347. attr Mythz interval_sHeatRecoveredDay 2400 <br>
  33348. attr Mythz interval_sHeatRecoveredTotal 43200 <br>
  33349. attr Mythz interval_sHistory 86400 <br>
  33350. attr Mythz interval_sLast10errors 86400 <br>
  33351. attr Mythz room pompa <br>
  33352. attr FileLog_Mythz room pompa <br>
  33353. </code></ul>
  33354. <br>
  33355. Wenn die Attribute interval_XXXXXXX nicht definiert sind (oder 0), ist das interne Polling deaktiviert.
  33356. </ul>
  33357. <br>
  33358. </ul>
  33359. <p><a name="TPLinkHS110"></a>
  33360. <h3>TPLinkHS110</h3>
  33361. <div class='langLinks'>[<a href='commandref.html#TPLinkHS110'>EN</a> DE]</div>
  33362. <ul>
  33363. <br>
  33364. <a name="TPLinkHS110"></a>
  33365. <b>Define</b>
  33366. <code>define &lt;name&gt; TPLinkHS110 &lt;ip/hostname&gt;</code><br>
  33367. <br>
  33368. Definiert eine TP-Link HS100 oder HS110 schaltbare WLAN-Steckdose. <br>
  33369. Der Unterschied zwischen der HS100 und HS110 besteht darin, dass die HS110 eine Echtzeit-Messung von <br>
  33370. Strom, Spannung sowie Leistung durchfĂźhrt.<br>
  33371. Dieses Modul erkennt automatisch, welchen Typ Sie verwenden und passt die Readings entsprechend an.
  33372. <br><br>
  33373. Das Modul implementiert nicht alle Funktionen der HS100/110.<br>
  33374. Derzeit werden alle fĂźr den sinnvollen Betrieb an FHEM benĂśtigten Parameter ausgelesen.<br>
  33375. Geschrieben werden jedoch nur die Schaltzustände "An", "Aus" sowie der Nachtmodus An/Aus (Nachtmodus = LEDs der Steckdose ausschalten).<br>
  33376. FĂźr eine weitergehende Programmierung der Steckdosen wird daher die TP Link App "Kasa" empfohlen, wobei deren<br>
  33377. Funktionen wie Timer etc. letztlich redundant zu Kernfunktionen von FHEM sind.
  33378. <p>
  33379. <b>Attribute</b>
  33380. <ul>
  33381. <li><b>interval</b>: Das Intervall in Sekunden, nach dem FHEM die Messwerte aktualisiert. Default: 300s</li>
  33382. Eine Aktualisierung der Messwerte findet auch bei jedem Schaltvorgang statt.
  33383. <p>
  33384. <li><b>timeout</b>: Der Timeout in Sekunden, der bei der Kommunikation mit der Steckdose verwendet wird. Default: 1s</li>
  33385. <i>Achtung</i>: der Timeout von 1s ist knapp gewählt. Ggf. kann es zu Fehlermeldungen kommen, wenn die Steckdose nicht
  33386. schnell genug antwortet.<br>
  33387. Bitte beachten Sie aber auch, dass längere Timeouts FHEM fßr den Zeitraum des Requests blockieren!
  33388. <p>
  33389. <li><b>disable</b>: Die AusfĂźhrung des Moduls wird gestoppt. Default: no.</li>
  33390. <i>Achtung: wenn Ihre Steckdose nicht in Betrieb oder Ăźber das WLAN erreichbar ist, sollten Sie
  33391. dieses FHEM-Modul per Attribut "disable" abschalten, da sonst beim zyklischen Abruf der Messdaten
  33392. der Steckdose Timeouts auftreten, die FHEM unnĂśtig verlangsamen.</i>
  33393. </ul>
  33394. <p>
  33395. <b>Requirements</b>
  33396. <ul>
  33397. Das Modul benĂśtigt die folgenden Perl-Module:<br><br>
  33398. <li> Perl Module: IO::Socket::INET </li>
  33399. <li> Perl Module: IO::Socket::Timeout </li>
  33400. </ul>
  33401. </ul>
  33402. <p><a name="TRAFFIC"></a>
  33403. <h3>TRAFFIC</h3>
  33404. <ul>
  33405. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  33406. hier: <a href='commandref.html#TRAFFIC'>TRAFFIC</a><br/>
  33407. </ul>
  33408. <a name="TRX"></a>
  33409. <h3>TRX</h3>
  33410. <ul>
  33411. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  33412. hier: <a href='commandref.html#TRX'>TRX</a><br/>
  33413. </ul>
  33414. <a name="TRX_ELSE"></a>
  33415. <h3>TRX_ELSE</h3>
  33416. <ul>
  33417. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  33418. hier: <a href='commandref.html#TRX_ELSE'>TRX_ELSE</a><br/>
  33419. </ul>
  33420. <a name="TRX_LIGHT"></a>
  33421. <h3>TRX_LIGHT</h3>
  33422. <ul>
  33423. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  33424. hier: <a href='commandref.html#TRX_LIGHT'>TRX_LIGHT</a><br/>
  33425. </ul>
  33426. <a name="TRX_SECURITY"></a>
  33427. <h3>TRX_SECURITY</h3>
  33428. <ul>
  33429. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  33430. hier: <a href='commandref.html#TRX_SECURITY'>TRX_SECURITY</a><br/>
  33431. </ul>
  33432. <a name="TRX_WEATHER"></a>
  33433. <h3>TRX_WEATHER</h3>
  33434. <ul>
  33435. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  33436. hier: <a href='commandref.html#TRX_WEATHER'>TRX_WEATHER</a><br/>
  33437. </ul>
  33438. <a name="TUL"></a>
  33439. <h3>TUL</h3>
  33440. <div class='langLinks'>[<a href='commandref.html#TUL'>EN</a> DE]</div>
  33441. <ul>
  33442. <table>
  33443. <tr><td>
  33444. Das Modul TUL stellt die Verbindung von FHEM zum EIB / KNX dar.
  33445. <a href="#KNX">KNX</a> Instanzen stellen die Vrbindung zu den KNX-Gruppen dar und ben&Ouml;tigen ein TUL-Device als IO-Schnittstelle.<br>
  33446. Das Modul TUL kommuniziert mit dem KNX entweder &Uuml;ber den eibd, den knxd oder den TUL <a href="http://busware.de/tiki-index.php?page=TUL" target="_blank">TUL usb stick</a> hergestellt von busware.de
  33447. Anmerkung: das Modul ben&Ouml;tigt die Device::SerialPort oder Win32::SerialPort wenn der Stick &Uuml;ber USB angeschlossen wird, und das OS unrealistische Parameter f&Uuml;r das Device einstellt.
  33448. </td><td>
  33449. <img src="IMG_0483.jpg" width="100%" height="100%"/>
  33450. </td></tr>
  33451. </table>
  33452. <a name="TULdefine"></a>
  33453. <b>Define</b>
  33454. <ul>
  33455. <code>define &lt;name&gt; TUL &lt;device&gt; &lt;physical address&gt;</code> <br>
  33456. <br>
  33457. TUL usb stick / TPUART serial devices:<br><ul>
  33458. &lt;device&gt; enth&auml;lt die serielle Schnittstelle der TUL. Der name der Schnittstelle h&auml;ngt von Eurer Distribution ab. Unter linux wird f&Uuml;r gew&Ouml;hnlich /dev/ttyACM0 verwandt.
  33459. Wenn Eure Distribution das modul cdc_acm nicht enth&auml;lt, k&Ouml;nnt Ihr das Laden des handles der TUL mit dem folgenden Befehl erzwingen:<ul>modprobe usbserial vendor=0x03eb
  33460. product=0x204b</ul>Dann ist die Schnittstelle meist /dev/ttyUSB0.<br><br>
  33461. Ihr k&Ouml;nnt dem Ger&auml;t eine Baudrate vorgeben. Dazu dem Ger&auml;tenamen das Zeichen @ hinzuf&Uuml;gen, z.B.: /dev/ttyACM0@19200<br><br>
  33462. Anmerkung: F&Uuml;r den TUL-USB-Stick wird die Baudrate 19200 ben&Ouml;tigt. Dies entspricht der Defaulteinstellung.
  33463. <br><br>
  33464. Beispiel:<br>
  33465. <code>define tul TUL tul:/dev/ttyACM0 1.1.249</code>
  33466. </ul>
  33467. EIBD:<br><ul>
  33468. &lt;device&gt; entspricht dem host:port des eibd-servers. z.B. eibd:192.168.0.244:2323. Wenn der Standardport genutzt wird, muss dieser nicht angegeben werden.
  33469. <br><br>
  33470. Beispiel:<br>
  33471. <code>define tul TUL eibd:localhost 1.1.249</code>
  33472. <code>define tul TUL knxd:192.168.178.2 1.1.248</code>
  33473. </ul>
  33474. <br>
  33475. Wenn das Ger&auml;t none konfiguriert wird, wird kein device ge&Ouml;ffnet. So k&Ouml;nnt Ihr ohne angeschlossene Hardware experimentieren. <br>
  33476. Die physikalische Adresse wird als Absender f&Uuml;r KNX-Telegramme genutzt.
  33477. </ul>
  33478. <br>
  33479. <a name="TULattr"></a>
  33480. <b>Attribute</b>
  33481. <ul>
  33482. <li><a href="#do_not_notify">do_not_notify</a></li><br>
  33483. <li><a href="#attrdummy">dummy</a></li><br>
  33484. <li><a href="#showtime">showtime</a></li><br>
  33485. <li><a href="#verbose">verbose</a></li><br>
  33486. <li><a href="#useEIB">useEIB</a></li><br>
  33487. <ul>
  33488. Das Ger&auml;t kann das Modul 10_EIB bedienen, wenn das Flag auf 1 gesetzt ist. Dies ist nur f&Uuml;r R&Uuml;ckw&auml;rtskompatibili&auml;t genutzt. Andernfalls wird nur das Modul 10_KNX bedient.
  33489. </ul>
  33490. </ul>
  33491. <br>
  33492. </ul>
  33493. <p><a name="Talk2Fhem"></a>
  33494. <h3>Talk2Fhem</h3>
  33495. <div class='langLinks'>[<a href='commandref.html#Talk2Fhem'>EN</a> DE]</div>
  33496. <ul>
  33497. Das Modul <i>Talk2Fhem</i> stellt eine Verbindung zwischen nat&uuml;rlicher Sprache und FHEM Befehlen her.
  33498. Die Konfiguration erfolgt dabei komfortabel &uuml;ber das FHEM Webfrontend.<br>
  33499. F&uuml;r eine genauere Beschreibung und weiterf&uuml;hrende Beispiele siehe <a href="http://wiki.fhem.de/wiki/Modul_Talk2Fhem">Talk2Fhem Wiki</a>.
  33500. <br><br>
  33501. <a name="Talk2Fhemdefine"></a>
  33502. <b>Define</b>
  33503. <ul>
  33504. <code>define &lt;name&gt; Talk2Fhem</code>
  33505. <br><br>
  33506. Beispiel: <code>define talk Talk2Fhem</code>
  33507. <br><br>
  33508. Die eigentliche Konfigration sollte erst auf der FHEM Seite erfolgen.
  33509. <br><br>
  33510. Die einzelnen Sprachphrasen werden Zeile f&uuml;r Zeile konfiguriert. Hierbei f&auml;ngt eine Konfiguration
  33511. immer mit dem Regul&auml;rem Ausdruck an, gefolgt von mindestens einem Leerzeichen oder Tabulator gefolgt
  33512. von einem Gleichheitszeichen.<br>
  33513. Der Kommandoteil f&auml;ngt nach dem Gleichheitszeichen mit einem Leerzeichen, Tabulator oder Zeilenumbruch an.<br><br>
  33514. <code>&lt;regexp&gt; = &lt;command&gt;</code>
  33515. <br><br>
  33516. <b>Kurzreferenz:</b>
  33517. <br>
  33518. <code>&lt;RegExpPart&gt; [&amp;&amp; [?!]&lt;RegExpPart_n&gt;] = [ &lt;FHEM command&gt; | { &lt;Perl code&gt; } | (&lt;option&gt; =&gt; '&lt;wert&gt;' , ... ) ]</code>
  33519. <br><br>
  33520. Beispiel: <code>hallo welt = {Log 1, Hallo Welt}</code>
  33521. <br><br>
  33522. Alles nach einem Hashtag '#' wird bis zum Zeilenende ignoriert.
  33523. <br><br>
  33524. &lt;regexp&gt;
  33525. <ul>Regul&auml;rer Ausdruck der den Text beschreibt, bei dem das Kommando ausgef&uuml;hrt werden soll</ul>
  33526. <br><br>
  33527. &lt;command&gt;
  33528. <ul>
  33529. Der ausf&uuml;hrende Teil. Folgende Formate sind Zul&auml;ssig:
  33530. <li>FHEM Kommando</li>
  33531. <li>{Perlcode}</li>
  33532. <li>(&lt;option&gt; =&gt; '&lt;wert&gt;' , ... )</li>
  33533. <ul>
  33534. <br><i>&lt;option&gt;</i><br>
  33535. <li><b>cmd</b><br>FHEM Kommando wie oben</li>
  33536. <li><b>offset</b><br>Ganzzahliger Wert in Sekunden der auf den Zeitpunkt addiert wird</li>
  33537. <li><b>answer</b><br>Perl Code dessen R&uuml;ckgabe in das Reading answer geschrieben wird</li>
  33538. </ul>
  33539. </ul>
  33540. <br>
  33541. Klammer&uuml;berf&uuml;hrung:
  33542. <ul>
  33543. Im Regul&auml;rem Ausdruck gesetzte Klammern k&ouml;nnen in den Kommandoteil mit $1, $2, [...], $n &uuml;berf&uuml;hrt und
  33544. modifiziert werden. Folgende Modifizierungsm&ouml;glichkeiten stehen hierbei zur Verf&uuml;gung.
  33545. <li>$n<br>Ohne &Auml;nderung direkt das Wort &uuml;berf&uuml;hren.</li>
  33546. <li>$n{&lt;typ&gt; =&gt; &lt;wert&gt;}<br>
  33547. Die Typen sind:<br>
  33548. true, false, integer, float, numeral, /&lt;regexp&gt;/, word, empty, else<br>
  33549. <b>true</b> entspricht: ja|1|true|wahr|ein|eins.*|auf.*|..?ffnen|an.*|rauf.*|hoch.*|laut.*|hell.*<br>
  33550. <b>false</b> entspricht: nein|0|false|falsch|aus.*|null|zu.*|schlie..?en|runter.*|ab.*|leise.*|dunk.*<br>
  33551. <b>integer</b> Wort enth&auml;lt eine Zahl
  33552. <b>float</b> Wort enth&auml;lt eine Gleitkommazahl
  33553. <b>numeral</b> Word ist ein Zahlenwort oder Zahl <br>
  33554. <b>/&lt;regexp&gt;/</b> Wort entspricht der &lt;regexp&gt;
  33555. <b>word</b> Wort enth&auml;lt gleich oder mehr als 4 Zeichen
  33556. <b>empty</b> Wort enth&auml;lt eine Leere Zeichenkette
  33557. <b>else</b> Falls keines der F&auml;lle zutrifft
  33558. Wird ein &lt;typ&gt; identifiziert wird f&uuml;r $n der &lt;wert&gt; eingesetzt<br>
  33559. Beispiel: <code>licht (\S*) = set light $1{true =&gt; on,false =&gt; off}</code>
  33560. </li>
  33561. <li>$n[&lt;list&gt;]<br>
  33562. Kommaseparierte Liste: [wert1,wert2,...,[else,value], [empty,value]] oder [@modwordlist]<br>
  33563. Ist $n eine Zahl, wird das Wort das an dieser Position in &lt;list&gt; steht gew&auml;hlt.<br><br>
  33564. Ist $n ein Text wird in der zugeh&ouml;rigen Klammer im &lt;regexp&gt;-Teil nach einer Liste gesucht. (a|b|c) oder (@keywordlist)
  33565. In dieser Liste, wird nach $n gesucht und bei erfolg dessen Position in &lt;list&gt; f&uuml;r $n gew&auml;hlt.
  33566. <br>Beispiel: <code>licht .* (k&uuml;che|flur|bad) (\S*) an = set $1[dev_a,dev_b,dev_c] $2{true =&gt; on,false =&gt; off}</code>
  33567. </li>
  33568. <li>$n@<br>Das Wort wird so &uuml;bernommen wie es in der Liste im &lt;regexp&gt;-Teil steht.</li>
  33569. </ul>
  33570. <br>
  33571. Umgebungsvariablen:
  33572. <ul>
  33573. Es stehen eine Reihe von Variablen zur Verf&uuml;gung auf die im &lt;command&gt;-Teil zugegriffen werden k&ouml;nnen.
  33574. <li><b>$&amp;</b> Enth&auml;lt alle gefundenen W&ouml;rter</li>
  33575. <li><b>!$&amp;</b> Enth&auml;lt den Rest der nicht von der RegExp eingeschlossen wurde</li>
  33576. <li><b>$DATE</b> Enth&auml;lt den Zeit und Datumstext des Sprachbefehls</li>
  33577. <li><b>$AGAIN</b> Enth&auml;lt das Wort wieder wenn es sich um ein wieder Kommando handelt</li>
  33578. <li><b>$TIME</b> Enth&auml;lt die erkannte Zeit.</li>
  33579. <li><b>$NAME</b> Enth&auml;lt den Devicenamen.</li>
  33580. <li><b>$IF</b> Enth&auml;lt den Text der erkannten T2F_if Konfiguration.</li>
  33581. <li><b>$0</b> Enth&auml;lt den Text der erkannten T2F_origin RegExp.</li>
  33582. </ul>
  33583. </ul>
  33584. <br>
  33585. <a name="Talk2Fhemset"></a>
  33586. <b>Set</b><br>
  33587. <ul>
  33588. <code>set &lt;name&gt; [!]&lt;text&gt;</code>
  33589. <br><br>
  33590. &Uuml;ber das <i>set</i> Kommando wird der zu interpretierende Text an das Modul gesendet.
  33591. Schaue unter <a href="http://fhem.de/commandref.html#set">commandref#set</a> f&uuml;r weiterf&uuml;hrende Hilfe.
  33592. <li>cleartimers</li> Entfernt die wartenden zeitbezogenen Kommandos
  33593. <li>cleartriggers</li> Entfernt die wartenden ereignisbezogenen Kommandos
  33594. </ul>
  33595. <br>
  33596. <a name="Talk2Fhemget"></a>
  33597. <b>Get</b><br>
  33598. <code>get &lt;name&gt; &lt;option&gt;</code>
  33599. <br><br>
  33600. &Uuml;ber <i>get</i> lassen sich Informationen aus dem Modul auslesen.
  33601. Siehe <a href="http://fhem.de/commandref.html#get">commandref#get</a> f&uuml;r weitere Informationen zu "get".
  33602. <br><br>
  33603. &lt;option&gt;
  33604. <ul>
  33605. <li><i>@keywordlist</i> <i>@modwordlist</i><br>
  33606. Vergleich der zwei Listen Wort f&uuml;r Wort</li>
  33607. <li><i>keylistno</i><br>
  33608. Eine Auflistung der Konfigurierten "Keyword"-Listen. Zur einfacheren Positionierung der "Modword"-Listen</li>
  33609. <li><i>log</i><br>
  33610. Zeigt die Logeintr&auml;ge des letzten Kommandos</li>
  33611. <li><i>modificationtypes</i><br>
  33612. Zeigt die RegExp der Modifikationstypen. </li>
  33613. <li><i>standardfilter</i><br>
  33614. L&auml;dt den Standardfilter und schreibt ihn in das Attribut T2F_filter wenn er leer ist</li>
  33615. <li><i>version</i><br>
  33616. Die Modulversion</li>
  33617. </ul>
  33618. <br>
  33619. <a name="Talk2Fhemreadings"></a>
  33620. <b>Readings</b>
  33621. <ul>
  33622. <li><i>set</i><br>
  33623. Enth&auml;lt den zuletzt &uuml;ber "set" gesendeten Text.
  33624. </li>
  33625. <li><i>cmds</i><br>
  33626. Enth&auml;lt das zuletzt ausgef&uuml;hrte Kommando. Wird auch bei disable=1 gesetzt.
  33627. </li>
  33628. <li><i>answer</i><br>
  33629. Enth&auml;lt den Antworttext des letzten Befehls.
  33630. </li>
  33631. <li><i>err</i><br>
  33632. Enth&auml;lt die letzte Fehlermeldung.<br>
  33633. "No match" &Uuml;bereinstimmung mit keiner RegExp.<br>
  33634. "Error on Command" siehe FHEM log.
  33635. </li>
  33636. <li><i>response</i><br>
  33637. Enth&auml;llt die R&uuml;ckgabe des FHEM Befhels.
  33638. </li>
  33639. <li><i>origin</i><br>
  33640. Enth&auml;lt die gefundene Zeichenkette der in dem Attribut T2F_origin definierten RegExp.
  33641. </li>
  33642. <li><i>status</i><br>
  33643. Enth&auml;lt den Status der Ausgabe.
  33644. response, disabled, err, answers, done
  33645. </li>
  33646. <li><i>ifs</i><br>
  33647. Enth&auml;lt die Bedingungen bei denen das Kommando ausgef&uuml;hrt werden wird.
  33648. </li>
  33649. <li><i>notifies</i><br>
  33650. Enth&auml;lt eine Auflistung der Devices die f&uuml;r die aktuell wartenden bedingten Kommandos relevant sind. Auf diesen Devices liegt ein internes notify.
  33651. </li>
  33652. </ul>
  33653. <br>
  33654. <a name="Talk2Fhemattr"></a>
  33655. <b>Attribute</b>
  33656. <ul>
  33657. <code>attr &lt;name&gt; &lt;attribute&gt; &lt;value&gt;</code>
  33658. <br><br>
  33659. Siehe <a href="http://fhem.de/commandref.html#attr">commandref#attr</a> f&uuml;r weitere Informationen zu den Attributen.
  33660. <br><br>
  33661. Attribute:
  33662. <ul>
  33663. <li><i>T2F_keywordlist</i> &lt;name&gt; = &lt;list&gt;<br>
  33664. Eine Komma seperierte Liste von Schl&uuml;sselw&ouml;rtern wie z.B.: R&auml;umen, Namen, Farben usw...<br>
  33665. Mit anderen Worten, mit nat&uuml;rlichem Namen benannte Sachen.
  33666. </li>
  33667. <li><i>T2F_modwordlist</i> &lt;name&gt; = &lt;list&gt;<br>
  33668. Eine Komma seperierte Liste von Ersetzungsw&ouml;rten die f&uuml;r die Schl&uuml;sselw&ouml;rter eingesetzt werden.
  33669. z.B.: Ger&auml;tenamen in FHEM<br>
  33670. </li>
  33671. <li><i>T2F_if</i><br>
  33672. Eine Auflistung von ereignisgesteuerten Konfigurationen. Die Syntax ist die der Definition. Kommandoteil ist eine IF Bedingung.<br>
  33673. z.B.: wenn .*?t&uuml;r = [door] eq "open"
  33674. </li>
  33675. <li><i>T2F_filter</i><br>
  33676. Kommaseparierte Liste von RegExp die generell entfernt werden.<br>
  33677. Standard: \bbitte\b,\bauch\b,\bkann\b,\bsoll\b
  33678. </li>
  33679. <li><i>T2F_origin</i><br>
  33680. Eine RegExp die generell entfernt wird und deren Ausgabe &uuml;ber $0 angesprochen werden kann.<br>
  33681. Kann f&uuml;r eine Benutzerzuordnung verwendet werden.
  33682. </li>
  33683. <li><i>T2F_language</i>DE|EN<br>
  33684. Die verwendete Sprache kann &uuml;ber das globale Attribut "language" gesetzt werden. Oder &uuml;ber dieses Attribut &uuml;berschrieben werden.
  33685. </li>
  33686. <li><i>T2F_disableumlautescaping</i> &lt;0|1&gt;<br>
  33687. Deaktiviert das Konvertieren der Umlaute in "\S\S?"</li>
  33688. <li><i>disable</i> &lt;0|1&gt;<br>
  33689. Kann zu Testzwecken verwendet werden. Steht das Attribut auf 1, wird das FHEM-Kommando nicht ausgef&uuml;hrt
  33690. aber in das Reading cmds geschrieben.
  33691. </li>
  33692. </ul>
  33693. </ul>
  33694. </ul>
  33695. <p><a name="TechemHKV"></a>
  33696. <h3>TechemHKV</h3>
  33697. <div class='langLinks'>[<a href='commandref.html#TechemHKV'>EN</a> DE]</div>
  33698. <ul>
  33699. Das modul empfängt Daten eines Techem Heizkostenverteilers.
  33700. <br><br>
  33701. Empfangen werden
  33702. <ul>
  33703. <li>Wert des aktuellen Abrechnungszeitraumes</li>
  33704. <li>Wert des vorhergehenden Abrechnungszeitraumes einschlie�lich des Ablesedatums</li>
  33705. <li>Beide Temperatur Sensoren (sofern der Heizkostenverteiler sie sendet)</li>
  33706. </ul>
  33707. <br>
  33708. Zum Empfang wird ein CUL im WMBUS_T mode benĂśtigt. Dabei ist es ausreichend ihn vorrĂźbergehend in diesen Modus zu schalten.
  33709. Das Modul Ăźberwacht den rfmode aller verfĂźgbaren CUL
  33710. <br>
  33711. <br>
  33712. <a name="TechemHKV_Define"></a>
  33713. <b>Define</b>
  33714. <br>
  33715. <code>define &lt;name&gt; TechemHKV &lt;4|8 digit ID&gt; [&lt;speaking name&gt;]</code>
  33716. <ul>
  33717. <li>ID: 4 Ziffern wie auf dem Heizkostenverteiler angezeigt oder 8 Ziffern aus der Abrechnung</li>
  33718. <li>speaking name: (optional) Bezeichnung</li>
  33719. </ul>
  33720. <br>
  33721. <a name="TechemHKV_Readings"></a>
  33722. <b>Readings</b>
  33723. <ul>
  33724. <li>current_period: Wert des aktuellen Abrechnungszeitraumes
  33725. <br><i>Der kumulierte (einheitenlose) Verbrauch seid dem Start des aktuellen Abrechnungszeitraumes. Das reading wird einmal am Tag aktualisiert. Die Zeit kennzeichnet den Stand der Daten. (und nicht den Empfangszeitpunkt der Daten)</i></br>
  33726. </li>
  33727. <li>previous_period: Summe des letzten Abrechnungszeitraum
  33728. <br><i>Die (einheitenlose) Summe der Verbauchs im gesamten letzten Abrechnungszeitraum. Das reading wird jeweils zu Beginn eines neuen Abrechnungszeitraumes aktualisiert. Die Zeit kennzeichnet das Ablesedatum also das Ende des vorherigen Abrechnugszeitraumes. (und nicht den Empfangszeitpunkt der Daten)</i></br>
  33729. </li>
  33730. <li>temp1: Umgebungstemperatur</li>
  33731. <li>temp2: Oberflächentemperatur des HeizkÜrpers</li>
  33732. <br>
  33733. </ul>
  33734. <a name="TechemHKV_Internals"></a>
  33735. <b>Internals</b>
  33736. <ul>
  33737. <li>friendly: die beim define ßbergebene, zusätzliche Bezeichnung</li>
  33738. <li>longID: 8 Ziffern ID des Heizkostenverteilers</li>
  33739. <br>
  33740. </ul>
  33741. </ul>
  33742. <p><a name="TechemWZ"></a>
  33743. <h3>TechemWZ</h3>
  33744. <div class='langLinks'>[<a href='commandref.html#TechemWZ'>EN</a> DE]</div>
  33745. <ul>
  33746. Das modul empfängt Daten von Techem Volumenzählern. Unterstßtzte Zählertypen sind
  33747. <p>
  33748. <ul>
  33749. <li>Messkapsel-Wasserzähler radio 3 (Kalt-, Warmwasser)</li>
  33750. <li>Messkapsel-Wärmemengenzähler compact V</li>
  33751. </ul>
  33752. <br>
  33753. Empfangen werden:
  33754. <ul>
  33755. <li>Wert des aktuellen Abrechnungszeitraumes</li>
  33756. <li>Wert des vorhergehenden Abrechnungszeitraumes einschlie�lich des Ablesedatums</li>
  33757. <li>Gesamter aufgelaufener Verbrauchswert</li>
  33758. </ul>
  33759. <br>
  33760. Zum Empfang wird ein CUL im WMBUS_T mode benĂśtigt. Dabei ist es ausreichend ihn vorrĂźbergehend in diesen Modus zu schalten. Das Modul Ăźberwacht den rfmode aller verfĂźgbaren CUL
  33761. <br>
  33762. <br>
  33763. <a name="TechemWZ_preliminary"></a>
  33764. <b>Vorbereitung</b>
  33765. <p>
  33766. Leider ßbertragen die Techem Volumenzähler nicht die aufgedruckte Zählernummer. �bertragen wird nur die ID des eingebauten Funkmoduls.
  33767. <p>
  33768. Das Modul stellt daher einen <b>"list-mode"</b> zur Verfßgung. Damit kann eine Liste aller empfangenen Techem Volumenzähler anzeigt werden. Der "list-mode" wird aktiviert indem ein TechemWZ device mit der ID "00000000" definiert wird.
  33769. Lassen Sie dieses device einige Zeit laufen damit es Informationen ßber die verfßgbaren Zähler sammeln kann. Rufen Sie dann "get &lt;name&gt; list" auf um eine Liste der empfangenen Techem Volumenzähler, ihrer ID sowie der dazugehÜrigen Zählerstände zu sehen. Denken Sie daran das dies die Werte des letzten Tageswechsels sind.
  33770. Notieren Sie sich anhand dieser Angaben die ID der gesuchten Zähler und definieren sie damit die entsprechenden TechemWZ device. Das list-mode device mit der ID "00000000" kann danach gefahrlos gelÜscht werden.
  33771. <br>
  33772. <br>
  33773. <a name="TechemWZ_Define"></a>
  33774. <b>Define</b>
  33775. <br>
  33776. <code>define &lt;name&gt; TechemWZ &lt;8 digit ID&gt; [&lt;speaking name&gt;]</code>
  33777. <ul>
  33778. <li>ID: 8 stellige ID des Funkmoduls(siehe "list-mode")</li>
  33779. <li>speaking name: (optional) Bezeichnung</li>
  33780. </ul>
  33781. <br>
  33782. <a name="TechemWZ_Readings"></a>
  33783. <b>Readings</b>
  33784. <ul>
  33785. <li>current_period: Wert des aktuellen Abrechnungszeitraumes
  33786. <br><i>Der kumulierte Verbrauch seid dem Start des aktuellen Abrechnungszeitraumes. Das reading wird einmal am Tag aktualisiert. Die Zeit kennzeichnet den Stand der Daten. (und nicht den Empfangszeitpunkt der Daten)</i></br>
  33787. </li>
  33788. <li>previous_period: Wert des letzten Ablesezeitpunktes
  33789. <br><i>Zählerstand zum letzten Abrechnungszeitpunkt. Das reading wird zum Ablesezeitpunkt aktualisiert. Die Zeit kennzeichnet das Ablesedatum (und nicht den Empfangszeitpunkt der Daten)</i></br>
  33790. </li>
  33791. <li>meter: gesamter Verbrauch.
  33792. <br><i>Der Zählerstand so wie er an der (mechanischen) Anzeige des Zählers abgelesen werden kann</i></br>
  33793. </li>
  33794. <br>
  33795. </ul>
  33796. <a name="TechemWZ_Get"></a>
  33797. <b>Get</b>
  33798. <ul>
  33799. <li>list: gibt eine Liste der empfangenen Techem Volumenzähler, ihrer ID sowie der dazugehÜrigen Zählerstände aus.
  33800. <br><i><u>nur im "list-mode" (ID "00000000") verfĂźgbar</u></i></br>
  33801. </li>
  33802. <br>
  33803. </ul>
  33804. <a name="TechemWZ_Internals"></a>
  33805. <b>Internals</b>
  33806. <ul>
  33807. <li>friendly: die beim define ßbergebene, zusätzliche Bezeichnung</li>
  33808. <br>
  33809. </ul>
  33810. </ul>
  33811. <p><a name="TelegramBot"></a>
  33812. <h3>TelegramBot</h3>
  33813. <ul>
  33814. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  33815. hier: <a href='commandref.html#TelegramBot'>TelegramBot</a><br/>
  33816. </ul>
  33817. <a name="TellStick"></a>
  33818. <h3>TellStick</h3>
  33819. <ul>
  33820. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  33821. hier: <a href='commandref.html#TellStick'>TellStick</a><br/>
  33822. </ul>
  33823. <a name="TeslaPowerwall2AC"></a>
  33824. <h3>Tesla Powerwall 2 AC</h3>
  33825. <div class='langLinks'>[<a href='commandref.html#TeslaPowerwall2AC'>EN</a> DE]</div>
  33826. <p><a name="Text2Speech"></a>
  33827. <h3>Text2Speech</h3>
  33828. <div class='langLinks'>[<a href='commandref.html#Text2Speech'>EN</a> DE]</div>
  33829. <ul>
  33830. <br>
  33831. <a name="Text2Speechdefine"></a>
  33832. <b>Define</b>
  33833. <ul>
  33834. <b>Local : </b><code>define &lt;name&gt; Text2Speech &lt;alsadevice&gt;</code><br>
  33835. <b>Remote: </b><code>define &lt;name&gt; Text2Speech &lt;host&gt;[:&lt;portnr&gt;][:SSL] [portpassword]</code>
  33836. <b>Server : </b><code>define &lt;name&gt; Text2Speech none</code><br>
  33837. <p>
  33838. Das Modul wandelt Text mittels verschiedener Provider/Ressourcen in Sprache um. Dabei kann das Device als
  33839. Remote, Lokales Device oder als Server konfiguriert werden.
  33840. </p>
  33841. <li>
  33842. <b>Local Device</b><br>
  33843. <ul>
  33844. Die Ausgabe erfolgt auf angeschlossenen Audiodevices, zb. Lautsprecher direkt am Ger&auml;t oder per
  33845. Bluetooth-Lautsprecher per Mplayer. Dazu ist Mplayer zu installieren.<br>
  33846. <code>apt-get install mplayer</code><br>
  33847. Das angegebene Alsadevice ist in der <code>/etc/asound.conf</code> zu konfigurieren.
  33848. <p>
  33849. <b>Special AlsaDevice: </b><i>default</i><br>
  33850. Ist als Alsa-Device <i>default</i> angegeben, so wird mplayer ohne eine Audiodevice Angabe aufgerufen.
  33851. Dementsprechend verwendet mplayer das Standard Audio Ausgabedevice.
  33852. </p>
  33853. <p>
  33854. <b>Beispiel:</b><br>
  33855. <code>define MyTTS Text2Speech hw=0.0</code><br>
  33856. <code>define MyTTS Text2Speech default</code>
  33857. </p>
  33858. </ul>
  33859. </li>
  33860. <li>
  33861. <b>Remote Device</b><br>
  33862. <ul>
  33863. Das Modul ist Client-Server f&auml;as bedeutet, das auf der Haupt-FHEM Installation eine Text2Speech-Instanz
  33864. als Remote definiert wird. Auf dem Client wird Text2Speech als Local definiert. Die Sprachausgabe erfolgt auf
  33865. der lokalen Instanz.<br>
  33866. Zu beachten ist, das die Text2Speech Instanz (Definition als local Device) auf dem Zieldevice identisch benannt ist.
  33867. <ul>
  33868. <li>Host: Angabe der IP-Adresse</li>
  33869. <li>PortNr: Angabe des TelnetPorts von FHEM; default: 7072</li>
  33870. <li>SSL: Angabe ob der der Zugriff per SSL erfolgen soll oder nicht; default: kein SSL</li>
  33871. <li>PortPassword: Angabe des in der Ziel-FHEM-Installtion angegebene Telnet Portpasswort</li>
  33872. </ul>
  33873. <p>
  33874. <b>Beispiel:</b><br>
  33875. <code>define MyTTS Text2Speech 192.168.178.10:7072 fhempasswd</code>
  33876. <code>define MyTTS Text2Speech 192.168.178.10</code>
  33877. </p>
  33878. Wenn ein PRESENCE Gerät die Host IP-Adresse abfragt, wird die blockierende interne Prßfung auf Erreichbarkeit umgangen und das PRESENCE Gerät genutzt.
  33879. </ul>
  33880. </li>
  33881. <li>
  33882. <b>Server Device</b>
  33883. <ul>
  33884. Im Falle der Verwendung als Server, wird nur die MP3 Datei erstellt und als Reading lastFilename dargestellt. Es macht keinen Sinn
  33885. hier das Attribut <i>TTS_speakAsFastAsPossible</i> zu verwenden. Die Verwendung des Attributes <i>TTS_useMP3Wrap</i> wird dringend empfohlen.
  33886. Ansonsten wird hier nur der letzte Teiltext als mp3 Datei im Reading dargestellt.
  33887. </ul>
  33888. </li>
  33889. </ul>
  33890. </ul>
  33891. <a name="Text2Speechset"></a>
  33892. <b>Set</b>
  33893. <ul>
  33894. <li><b>tts</b>:<br>
  33895. Setzen eines Textes zur Sprachausgabe. Um mp3-Dateien direkt auszugeben, mĂźssen diese mit f&uuml;hrenden
  33896. und schlie�enden Doppelpunkten angegebenen sein. Die MP3-Dateien mßssen unterhalb des Verzeichnisses <i>TTS_FileTemplateDir</i> gespeichert sein.<br>
  33897. Der Text selbst darf deshalb selbst keine Doppelpunte beinhalten. Siehe Beispiele.
  33898. </li>
  33899. <li><b>volume</b>:<br>
  33900. Setzen der Ausgabe Lautst&auml;rke.<br>
  33901. Achtung: Nur bei einem lokal definierter Text2Speech Instanz m&ouml;glich!
  33902. </li>
  33903. </ul><br>
  33904. <a name="Text2Speechget"></a>
  33905. <b>Get</b>
  33906. <ul>N/A</ul><br>
  33907. <a name="Text2Speechattr"></a>
  33908. <b>Attribute</b>
  33909. <ul>
  33910. <li>TTS_Delemiter<br>
  33911. Optional: Wird ein Delemiter angegeben, so wird der Sprachbaustein an dieser Stelle geteilt.
  33912. Als Delemiter ist nur ein einzelnes Zeichen zul&auml;ssig.
  33913. Hintergrund ist die Tatsache, das die Google Sprachengine nur 100Zeichen zul&auml;sst.<br>
  33914. Im Standard wird nach jedem Satzende geteilt. Ist ein einzelner Satz l&auml;nger als 100 Zeichen,
  33915. so wird zus&auml;tzlich nach Kommata, Semikolon und dem Verbindungswort <i>und</i> geteilt.<br>
  33916. Achtung: Nur bei einem lokal definierter Text2Speech Instanz m&ouml;glich und nur bei Nutzung der Google Sprachengine relevant!
  33917. </li>
  33918. <li>TTS_Ressource<br>
  33919. Optional: Auswahl der Sprachengine<br>
  33920. Achtung: Nur bei einem lokal definierter Text2Speech Instanz m&ouml;glich!
  33921. <ul>
  33922. <li>Google<br>
  33923. Nutzung der Google Sprachengine. Ein Internetzugriff ist notwendig! Aufgrund der Qualit&auml;t ist der
  33924. Einsatz diese Engine zu empfehlen und der Standard.
  33925. </li>
  33926. <li>VoiceRSS<br>
  33927. Nutzung der VoiceRSS Sprachengine. Die Nutzung ist frei bis zu 350 Anfragen pro Tag.
  33928. Wenn mehr benÜtigt werden ist ein Bezahlmodell wählbar. Ein Internetzugriff ist notwendig!
  33929. Aufgrund der Qualit&auml;t ist der Einsatz diese Engine ebenfalls zu empfehlen.
  33930. Wenn diese Engine benutzt wird, ist ein APIKey notwendig (siehe TTXS_APIKey)
  33931. </li>
  33932. <li>ESpeak<br>
  33933. Nutzung der ESpeak Offline Sprachengine. Die Qualit&auml; ist schlechter als die Google Engine.
  33934. ESpeak und lame sind vor der Nutzung zu installieren.<br>
  33935. <code>apt-get install espeak lame</code>
  33936. </li>
  33937. <li>SVOX-pico<br>
  33938. Nutzung der SVOX-Pico TTS-Engine (aus dem AOSP).<br>
  33939. Die Sprachengine sowie <code>lame</code> mĂźssen installiert sein:<br>
  33940. <code>sudo apt-get install libttspico-utils lame</code><br><br>
  33941. FĂźr ARM/Raspbian sind die <code>libttspico-utils</code> leider nicht verfĂźgbar,<br>
  33942. deswegen mĂźsste man diese selbst kompilieren oder das vorkompilierte Paket aus <a target="_blank" href"http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/">dieser Anleitung</a> verwenden, in aller K&uuml;rze:<br>
  33943. <code>sudo apt-get install libpopt-dev lame</code><br>
  33944. <code>cd /tmp</code><br>
  33945. <code>wget http://www.dr-bischoff.de/raspi/pico2wave.deb</code><br>
  33946. <code>sudo dpkg --install pico2wave.deb</code>
  33947. </li>
  33948. </ul>
  33949. </li>
  33950. <li>TTS_APIKey<br>
  33951. Wenn VoiceRSS genutzt wird, ist ein APIKey notwendig. Um diesen zu erhalten ist eine vorherige
  33952. Registrierung notwendig. Anschlie�end erhält man den APIKey <br>
  33953. http://www.voicerss.org/registration.aspx <br>
  33954. </li>
  33955. <li>TTS_User<br>
  33956. Bisher ohne Benutzung. Falls eine Sprachengine zusätzlich zum APIKey einen Usernamen im Request verlangt.
  33957. </li>
  33958. <li>TTS_CacheFileDir<br>
  33959. Optional: Die per Google geladenen Sprachbausteine werden in diesem Verzeichnis zur Wiedeverwendung abgelegt.
  33960. Es findet zurZEit keine automatisierte L&ouml;schung statt.<br>
  33961. Default: <i>cache/</i><br>
  33962. Achtung: Nur bei einem lokal definierter Text2Speech Instanz m&ouml;glich!
  33963. </li>
  33964. <li>TTS_UseMP3Wrap<br>
  33965. Optional: F&uuml;r eine fl&uuml;ssige Sprachausgabe ist es zu empfehlen, die einzelnen vorher per Google
  33966. geladenen Sprachbausteine zu einem einzelnen Sprachbaustein zusammenfassen zu lassen bevor dieses per
  33967. Mplayer ausgegeben werden. Dazu muss Mp3Wrap installiert werden.<br>
  33968. <code>apt-get install mp3wrap</code><br>
  33969. Achtung: Nur bei einem lokal definierter Text2Speech Instanz m&ouml;glich!
  33970. </li>
  33971. <li>TTS_MplayerCall<br>
  33972. Optional: Angabe der Systemaufrufes zu Mplayer. Das folgende Beispiel ist der Standardaufruf.<br>
  33973. Beispiel: <code>sudo /usr/bin/mplayer</code>
  33974. </li>
  33975. <li>TTS_SentenceAppendix<br>
  33976. Optional: Angabe einer mp3-Datei die mit jeder Sprachausgabe am Ende ausgegeben wird.<br>
  33977. Voraussetzung ist die Nutzung von MP3Wrap. Die Sprachbausteine mĂźssen bereits als mp3 im
  33978. CacheFileDir vorliegen.
  33979. Beispiel: <code>silence.mp3</code>
  33980. </li>
  33981. <li>TTS_FileMapping<br>
  33982. Angabe von m&ouml;glichen MP3-Dateien mit deren Templatedefinition. Getrennt duch Leerzeichen.
  33983. Die Templatedefinitionen kĂśnnen in den per <i>tts</i> &uuml;bergebenen Sprachbausteinen verwendet werden
  33984. und m&uuml;ssen mit einem beginnenden und endenden Doppelpunkt angegeben werden.
  33985. Die Dateien mĂźssen im Verzeichnis <i>TTS_FileTemplateDir</i> gespeichert sein.<br>
  33986. <code>attr myTTS TTS_FileMapping ring:ringtone.mp3 beep:MyBeep.mp3</code><br>
  33987. <code>set MyTTS tts Achtung: hier kommt mein Klingelton :ring: War der laut?</code>
  33988. </li>
  33989. <li>TTS_FileTemplateDir<br>
  33990. Verzeichnis, in dem die per <i>TTS_FileMapping</i> und <i>TTS_SentenceAppendix</i> definierten
  33991. MP3-Dateien gespeichert sind.<br>
  33992. Optional, Default: <code>cache/templates</code>
  33993. </li>
  33994. <li>TTS_VolumeAdjust<br>
  33995. Anhebung der Grundlautstärke zur Anpassung an die angeschlossenen Lautsprecher. <br>
  33996. Default: 110<br>
  33997. <code>attr myTTS TTS_VolumeAdjust 400</code><br>
  33998. </li>
  33999. <li>TTS_noStatisticsLog<br>
  34000. <b>1</b>, verhindert das Loggen von Statistikdaten in DbLog Geräten, default ist <b>0</b><br>
  34001. Bitte zur Beachtung: Das Logging ist wichtig um alte, lang nicht genutzte Cachedateien automatisiert zu loeschen.
  34002. Wenn dieses hier dektiviert wird muss sich der User selbst darum kuemmern.
  34003. </li>
  34004. <li>TTS_speakAsFastAsPossible<br>
  34005. Es wird versucht, so schnell als mĂśglich eine Sprachausgabe zu erzielen. Bei Sprachbausteinen die nicht bereits lokal vorliegen,
  34006. ist eine kurze Pause wahrnehmbar. Dann wird der benĂśtigte Sprachbaustein nachgeladen. Liegen alle Sprachbausteine im Cache vor,
  34007. so hat dieses Attribut keine Auswirkung.<br>
  34008. Attribut nur verfĂźgbar bei einer lokalen oder Server Instanz
  34009. </li>
  34010. <li><a href="#readingFnAttributes">readingFnAttributes</a>
  34011. </li><br>
  34012. <li><a href="#disable">disable</a><br>
  34013. If this attribute is activated, the soundoutput will be disabled.<br>
  34014. Possible values: 0 => not disabled , 1 => disabled<br>
  34015. Default Value is 0 (not disabled)<br><br>
  34016. </li>
  34017. <li><a href="#verbose">verbose</a><br>
  34018. <b>4:</b> Alle Zwischenschritte der Verarbeitung werden ausgegeben<br>
  34019. <b>5:</b> Zus&auml;tzlich werden auch die Meldungen von Mplayer und Mp3Wrap ausgegeben
  34020. </li>
  34021. </ul><br>
  34022. <a name="Text2SpeechExamples"></a>
  34023. <b>Beispiele</b>
  34024. <ul>
  34025. <code>define MyTTS Text2Speech hw=0.0</code><br>
  34026. <code>set MyTTS tts Die Alarmanlage ist bereit.</code><br>
  34027. <code>set MyTTS tts :beep.mp3:</code><br>
  34028. <code>set MyTTS tts :mytemplates/alarm.mp3:Die Alarmanlage ist bereit.:ring.mp3:</code><br>
  34029. </ul>
  34030. <p><a name="TradfriDevice"></a>
  34031. <h3>TradfriDevice</h3>
  34032. <ul>
  34033. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34034. hier: <a href='commandref.html#TradfriDevice'>TradfriDevice</a><br/>
  34035. </ul>
  34036. <a name="TradfriGateway"></a>
  34037. <h3>TradfriGateway</h3>
  34038. <ul>
  34039. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34040. hier: <a href='commandref.html#TradfriGateway'>TradfriGateway</a><br/>
  34041. </ul>
  34042. <a name="TradfriGroup"></a>
  34043. <h3>TradfriGroup</h3>
  34044. <ul>
  34045. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34046. hier: <a href='commandref.html#TradfriGroup'>TradfriGroup</a><br/>
  34047. </ul>
  34048. <a name="TrashCal"></a>
  34049. <h3>TrashCal</h3>
  34050. <ul>
  34051. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34052. hier: <a href='commandref.html#TrashCal'>TrashCal</a><br/>
  34053. </ul>
  34054. <a name="Twilight"></a>
  34055. <h3>Twilight</h3>
  34056. <div class='langLinks'>[<a href='commandref.html#Twilight'>EN</a> DE]</div>
  34057. <ul>
  34058. <br>
  34059. <a name="Twilightdefine"></a>
  34060. <b>Define</b>
  34061. <ul>
  34062. <code>define &lt;name&gt; Twilight &lt;latitude&gt; &lt;longitude&gt; [&lt;indoor_horizon&gt; [&lt;Weather_Position&gt;]]</code><br>
  34063. <br>
  34064. Erstellt ein virtuelles Device f&uuml;r die D&auml;mmerungsberechnung (Zwielicht)<br><br>
  34065. <b>latitude, longitude (geografische L&auml;nge & Breite)</b>
  34066. <br>
  34067. Die Parameter <b>latitude</b> und <b>longitude</b> sind Dezimalzahlen welche die Position auf der Erde bestimmen, f&uuml;r welche der Dämmerungs-Status berechnet werden soll.
  34068. <br><br>
  34069. <b>indoor_horizon</b>
  34070. <br>
  34071. Der Parameter <b>indoor_horizon</b> bestimmt einen virtuellen Horizont, der f&uuml;r die Berechnung der D&auml;mmerung innerhalb von R&auml;men genutzt werden kann. Minimalwert ist -6 (ergibt gleichen Wert wie Zivile D&auml;mmerung). Bei 0 fallen
  34072. indoor- und realer D&aumlmmerungswert zusammen. Werte gr&oumlsser 0 ergeben fr&uumlhere Werte fĂźr den Abend bzw. sp&aumltere f&uumlr den Morgen.
  34073. <br><br>
  34074. <b>Weather_Position</b>
  34075. <br>
  34076. Der Parameter <b>Weather_Position</b> ist die Yahoo! Wetter-ID welche f&uuml;r den Bezug der Wetterinformationen gebraucht wird. Gehe auf http://weather.yahoo.com/ und gebe einen Ort (ggf. PLZ) ein. In der URL der daraufhin geladenen Seite ist an letzter Stelle die ID. Beispiel: MĂźnchen, Deutschland -> 676757
  34077. <br><br>
  34078. Ein Twilight-Device berechnet periodisch die D&auml;mmerungszeiten und -phasen w&auml;hrend des Tages.
  34079. Es berechnet ein virtuelles "Licht"-Element das einen Indikator f&uuml;r die momentane Tageslichtmenge ist.
  34080. Neben der Position auf der Erde wird es vom sog. "indoor horizon" (Beispielsweise hohe Geb&auml;de oder Berge)
  34081. und dem Wetter beeinflusst. Schlechtes Wetter f&uuml;hrt zu einer Reduzierung des Tageslichts f&uuml;r den ganzen Tag.
  34082. Das berechnete Licht liegt zwischen 0 und 6 wobei die Werte folgendes bedeuten:<br><br>
  34083. <b>light</b>
  34084. <br>
  34085. <code>0 - Totale Nacht, die Sonne ist mind. -18 Grad hinter dem Horizont</code><br>
  34086. <code>1 - Astronomische D&auml;mmerung, die Sonne ist zw. -12 und -18 Grad hinter dem Horizont</code><br>
  34087. <code>2 - Nautische D&auml;mmerung, die Sonne ist zw. -6 and -12 Grad hinter dem Horizont</code><br>
  34088. <code>3 - Zivile/B&uuml;rgerliche D&auml;mmerung, die Sonne ist zw. 0 and -6 hinter dem Horizont</code><br>
  34089. <code>4 - "indoor twilight", die Sonne ist zwischen dem Wert indoor_horizon und 0 Grad hinter dem Horizont (wird nicht verwendet wenn indoor_horizon=0)</code><br>
  34090. <code>5 - Wetterbedingte D&auml;mmerung, die Sonne ist zwischen indoor_horizon und einem virtuellen Wetter-Horizonz (der Wetter-Horizont ist Wetterabh&auml;ngig (optional)</code><br>
  34091. <code>6 - Maximales Tageslicht</code><br>
  34092. <br>
  34093. <b>Azimut, Elevation, Twilight (Seitenwinkel, HĂśhenwinkel, D&auml;mmerung)</b>
  34094. <br>
  34095. Das Modul berechnet zus&auml;tzlich Azimuth und Elevation der Sonne. Diese Werte k&ouml;nnen zur Rolladensteuerung verwendet werden.<br><br>
  34096. Das Reading <b>Twilight</b> wird als neuer "(twi)light" Wert hinzugef&uuml;gt. Er wird aus der Elevation der Sonne mit folgender Formel abgeleitet: (Elevation+12)/18 * 100). Das erlaubt eine detailliertere Kontrolle der Lampen w&auml;hrend Sonnenauf - und untergang. Dieser Wert ist zwischen 0% und 100% wenn die Elevation zwischen -12&deg; und 6&deg;
  34097. <br><br>
  34098. Wissenswert dazu ist, dass die Sonne, abh&auml;gnig vom Breitengrad, bestimmte Elevationen nicht erreicht. Im Juni und Juli liegt die Sonne in Mitteleuropa nie unter -18&deg;. In n&ouml;rdlicheren Gebieten (Norwegen, ...) kommt die Sonne beispielsweise nicht &uuml;ber 0&deg.
  34099. <br><br>
  34100. All diese Aspekte m&uuml;ssen ber&uuml;cksichtigt werden bei Schaltungen die auf Twilight basieren.
  34101. <br><br>
  34102. Beispiel:
  34103. <pre>
  34104. define myTwilight Twilight 49.962529 10.324845 3 676757
  34105. </pre>
  34106. </ul>
  34107. <br>
  34108. <a name="Twilightset"></a>
  34109. <b>Set </b>
  34110. <ul>
  34111. N/A
  34112. </ul>
  34113. <br>
  34114. <a name="Twilightget"></a>
  34115. <b>Get</b>
  34116. <ul>
  34117. <code>get &lt;name&gt; &lt;reading&gt;</code><br><br>
  34118. <table>
  34119. <tr><td><b>light</b></td><td>der aktuelle virtuelle Tageslicht-Wert</td></tr>
  34120. <tr><td><b>nextEvent</b></td><td>Name des n&auml;chsten Events</td></tr>
  34121. <tr><td><b>nextEventTime</b></td><td>die Zeit wann das n&auml;chste Event wahrscheinlich passieren wird (w&auml;hrend Lichtphase 5 und 6 wird dieser Wert aktualisiert wenn sich das Wetter &auml;ndert)</td></tr>
  34122. <tr><td><b>sr_astro</b></td><td>Zeit des astronomitschen Sonnenaufgangs</td></tr>
  34123. <tr><td><b>sr_naut</b></td><td>Zeit des nautischen Sonnenaufgangs</td></tr>
  34124. <tr><td><b>sr_civil</b></td><td>Zeit des zivilen/b&uuml;rgerlichen Sonnenaufgangs</td></tr>
  34125. <tr><td><b>sr</b></td><td>Zeit des Sonnenaufgangs</td></tr>
  34126. <tr><td><b>sr_indoor</b></td><td>Zeit des "indoor" Sonnenaufgangs</td></tr>
  34127. <tr><td><b>sr_weather</b></td><td>"Wert" des Wetters beim Sonnenaufgang</td></tr>
  34128. <tr><td><b>ss_weather</b></td><td>"Wert" des Wetters beim Sonnenuntergang</td></tr>
  34129. <tr><td><b>ss_indoor</b></td><td>Zeit des "indoor" Sonnenuntergangs</td></tr>
  34130. <tr><td><b>ss</b></td><td>Zeit des Sonnenuntergangs</td></tr>
  34131. <tr><td><b>ss_civil</b></td><td>Zeit des zivilen/b&uuml;rgerlichen Sonnenuntergangs</td></tr>
  34132. <tr><td><b>ss_nautic</b></td><td>Zeit des nautischen Sonnenuntergangs</td></tr>
  34133. <tr><td><b>ss_astro</b></td><td>Zeit des astro. Sonnenuntergangs</td></tr>
  34134. <tr><td><b>azimuth</b></td><td>aktueller Azimuth der Sonne. 0&deg; ist Norden 180&deg; ist S&uuml;den</td></tr>
  34135. <tr><td><b>compasspoint</b></td><td>Ein Wortwert des Kompass-Werts</td></tr>
  34136. <tr><td><b>elevation</b></td><td>the elevaltion of the sun</td></tr>
  34137. <tr><td><b>twilight</b></td><td>Prozentualer Wert eines neuen "(twi)light" Wertes: (elevation+12)/18 * 100) </td></tr>
  34138. <tr><td><b>twilight_weather</b></td><td>Prozentualer Wert eines neuen "(twi)light" Wertes: (elevation-WEATHER_HORIZON+12)/18 * 100). Wenn ein Wetterwert vorhanden ist, ist es immer etwas dunkler als bei klarem Wetter.</td></tr>
  34139. <tr><td><b>condition</b></td><td>Yahoo! Wetter code</td></tr>
  34140. <tr><td><b>condition_txt</b></td><td>Yahoo! Wetter code als Text</td></tr>
  34141. <tr><td><b>horizon</b></td><td>Wert des aktuellen Horizont 0&deg;, -6&deg;, -12&deg;, -18&deg;</td></tr>
  34142. </table>
  34143. </ul>
  34144. <br>
  34145. <a name="Twilightattr"></a>
  34146. <b>Attributes</b>
  34147. <ul>
  34148. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  34149. <li><b>useExtWeather &lt;device&gt;:&lt;reading&gt;</b></li>
  34150. Nutzt Daten von einem anderen Device um <b>twilight_weather</b> zu berechnen.<br/>
  34151. Das Reading sollte sich im Intervall zwischen 0 und 100 bewegen, z.B. das Reading <b>c_clouds</b> in einem<b><a href="#openweathermap">openweathermap</a></b> device, bei dem 0 heiteren und 100 bedeckten Himmel bedeuten.
  34152. Wird diese Attribut genutzt , werden Wettereffekte wie Starkregen oder Gewitter fuer die Berechnung von <b>twilight_weather</b> nicht mehr herangezogen.
  34153. </ul>
  34154. <br>
  34155. <a name="Twilightfunc"></a>
  34156. <b>Functions</b>
  34157. <ul>
  34158. <li><b>twilight</b>(<b>$twilight</b>, <b>$reading</b>, <b>$min</b>, <b>$max</b>)</li> - implementiert eine Routine um die D&auml;mmerungszeiten wie Sonnenaufgang mit min und max Werten zu berechnen.<br><br>
  34159. <table>
  34160. <tr><td><b>$twilight</b></td><td>Name der twiligh Instanz</td></tr>
  34161. <tr><td><b>$reading</b></td><td>Name des zu verwendenden Readings. Beispiel: ss_astro, ss_weather ...</td></tr>
  34162. <tr><td><b>$min</b></td><td>Parameter min time - optional</td></tr>
  34163. <tr><td><b>$max</b></td><td>Parameter max time - optional</td></tr>
  34164. </table>
  34165. </ul>
  34166. <br>
  34167. Anwendungsbeispiel:
  34168. <pre>
  34169. define BlindDown at *{twilight("myTwilight","sr_indoor","7:30","9:00")} set xxxx position 100
  34170. # xxxx ist ein definiertes Rollo
  34171. </pre>
  34172. </ul>
  34173. <p><a name="UNIRoll"></a>
  34174. <h3>UNIRoll</h3>
  34175. <div class='langLinks'>[<a href='commandref.html#UNIRoll'>EN</a> DE]</div>
  34176. Deutsche Version der Doku nicht vorhanden. Englische Version unter
  34177. <a href='http://fhem.de/commandref.html#<UNIRoll>'>UNIRoll</a> &nbsp;
  34178. <p><a name="USBWX"></a>
  34179. <h3>USBWX</h3>
  34180. <ul>
  34181. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34182. hier: <a href='commandref.html#USBWX'>USBWX</a><br/>
  34183. </ul>
  34184. <a name="USF1000"></a>
  34185. <h3>USF1000</h3>
  34186. <ul>
  34187. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34188. hier: <a href='commandref.html#USF1000'>USF1000</a><br/>
  34189. </ul>
  34190. <a name="UWZ"></a>
  34191. <h3>UWZ</h3>
  34192. <div class='langLinks'>[<a href='commandref.html#UWZ'>EN</a> DE]</div>
  34193. <ul>
  34194. <a name="UWZdefine"></a>
  34195. Das Modul extrahiert Unwetterwarnungen von <a href="http://www.unwetterzentrale.de">www.unwetterzentrale.de</a>.
  34196. <br/>
  34197. HierfĂźr wird die selbe Schnittstelle verwendet die auch die Android App <a href="http://www.alertspro.com">Alerts Pro</a> nutzt.
  34198. Es werden maximal 10 Standortbezogene Unwetterwarnungen zur VerfĂźgung gestellt.
  34199. Weiterhin verfĂźgt das Modul Ăźber HTML-Templates welche als weblink verwendet werden kĂśnnen.
  34200. <br>
  34201. <i>Es nutzt die Perl-Module HTTP::Request, LWP::UserAgent, JSON, Encode::Guess und HTML::Parse</i>.
  34202. <br/><br/>
  34203. <b>Define</b>
  34204. <ul>
  34205. <br>
  34206. <code>define &lt;Name&gt; UWZ [L&auml;ndercode] [Postleitzahl] [INTERVAL]</code>
  34207. <br><br><br>
  34208. Beispiel:
  34209. <br>
  34210. <code>define Unwetterzentrale UWZ DE 86405 3600</code>
  34211. <br>&nbsp;
  34212. <li><code>[L&auml;ndercode]</code>
  34213. <br>
  34214. M&ouml;gliche Werte: DE, AT, CH, SEARCH, ...<br/>
  34215. (f&uuml;r ander L&auml;nder als Deutschland bitte den SEARCH Parameter nutzen um die AreaID zu ermitteln.)
  34216. </li><br>
  34217. <li><code>[Postleitzahl/AreaID]</code>
  34218. <br>
  34219. Die Postleitzahl/AreaID des Ortes fĂźr den Unwetterinformationen abgefragt werden sollen.
  34220. <br>
  34221. </li><br>
  34222. <li><code>[INTERVAL]</code>
  34223. <br>
  34224. Definiert das Interval zur aktualisierung der Unwetterwarnungen. Das Interval wird in Sekunden angegeben, somit aktualisiert das Modul bei einem Interval von 3600 jede Stunde 1 mal.
  34225. <br>
  34226. </li><br>
  34227. </ul>
  34228. <br>
  34229. <a name="UWZget"></a>
  34230. <b>Get</b>
  34231. <ul>
  34232. <br>
  34233. <li><code>get &lt;name&gt; Bodenfrost</code>
  34234. <br>
  34235. Gibt aus ob aktuell eine Bodenfrostwarnung besteht (active|inactive).
  34236. </li><br>
  34237. <li><code>get &lt;name&gt; Extremfrost</code>
  34238. <br>
  34239. Gibt aus ob aktuell eine Extremfrostwarnung besteht (active|inactive).
  34240. </li><br>
  34241. <li><code>get &lt;name&gt; Gewitter</code>
  34242. <br>
  34243. Gibt aus ob aktuell eine Gewitter Warnung besteht (active|inactive).
  34244. </li><br>
  34245. <li><code>get &lt;name&gt; Glaette</code>
  34246. <br>
  34247. Gibt aus ob aktuell eine Glaettewarnung besteht (active|inactive).
  34248. </li><br>
  34249. <li><code>get &lt;name&gt; Glatteisregen</code>
  34250. <br>
  34251. Gibt aus ob aktuell eine Glatteisregen Warnung besteht (active|inactive).
  34252. </li><br>
  34253. <li><code>get &lt;name&gt; Hagel</code>
  34254. <br>
  34255. Gibt aus ob aktuell eine Hagel Warnung besteht (active|inactive).
  34256. </li><br>
  34257. <li><code>get &lt;name&gt; Hitze</code>
  34258. <br>
  34259. Gibt aus ob aktuell eine Hitze Warnung besteht (active|inactive).
  34260. </li><br>
  34261. <li><code>get &lt;name&gt; Regen</code>
  34262. <br>
  34263. Gibt aus ob aktuell eine Regen Warnung besteht (active|inactive).
  34264. </li><br>
  34265. <li><code>get &lt;name&gt; Schneefall</code>
  34266. <br>
  34267. Gibt aus ob aktuell eine Schneefall Warnung besteht (active|inactive).
  34268. </li><br>
  34269. <li><code>get &lt;name&gt; Sturm</code>
  34270. <br>
  34271. Gibt aus ob aktuell eine Sturm Warnung besteht (active|inactive).
  34272. </li><br>
  34273. <li><code>get &lt;name&gt; Waldbrand</code>
  34274. <br>
  34275. Gibt aus ob aktuell eine Waldbrand Warnung besteht (active|inactive).
  34276. </li><br>
  34277. </ul>
  34278. <br>
  34279. <b>Get (Search-Mode)</b>
  34280. <ul>
  34281. <br>
  34282. <li><code>get &lt;name&gt; SearchAreaID &lt;gesuchte_stadt&gt;</code>
  34283. <br>
  34284. Gibt die AreaID zum eingegebenen Ort aus.
  34285. </li><br>
  34286. </ul>
  34287. <br>
  34288. <a name="UWZset"></a>
  34289. <b>Set</b>
  34290. <ul>
  34291. <br>
  34292. <li><code>set &lt;name&gt; update</code>
  34293. <br>
  34294. Startet sofort ein neues Auslesen der Unwetterinformationen.
  34295. </li><br>
  34296. </ul>
  34297. <br>
  34298. <a name="UWZattr"></a>
  34299. <b>Attribute</b>
  34300. <ul>
  34301. <br>
  34302. <li><code>download</code>
  34303. <br>
  34304. Download Unwetterkarten während des updates (0|1).
  34305. <br>
  34306. </li>
  34307. <li><code>savepath</code>
  34308. <br>
  34309. Pfad zum speichern der Karten (default: /tmp/).
  34310. <br>
  34311. </li>
  34312. <li><code>maps</code>
  34313. <br>
  34314. Leerzeichen separierte Liste der zu speichernden Karten. FĂźr mĂśgliche Karten siehe <code>UWZAsHtmlKarteLand</code>.
  34315. <br>
  34316. </li>
  34317. <li><code>humanreadable</code>
  34318. <br>
  34319. Anzeige weiterer Readings Warn_?_Start_Date, Warn_?_Start_Time, Warn_?_End_Date, Warn_?_End_Time. Diese Readings enthalten aus dem Timestamp kalkulierte Datums/Zeit Angaben. Weiterhin werden folgende Readings aktivier: Warn_?_Type_Str und Warn_?_uwzLevel_Str welche den Unwettertyp als auch das Unwetter-Warn-Level als Text ausgeben. (0|1)
  34320. <br>
  34321. </li>
  34322. <li><code>lang</code>
  34323. <br>
  34324. Umschalten der angeforderten Sprache fĂźr kurz und lange warn text. (de|en|it|fr|es|..).
  34325. <br>
  34326. </li>
  34327. <li><code>sort_readings_by</code>
  34328. <br>
  34329. Sortierreihenfolge der Warnmeldungen. (start|severity|creation).
  34330. <br>
  34331. </li>
  34332. <li><code>htmlsequence</code>
  34333. <br>
  34334. Anzeigereihenfolge der html warnungen. (ascending|descending).
  34335. <br>
  34336. </li>
  34337. <li><code>htmltitle</code>
  34338. <br>
  34339. Titel / Ueberschrift der HTML Ausgabe
  34340. <br>
  34341. </li>
  34342. <li><code>htmltitleclass</code>
  34343. <br>
  34344. css-Class des Titels der HTML Ausgabe
  34345. <br>
  34346. </li>
  34347. <li><code>localiconbase</code>
  34348. <br>
  34349. BaseURL angeben um Warn Icons lokal zu hosten. (Dateityp ist png).
  34350. <br>
  34351. </li>
  34352. <li><code>intervalAtWarnLevel</code>
  34353. <br>
  34354. konfiguriert den Interval je nach WarnLevel. Beispiel: 2=1800,3=900,4=300
  34355. <br>
  34356. </li>
  34357. <br>
  34358. </ul>
  34359. <br>
  34360. <a name="UWZreading"></a>
  34361. <b>Readings</b>
  34362. <ul>
  34363. <br>
  34364. <li><b>Warn_</b><i>0|1|2|3...|9</i><b>_...</b> - aktive Warnmeldungen</li>
  34365. <li><b>WarnCount</b> - Anzahl der aktiven Warnmeldungen</li>
  34366. <li><b>WarnUWZLevel</b> - Gesamt Warn Level </li>
  34367. <li><b>WarnUWZLevel_Color</b> - Gesamt Warn Level Farbe</li>
  34368. <li><b>WarnUWZLevel_Str</b> - Gesamt Warn Level Text</li>
  34369. <li><b>Warn_</b><i>0</i><b>_AltitudeMin</b> - minimum HĂśhe fĂźr Warnung </li>
  34370. <li><b>Warn_</b><i>0</i><b>_AltitudeMax</b> - maximum HĂśhe fĂźr Warnung </li>
  34371. <li><b>Warn_</b><i>0</i><b>_EventID</b> - EventID der Warnung </li>
  34372. <li><b>Warn_</b><i>0</i><b>_Creation</b> - Warnungs Erzeugung </li>
  34373. <li><b>Warn_</b><i>0</i><b>_Creation_Date</b> - Warnungs Erzeugungs Datum </li>
  34374. <li><b>Warn_</b><i>0</i><b>_Creation_Time</b> - Warnungs Erzeugungs Zeit </li>
  34375. <li><b>currentIntervalMode</b> - default/warn, aktuell Verwendeter Interval. Internal INTERVAL oder INTERVALWARN</li>
  34376. <li><b>Warn_</b><i>0</i><b>_Start</b> - Begin der Warnung</li>
  34377. <li><b>Warn_</b><i>0</i><b>_Start_Date</b> - Startdatum der Warnung</li>
  34378. <li><b>Warn_</b><i>0</i><b>_Start_Time</b> - Startzeit der Warnung</li>
  34379. <li><b>Warn_</b><i>0</i><b>_End</b> - Warn Ende</li>
  34380. <li><b>Warn_</b><i>0</i><b>_End_Date</b> - Enddatum der Warnung</li>
  34381. <li><b>Warn_</b><i>0</i><b>_End_Time</b> - Endzeit der Warnung</li>
  34382. <li><b>Warn_</b><i>0</i><b>_Severity</b> - Schwere des Unwetters (0 kein Unwetter, 12 massives Unwetter)</li>
  34383. <li><b>Warn_</b><i>0</i><b>_Hail</b> - Hagelwarnung (1|0)</li>
  34384. <li><b>Warn_</b><i>0</i><b>_Type</b> - Art des Unwetters</li>
  34385. <li><b>Warn_</b><i>0</i><b>_Type_Str</b> - Art des Unwetters (text)</li>
  34386. <ul>
  34387. <li><b>1</b> - unbekannt</li>
  34388. <li><b>2</b> - Sturm/Orkan</li>
  34389. <li><b>3</b> - Schneefall</li>
  34390. <li><b>4</b> - Regen</li>
  34391. <li><b>5</b> - Extremfrost</li>
  34392. <li><b>6</b> - Waldbrandgefahr</li>
  34393. <li><b>7</b> - Gewitter</li>
  34394. <li><b>8</b> - Glätte</li>
  34395. <li><b>9</b> - Hitze</li>
  34396. <li><b>10</b> - Glatteisregen</li>
  34397. <li><b>11</b> - Bodenfrost</li>
  34398. </ul>
  34399. <li><b>Warn_</b><i>0</i><b>_uwzLevel</b> - Unwetterwarnstufe (0-5)</li>
  34400. <li><b>Warn_</b><i>0</i><b>_uwzLevel_Str</b> - Unwetterwarnstufe (text)</li>
  34401. <li><b>Warn_</b><i>0</i><b>_levelName</b> - Level Warn Name</li>
  34402. <li><b>Warn_</b><i>0</i><b>_ShortText</b> - Kurzbeschreibung der Warnung</li>
  34403. <li><b>Warn_</b><i>0</i><b>_LongText</b> - AusfĂźhrliche Unwetterbeschreibung</li>
  34404. <li><b>Warn_</b><i>0</i><b>_IconURL</b> - Kumulierte URL um Warnungs-Icon von <a href="http://www.unwetterzentrale.de">www.unwetterzentrale.de</a> anzuzeigen</li>
  34405. </ul>
  34406. <br>
  34407. <a name="UWZweblinks"></a>
  34408. <b>Weblinks</b>
  34409. <ul>
  34410. <br>
  34411. &Uuml;ber die Funktionen <code>UWZAsHtml, UWZAsHtmlLite, UWZAsHtmlFP, UWZAsHtmlKarteLand, UWZAsHtmlMovie</code> wird HTML-Code zur Warnanzeige und Wetterfilme Ăźber weblinks erzeugt.
  34412. <br><br><br>
  34413. Beispiele:
  34414. <br>
  34415. <li><code>define UnwetterDetailiert weblink htmlCode {UWZAsHtml("Unwetterzentrale")}</code></li>
  34416. <br>
  34417. <li><code>define UnwetterLite weblink htmlCode {UWZAsHtmlLite("Unwetterzentrale")}</code></li>
  34418. <br>
  34419. <li><code>define UnwetterFloorplan weblink htmlCode {UWZAsHtmlFP("Unwetterzentrale")}</code></li>
  34420. <br>
  34421. <li><code>define UnwetterKarteLand weblink htmlCode {UWZAsHtmlKarteLand("Unwetterzentrale","Bayern")}</code></li>
  34422. <ul>
  34423. <li>Der zweite Parameter kann einer der folgenden sein:
  34424. <ul>
  34425. <li>europa</li>
  34426. <br/>
  34427. <li>deutschland</li>
  34428. <li>deutschland-small</li>
  34429. <li>niedersachsen</li>
  34430. <li>bremen</li>
  34431. <li>bayern</li>
  34432. <li>schleswig-holstein</li>
  34433. <li>hamburg</li>
  34434. <li>mecklenburg-vorpommern</li>
  34435. <li>sachsen</li>
  34436. <li>sachsen-anhalt</li>
  34437. <li>nordrhein-westfalen</li>
  34438. <li>thueringen</li>
  34439. <li>rheinland-pfalz</li>
  34440. <li>saarland</li>
  34441. <li>baden-wuerttemberg</li>
  34442. <li>hessen</li>
  34443. <li>brandenburg</li>
  34444. <li>berlin</li>
  34445. <br/>
  34446. <li>oesterreich</li>
  34447. <li>burgenland</li>
  34448. <li>kaernten</li>
  34449. <li>niederoesterreich</li>
  34450. <li>oberoesterreich</li>
  34451. <li>salzburg</li>
  34452. <li>steiermark</li>
  34453. <li>tirol</li>
  34454. <li>vorarlberg</li>
  34455. <li>wien</li>
  34456. <br/>
  34457. <li>schweiz</li>
  34458. <li>aargau</li>
  34459. <li>appenzell_ausserrhoden</li>
  34460. <li>appenzell_innerrhoden</li>
  34461. <li>basel_landschaft</li>
  34462. <li>basel_stadt</li>
  34463. <li>bern</li>
  34464. <li>fribourg</li>
  34465. <li>geneve</li>
  34466. <li>glarus</li>
  34467. <li>graubuenden</li>
  34468. <li>jura</li>
  34469. <li>luzern</li>
  34470. <li>neuchatel</li>
  34471. <li>nidwalden</li>
  34472. <li>obwalden</li>
  34473. <li>schaffhausen</li>
  34474. <li>schwyz</li>
  34475. <li>solothurn</li>
  34476. <li>stgallen</li>
  34477. <li>ticino</li>
  34478. <li>thurgau</li>
  34479. <li>uri</li>
  34480. <li>waadt</li>
  34481. <li>wallis</li>
  34482. <li>zug</li>
  34483. <li>zuerich</li>
  34484. <br/>
  34485. <li>liechtenstein</li>
  34486. <br/>
  34487. <li>belgique</li>
  34488. <br/>
  34489. <li>denmark</li>
  34490. <br/>
  34491. <li>finnland</li>
  34492. <br/>
  34493. <li>france</li>
  34494. <li>alsace</li>
  34495. <li>aquitaine</li>
  34496. <li>basse-normandie</li>
  34497. <li>bretagne</li>
  34498. <li>champagne-ardenne</li>
  34499. <li>franche-comte</li>
  34500. <li>haute-normandie</li>
  34501. <li>ile-de-france</li>
  34502. <li>languedoc-roussillon</li>
  34503. <li>limousin</li>
  34504. <li>lorraine</li>
  34505. <li>bourgogne</li>
  34506. <li>centre</li>
  34507. <li>midi-pyrenees</li>
  34508. <li>nord-pas-de-calais</li>
  34509. <li>pays-de-la-loire</li>
  34510. <li>picardie</li>
  34511. <li>poitou-charentes</li>
  34512. <li>provence-alpes-cote-dazur</li>
  34513. <li>rhone-alpes</li>
  34514. <br/>
  34515. <li>letzebuerg</li>
  34516. <br/>
  34517. <li>nederland</li>
  34518. <li>drenthe</li>
  34519. <li>flevoland</li>
  34520. <li>friesland</li>
  34521. <li>gelderland</li>
  34522. <li>groningen</li>
  34523. <li>limburg</li>
  34524. <li>noordbrabant</li>
  34525. <li>noordholland</li>
  34526. <li>overijssel</li>
  34527. <li>utrecht</li>
  34528. <li>zeeland</li>
  34529. <li>zuidholland</li>
  34530. <br/>
  34531. <li>norwegen</li>
  34532. <br/>
  34533. <li>portugal</li>
  34534. <br/>
  34535. <li>sverige</li>
  34536. <br/>
  34537. <li>espana</li>
  34538. <br/>
  34539. <li>unitedkingdom</li>
  34540. <li>eastofengland</li>
  34541. <li>eastmidlands</li>
  34542. <li>london</li>
  34543. <li>northeastengland</li>
  34544. <li>northernireland</li>
  34545. <li>northwestengland</li>
  34546. <li>scotland</li>
  34547. <li>southeastengland</li>
  34548. <li>southwestengland</li>
  34549. <li>wales</li>
  34550. <li>westmidlands</li>
  34551. <li>yorkshireandthehumber</li>
  34552. <br/>
  34553. <li>isobaren1</li>
  34554. <li>isobaren2</li>
  34555. <li>isobaren3</li>
  34556. </ul>
  34557. </li>
  34558. </ul>
  34559. <li><code>define UnwetterKarteMovie weblink htmlCode {UWZAsHtmlMovie("Unwetterzentrale","niederschlag-wolken-de")}</code></li>
  34560. <ul>
  34561. <li>Der zweite Parameter kann einer der folgenden sein:
  34562. <ul>
  34563. <li>niederschlag-wolken</li>
  34564. <li>stroemung</li>
  34565. <li>temperatur</li>
  34566. <br/>
  34567. <li>niederschlag-wolken-de</li>
  34568. <li>stroemung-de</li>
  34569. <br/>
  34570. <li>niederschlag-wolken-ch</li>
  34571. <li>stroemung-ch</li>
  34572. <br/>
  34573. <li>niederschlag-wolken-at</li>
  34574. <li>stroemung-at</li>
  34575. <br/>
  34576. <li>neerslag-wolken-nl</li>
  34577. <li>stroming-nl</li>
  34578. <br/>
  34579. <li>nuages-precipitations-fr</li>
  34580. <li>courants-fr</li>
  34581. <br/>
  34582. <li>clouds-precipitation-uk</li>
  34583. <li>currents-uk</li>
  34584. <br/>
  34585. </ul>
  34586. </li>
  34587. </ul>
  34588. <br/><br/>
  34589. </ul>
  34590. <br>
  34591. </ul>
  34592. <p><a name="UbiquitiMP"></a>
  34593. <h3>UbiquitiMP</h3>
  34594. <div class='langLinks'>[<a href='commandref.html#UbiquitiMP'>EN</a> DE]</div>
  34595. <ul>
  34596. FHEM Modul f&uuml;r die Ubiquiti mFi mPower Schaltsteckdosen<br>
  34597. Mehr Informationen zu den verschiedenen mPower Modellen im <a href="https://wiki.fhem.de/wiki/Ubiquit_mFi/mPower">Wiki</a> unter https://wiki.fhem.de/wiki/Ubiquit_mFi/mPower<br>
  34598. FHEM Forum : http://forum.fhem.de/index.php/topic,35722.0.html
  34599. <a name="UbiquitiMPdefine"></a>
  34600. <b>Define</b>
  34601. <ul>
  34602. <code>define &lt;name&gt; UbiquitiMP &lt;IP oder FQDN&gt;</code><br>
  34603. Beispiel :<br>
  34604. define myUbi UbiquitiMP 192.168.0.100<br>
  34605. define myUbi UbiquitiMP myhost.mynet.net<br>
  34606. Das Perl Net::Telnet und sowie das JSON Modul werden unbedingt ben&ouml;tigt.
  34607. Auf einem Raspberry Pi k&ouml;nnen diese mit den folgenden beiden Kommandos installiert werden:<br>
  34608. sudo apt-get install libjson-perl<br>
  34609. sudo apt-get install libnet-telnet-perl
  34610. </ul>
  34611. <br>
  34612. <a name="UbiquitiMPset"></a>
  34613. <b>Set </b>
  34614. <ul>
  34615. <li>Outx on / off (force) -> schaltet den Port x an oder aus</li>
  34616. <li>Outx toggle -> schaltet den Port aus wenn er an ist und umgekehrt</li>
  34617. <li>Outx lock / unlock -> Ist lock bei einem Port gesetzt kann er nicht mehr an oder aus geschaltet werden</li>
  34618. <li>Outx reset -> setzt den internen Verbrauchsz&auml;hler f&uuml;r diesen Port zur&uuml;ck</li>
  34619. <li>Outx enable / disable -> interne Verbrauchsmessung f&uuml;r diesen Port ein / aus schalten</li>
  34620. <br><b>Bei der mPower mini entf&auml;llt die Angabe von Outx !</b><br>
  34621. Zus&auml;tzlich unterst&uuml;tzt die mini die <a href="#setExtensions">set Extensions</a> direkt
  34622. </ul>
  34623. <a name="UbiquitiMPget"></a>
  34624. <b>Get</b>
  34625. <ul>
  34626. <li>status -> Gibt den aktuellen Status aller Ports zur&uuml;ck</li>
  34627. <li>info -> liefert einige interne Parameter des Ger&auml;tes</li>
  34628. <li>reboot -> Startet das Ger&auml;t neu</li><br>
  34629. </ul>
  34630. <a name="UbiquitiMPattr"></a>
  34631. <b>Attributes</b>
  34632. <ul>
  34633. <li>ignoreList -> Liste der Ports die bei Abfragen ignoriert werden sollen, Bsp. <code>attr Ubi ignoreList 456</code><br>
  34634. ignoriert alle Werte der Ports 4,5 und 6</li><br>
  34635. <li>groupPorts -> Durch Kommatas getrennte Liste um Ports in Gruppen zusammen zu fassen.<br>
  34636. Die Gruppen k&ouml;nnen danach wie win einzelner Port behandelt werden.<br>
  34637. Bsp. <code>attr Ubi groupPorts TV=12 Media=4,5,6</code> (GruppenName=Port Nummer des Ports in der Gruppe)<br>
  34638. <code>set Ubi TV on</code> oder <code>set Ubi Media toggle</code></li><br>
  34639. <li>ledconnect -> Farbe der LED beim Zugriff mit fhem</li><br>
  34640. <li>subDevices -> Legt f&uuml;r jeden Port ein eigenes Subdevice an<br>
  34641. (Default 1 f&uuml;r die 3 and 6 Port mPower, Default 0 f&uuml;r die mPower 1 Port mini) ben&ouml;tigt zus&auml;tzlich das Modul 98_UbiquitiOut.pm</li><br>
  34642. <li>interval -> Abfrage Interval in Sekunden, kann ausgeschaltet werden mit dem Wert 0 (Default ist 300)</li><br>
  34643. <li>timeout -> Wartezeit in Sekunden bevor eine Abfrage mit einer Fehlermeldung abgebrochen wird (Default ist 5 Sekunden)<br>
  34644. Werte unter zwei Sekunden werden vom Modul nicht angenommen !</li><br>
  34645. <li>user -> Login Username (Default ubnt)</li><br>
  34646. <li>password -> Login Passwort (Default ubnt)</li>
  34647. </ul>
  34648. <br>
  34649. </ul>
  34650. <p><a name="UbiquitiOut"></a>
  34651. <h3>UbiquitiOut</h3>
  34652. <ul>
  34653. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34654. hier: <a href='commandref.html#UbiquitiOut'>UbiquitiOut</a><br/>
  34655. </ul>
  34656. <a name="Unifi"></a>
  34657. <h3>Unifi</h3>
  34658. <ul>
  34659. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34660. hier: <a href='commandref.html#Unifi'>Unifi</a><br/>
  34661. </ul>
  34662. <a name="UnifiSwitch"></a>
  34663. <h3>UnifiSwitch</h3>
  34664. <ul>
  34665. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34666. hier: <a href='commandref.html#UnifiSwitch'>UnifiSwitch</a><br/>
  34667. </ul>
  34668. <a name="UnifiVideo"></a>
  34669. <h3>UnifiVideo</h3>
  34670. <ul>
  34671. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34672. hier: <a href='commandref.html#UnifiVideo'>UnifiVideo</a><br/>
  34673. </ul>
  34674. <a name="UpsPico"></a>
  34675. <h3>UpsPico</h3>
  34676. <div class='langLinks'>[<a href='commandref.html#UpsPico'>EN</a> DE]</div>
  34677. <ul>
  34678. <table>
  34679. <tr>
  34680. <td>
  34681. Der UpsPIco ist eine unterbrechungsfreie Stroimversorgung f&uuml;r den Raspberry Pi von PiModules. Dieses Modul wurde f&uuml;r die Firmware ab Version 0x38 und h&ouml;her geschrieben und wurde nur auf dem "UPS PIco HV3.0A Stack Plus" getestet.<BR>
  34682. Dieses Modul stellt alle internen Daten zur Verf&uuml;gung, welche in die UpsPIco Register geschrieben und &uuml;ber den I2C - Bus ausgelesen werden. Der set-Befehl ist dar&uuml;ber hinaus in der Lage die Werte der Register entsprechend Ihrer Spezifikation zu &auml;ndern.<BR>
  34683. Detailierte Informationen zu den einzelnen Registern stehen in den Register Spezifikationen in der letzten ver&ouml;ffentlichten Anleitung. (Siehe unten)<BR>
  34684. <BR>
  34685. <u>Referenzen:</u><BR>
  34686. <a href="http://www.pimodulescart.com/shop/item.aspx?itemid=29">UPS PIco HV3.0A Stack Plus</a><BR>
  34687. <a href="http://www.forum.pimodules.com/viewforum.php?f=25">UPS PIco HV3.0A : Interne Register Spezification, Anleitung and Firmware Updates</a><BR>
  34688. <BR>
  34689. </td>
  34690. </tr>
  34691. </table>
  34692. <table>
  34693. <tr><td><a name="UpsPicodefine"></a><b>Define</b></td></tr>
  34694. </table>
  34695. <table><tr><td><ul><code>define &lt;name&gt; UpsPico &lt;IPv4-address&gt; &lt;Username&gt; &lt;Password&gt;</code></ul></td></tr></table>
  34696. <ul><ul>
  34697. <table>
  34698. <tr><td><code>&lt;name&gt;</code> : </td><td>Der Name des Device. Empfehlung: "myUpsPico".</td></tr>
  34699. <tr><td><code>&lt;IPv4-address&gt;</code> : </td><td>Eine g&uuml;ltige IPv4 Adresse des Raspberry Pi mit UpsPIco. Gegebenenfalls muss der Router f&uuml;r die an den Raspberry Pi vergebene DHCP Adresse konsultiert werden.</td></tr>
  34700. <tr><td><code>&lt;GatewayPassword&gt;</code> : </td><td>Der Username des entfernten Raspberry Pi.</td></tr>
  34701. <tr><td><code>&lt;PrivatePassword&gt;</code> : </td><td>Das Passwort des entfernten Raspberry Pi.</td></tr>
  34702. </table>
  34703. </ul></ul>
  34704. <BR>
  34705. <table>
  34706. <tr><td><a name="UpsPicoSet"></a><b>Set</b></td></tr>
  34707. <tr><td>
  34708. <ul>
  34709. Diese Funktion ver&auml;ndert die Werte der register, welche als beschreibbar definiert sind.<BR>
  34710. Sind die entsprechenden Register als kritisch (critical) spezifiziert (Ein falscher Wert k&ouml;nnte zur Besch&auml;digung des UpsPIco f&uuml;hren), muss das Atttribut "WriteCritical" vorher auf "1" gesetzt werden.
  34711. </ul>
  34712. </td></tr>
  34713. </table>
  34714. <table><tr><td><ul><code>set &lt;name&gt; &lt;register&gt; &lt;value&gt;</code></ul></td></tr></table>
  34715. <ul><ul>
  34716. <table>
  34717. <tr><td><code>&lt;name&gt;</code> : </td><td>Der name des definierten UpsPico Device<BR></td></tr>
  34718. <tr><td><code>&lt;register&gt;</code> : </td><td>Der name des Registers welches ver&auml;ndert werden soll. E.g.: "<code>/Status/key</code>"<BR></td></tr>
  34719. <tr><td><code>&lt;value&gt;</code> : </td><td>Ein g&uuml;ltiger Wert f&uuml;r das Register.<BR></td></tr>
  34720. </table>
  34721. </ul></ul>
  34722. <BR>
  34723. <table>
  34724. <tr><td><a name="UpsPicoGet"></a><b>Get</b></td></tr>
  34725. <tr><td>
  34726. <ul>
  34727. Die get Funktion liest einzelne Register aus und schreibt sie in das entsprechende Reading.<BR>
  34728. Es wird nur der Wert, aber nicht die Einheit oder der g&uuml;ltige Wertebereich zur&uuml;ckgegeben.<BR>
  34729. </ul>
  34730. </td></tr>
  34731. </table>
  34732. <table><tr><td><ul><code>get &lt;name&gt; &lt;register&gt;</code></ul></td></tr></table>
  34733. <ul><ul>
  34734. <table>
  34735. <tr><td><code>&lt;name&gt;</code> : </td><td>Der name des definierten UpsPico Device<BR></td></tr>
  34736. <tr><td><code>&lt;register&gt;</code> : </td><td>Der name des Registers welches ausgelesen werden soll. E.g.: "<code>/Status/key</code>"<BR></td></tr>
  34737. </td>
  34738. </tr>
  34739. </table>
  34740. </ul></ul>
  34741. <BR>
  34742. <table>
  34743. <tr><td><a name="UpsPicoAttr"></a><b>Attributes</b></td></tr>
  34744. <tr><td>
  34745. <ul>
  34746. <BR>
  34747. Die folgenden Attribute k&ouml;nnen neben den allgemeinen Attributen wie <a href="#room">room</a> vergeben werden.<BR>
  34748. </ul>
  34749. </td></tr>
  34750. </table>
  34751. <table>
  34752. <td>
  34753. <ul><ul>
  34754. <tr>
  34755. <td>
  34756. <BR>
  34757. <tr><td><ul><li><code>PollingInterval</code> : </li></td><td>Abrageinterval f&uuml;r den UPS PIco. Der Wert muss >=20s sein um einen vollen Polling Zyklus zu erlauben.<BR>
  34758. Der Defaul Wert ist 300s.<BR>
  34759. </ul></td></tr>
  34760. </td>
  34761. </tr>
  34762. </ul></ul>
  34763. <ul><ul>
  34764. <tr>
  34765. <td>
  34766. <BR>
  34767. <tr><td><ul><li><code>WriteCritical</code> : </li></td><td>Verhindert versehentliche Besch&auml;digungen durch Beschreiben der kritischen Register mit falschen Werten.<BR>
  34768. Musz f&uuml;r jeden einzelnen Schreibvorgang erneut gesetzt werden da dieser zur&uuml;ckgesetzt wird..<BR>
  34769. Der Default Wert ist 0 = Deaktiviert.<BR>
  34770. </ul></td></tr>
  34771. </td>
  34772. </tr>
  34773. </ul></ul>
  34774. <ul><ul>
  34775. <tr>
  34776. <td>
  34777. <BR>
  34778. <tr><td><ul><li><code>Port</code> : </li></td><td>Port Nummer f&uuml;r den SSH Zugang am entfernten Raspberry Pi.<BR>
  34779. Der Default Wert ist 22 = Standard SSH Port<BR>
  34780. </ul></td></tr>
  34781. </td>
  34782. </tr>
  34783. </ul></ul>
  34784. <ul><ul>
  34785. <tr>
  34786. <td>
  34787. <BR>
  34788. <tr><td><ul><li><code>CredentialsEncrypted</code> : </li></td><td>Definiert ob die Anmeldedaten in lesbarer Form (PlainText) oder als base64 verschl&uuml;sselt vorliegen.<BR>
  34789. Der Default Wert ist 0 = Anmeldedaten liegen in PlainText vor.<BR>
  34790. </ul></td></tr>
  34791. </td>
  34792. </tr>
  34793. </ul></ul>
  34794. <ul><ul>
  34795. <tr>
  34796. <td>
  34797. <BR>
  34798. <tr><td><ul><li><code>DbLogExclude</code> : </li></td><td>Generelles Attribut um Readings von Loggen auszuschlie�en. Das Attribut wird automatisch auf "/Status/pico_is_running" gesetzt welchen den kontinuierlichen Watchdog Z&auml;hler vom loggen ausnimmt.<BR>
  34799. Es ergibt keinen Sinn dieses Reading zu loggen.<BR>
  34800. Der Default Wert f&uuml;r die Ausnahme vom loggen liegt auf dem Reading "/Status/pico_is_running" <BR>
  34801. </ul></td></tr>
  34802. </td>
  34803. </tr>
  34804. </ul></ul>
  34805. <ul><ul>
  34806. <tr>
  34807. <td>
  34808. <BR>
  34809. <tr><td><ul><li><code>event-on-change-reading</code> : </li></td><td>Generelles Attribut um Events nur bei &auml;nderungen von Readings zu erzeugen. Das Attribut wird automatisch auf ".*" gesetzt, was alle Readings nur bei &auml;nderungen loggt.<BR>
  34810. Der Default Wert ist ".*" = Alle Readings.<BR>
  34811. </ul></td></tr>
  34812. </td>
  34813. </tr>
  34814. </ul></ul>
  34815. <ul><ul>
  34816. <tr>
  34817. <td>
  34818. <BR>
  34819. <tr><td><ul><li><code>room</code> : </li></td><td>Generelles Attribut zum setzen des Raumes. Das Attribut wird automatisch auf "UpsPIco" gesetzt, damit das device nicht im "Everthing" Raum verschwindet.<BR>
  34820. Der Default Wert ist "UpsPIco".<BR>
  34821. </ul></td></tr>
  34822. </td>
  34823. </tr>
  34824. </ul></ul>
  34825. </td>
  34826. </table>
  34827. </ul>
  34828. <p><a name="Utils"></a>
  34829. <h3>Utils</h3>
  34830. <ul>
  34831. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34832. hier: <a href='commandref.html#Utils'>Utils</a><br/>
  34833. </ul>
  34834. <a name="VBUSDEV"></a>
  34835. <h3>VBUSDEV</h3>
  34836. <div class='langLinks'>[<a href='commandref.html#VBUSDEV'>EN</a> DE]</div>
  34837. <ul>
  34838. Bei dem VBus handelt es sich um eine bidirektionale halbduplex Zweidrahtschnittstelle.<br><br>
  34839. Notwendig ist dazu ein RESOL-Adapter (USB oder LAN), zu dem hier Informationen zu finden sind:<br>
  34840. <a href="http://www.resol.de/">http://www.resol.de/</a><br><br>
  34841. Weitere Informationen hierzu findet man unter <a href="http://hobbyelektronik.org/w/index.php/VBus-Decoder"> http://hobbyelektronik.org/w/index.php/VBus-Decoder/</a>
  34842. und auch auf github <a href="https://github.com/pejonp/vbus"> https://github.com/pejonp/vbus </a><br><br><br>
  34843. <br />
  34844. <a name="VBUSDEV_Define"></a>
  34845. <b>Define</b>
  34846. <ul>
  34847. <code>define &lt;name&gt; VBUSDEV &lt;id&gt; [&lt;interval&gt;]</code><br />
  34848. <br />
  34849. Definition eines RESOL VBus Geraetes. Wenn das Geraet schon in der Liste hinterlegt ist, wird es automatisch angelegt.<br />
  34850. Beispiel:
  34851. <ul>
  34852. <code>define VBUSDEV_7321 VBUSDEV 7321 </code><br />
  34853. </ul>
  34854. </ul><br />
  34855. <a name="VBUSDEV_Readings"></a>
  34856. <b>Readings</b>
  34857. <ul>
  34858. <li>The readings are dependant of the model of the VBUS device.</li><br />
  34859. </ul><br />
  34860. </ul><br />
  34861. <p><a name="VBUSIF"></a>
  34862. <h3>VBUSIF</h3>
  34863. <ul>
  34864. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  34865. hier: <a href='commandref.html#VBUSIF'>VBUSIF</a><br/>
  34866. </ul>
  34867. <a name="VCONTROL"></a>
  34868. <h3>VCONTROL</h3>
  34869. <div class='langLinks'>[<a href='commandref.html#VCONTROL'>EN</a> DE]</div>
  34870. <ul>
  34871. Das VCONTROL ist das fhem-Modul eine VIESSMANN Heizung via Optolink-Schnittstelle auszulesen und zu steuern.<br><br>
  34872. Notwendig ist dazu ein Optolink-Adapter (USB oder LAN), zu dem hier Informationen zu finden sind:<br>
  34873. <a href="http://http://openv.wikispaces.com/">http://openv.wikispaces.com/</a><br><br>
  34874. Zus&auml;tzlich m&uuml;ssen f&uuml;r die verschiedenen Heizungstypen (z.B. V200KW1, VScotHO1, VPlusHO1 ....) Speicher-Adressen bekannt sein,<br>
  34875. unter denen die Messwerte abgefragt oder aber auch Stati gesetzt werden k&ouml;nnen.<br>
  34876. Informationen hierzu findet man im Forum <a href="http://http://openv.wikispaces.com/">http://openv.wikispaces.com/</a> und auf der wiki Seite <a href="http://http://openv.wikispaces.com/">http://openv.wikispaces.com/</a><br><br><br>
  34877. <a name="VCONTROLdefine"><b>Define</b></a>
  34878. <ul>
  34879. <code>define &lt;name&gt; VCONTROL &lt;serial-device/LAN-Device:port&gt; &lt;configfile&gt; [&lt;intervall&gt;] </code><br>
  34880. <br>
  34881. <li><b>&lt;serial-device/LAN-Device:port&gt;</b><br>
  34882. USB Port (z.B. com4, /dev/ttyUSB3) oder aber TCPIP:portnummer<br>
  34883. </li>
  34884. <li><b>&lt;intervall&gt;</b><br>
  34885. Anzahl Sekunden wie oft die Heizung ausgelesen werden soll (default 180)<br>
  34886. </li>
  34887. <li><b>&lt;configfile&gt;</b><br>
  34888. Pfad wo die Konfigurationsdatei f&uuml;r das Modul zu finden ist, die die Adressen beinhaltet<br>
  34889. </li>
  34890. <br>
  34891. Beispiel:<br><br>
  34892. serielle Schnittstelle &uuml;ber com4, alle 3 Minuten wird gepollt, configfile heisst 99_VCONTROL.cfg und liegt im fhem root Verzeichnis<br><br>
  34893. Windows:<br>
  34894. define Heizung VCONTROL com4 99_VCONTROL.cfg 180<br><br>
  34895. Linux:<br>
  34896. define Heizung VCONTROL /dev/ttyUSB3 99_VCONTROL.cfg 180<br>
  34897. </ul>
  34898. <br><br>
  34899. <a name="VCONTROLset"><b>Set</b></a>
  34900. <ul>
  34901. Diese m&uuml;ssen &uuml;ber das configfile konfiguriert werden.
  34902. </ul>
  34903. <br><br>
  34904. <a name="VCONTROLget"><b>Get</b></a>
  34905. <ul>
  34906. get &lt;name&gt; CONFIG<br><br>
  34907. Mit diesem Befehl wird das Modul spezifische configfile nachgeladen.<br><br>
  34908. Diese anderen Befehler m&uuml;ssen &uuml;ber das configfile konfiguriert werden.
  34909. </ul>
  34910. <br><br>
  34911. <a name="VCONTROLparameter"><b>configfile</b></a>
  34912. <ul>
  34913. Im configfile hat man nun die folgenden Konfigurations M&ouml;glichkeiten.<br><br>
  34914. Beispieldateien f&uml;r die Ger&auml;te-Typen V200KW1, VScotHO1, VPlusHO1 sind auf der wiki Seite <a href="http://www.fhemwiki.de/wiki/Vitotronic_200_%28Viessmann_Heizungssteuerung%29">http://www.fhemwiki.de/wiki/Vitotronic_200_%28Viessmann_Heizungssteuerung%29</a> zu finden.<br><br>
  34915. <li>Zeilen die mit "#" beginnen sind Kommentar!<br></li>
  34916. <li>Polling Commandos (POLL) zum Lesen von Werten k&ouml;nnen konfiguriert werden.<br></li>
  34917. <li>Set Commandos (SET) zum setzen von Werten k&ouml;nnen konfiguriert werden.<br></li>
  34918. <br>
  34919. <b>Polling Commandos haben den folgenden Aufbau:<br><br></b>
  34920. POLL, ADDRESSE, PARSEMETHODE, DIVISOR, READING-NAME, KUMULATION<br><br>
  34921. <ul>
  34922. <li><b>POLL</b><br>
  34923. muss fest auf POLL stehen<br>
  34924. </li>
  34925. <br>
  34926. <li><b>ADDRESSE</b><br>
  34927. Adresse, an der der auszulesende Wert im Speicher zu finden ist.<br>
  34928. Sie besteht aus 3 Teilen:<br>
  34929. <ul>
  34930. <li> beginnt immer mit 01F7 (Kommando zum Lesen)</li>
  34931. <li> danach folgt die eigentliche Addresse<br></li>
  34932. <li> danach muss die Anzahl der zu lesenden Bytes noch an die Adresse angehängt werden.<br></li>
  34933. </ul>
  34934. </li>
  34935. <br>
  34936. <li><b>PARSEMETHODE</b><br>
  34937. Methode wie die gelesenen Bytes interpretiert werden m&uuml;ssen.<br>
  34938. Bisher m&ouml;gliche Parsemethoden:<br>
  34939. <ul>
  34940. <li>1ByteU :<br> Empfangener Wert in 1 Byte ohne Vorzeichen (wenn Spalte Divisor state ist -> nur 0 / 1 also off / on)<br></li>
  34941. <li>1ByteU2 :<br> Empfangener Wert in 1 Byte ohne Vorzeichen (wenn Spalte Divisor state ist -> nur 0 / 1 also off / on)<br></li>
  34942. <li>1ByteS :<br> Empfangener Wert in 1 Byte mit Vorzeichen (wenn Spalte Divisor state ist -> nur 0 / 1 also off / on)<br></li>
  34943. <li>2ByteS :<br> Empfangener Wert in 2 Byte mit Vorzeichen<br></li>
  34944. <li>2ByteU :<br> Empfangener Wert in 2 Byte ohne Vorzeichen<br></li>
  34945. <li>2BytePercent :<br> Empfangener Wert in 2 Byte als Prozent Wert<br></li>
  34946. <li>2ByteH :<br> Empfangener Wert in 2 Byte als Hex Wert<br></li>
  34947. <li>4Byte :<br> Empfangener Wert in 4 Byte<br></li>
  34948. <li>mode :<br> Empfangener Wert ist der Betriebsstatus<br></li>
  34949. <li>timer :<br> Empfangener Wert ist ein 8 Byte Timer Werte<br></li>
  34950. <li>date :<br> Empfangener Wert ist ein 8 Byte Zeitstempel<br></li>
  34951. POLL Commandos die die Parsemethode timer enthalten werden nicht ständig gelesen, sondern müssen mit einem GET Commando geholt werden.<br>
  34952. GET &lt;devicename&gt; TIMER<br>
  34953. </ul>
  34954. </li>
  34955. <br>
  34956. <li><b>DIVISOR</b><br>
  34957. Wenn der interpretierte Wert noch um einen Faktor zu hoch ist, kann hier ein Divisor angegeben werden.<br>
  34958. Zus&auml;tzlich hat man hier bei Werten, die nur 0 oder 1 liefern die m&ouml;glich state einzutragen.<br>
  34959. Dies f&uuml;hrt dazu, dass das Reading mit off (0) und on (1) belegt wird, statt mit dem Wert.<br>
  34960. </li>
  34961. <br>
  34962. <li><b>READING-NAME</b><br>
  34963. Der gelesene und interpretierte Wert wird unter diesem Reading abgelegt.
  34964. </li>
  34965. <br>
  34966. <li><b>KUMULATION</b><br>
  34967. Bei den Polling Commandos mit dem Wert day bei der Spalte KUMULATION werden Tageswerte Kumuliert.<br>
  34968. Es werden dann jeweils nach 00:00 Uhr die Werte des letzten Tages ebenfalls als Readings im Device eingetragen,<br>
  34969. so dass man die Werte pro Tag auch plotten oder auswerten kann.<br>
  34970. Beim Readingnamen wird dann jeweils: DayStart,Today und LastDay angehangen!<br>
  34971. </li>
  34972. <br>
  34973. Beispiel:<br><br>
  34974. <code>POLL, 01F7080402, 2ByteS, 10 , Temp-WarmWasser-Ist , -<br></code>
  34975. <code>POLL, 01F7088A02, 2ByteU, 1 , BrennerStarts , day<br></code>
  34976. </ul>
  34977. <br><br>
  34978. <b>Set Commandos haben den folgenden Aufbau:<br><br></b>
  34979. SET,SETCMD, ADRESSE, CONVMETHODE, NEXT_CMD or DAY for timer<br><br>
  34980. <ul>
  34981. <li><b>SET</b><br>
  34982. muss fest auf SET stehen<br>
  34983. </li>
  34984. <br>
  34985. <li><b>SETCMD</b><br>
  34986. Die SETCMD sind die Commandos die man in FHEM zum setzen angeben muss<br>
  34987. set &lt;devicename&gt; &lt;setcmd&gt;<br>
  34988. z.B. SET &lt;devicename&gt; WW zum setzen auf den Status nur Warm Wasser Aufbereitung<br>
  34989. </li>
  34990. <br>
  34991. <li><b>ADDRESSE</b><br>
  34992. Adresse, an der der zu setzende Wert im Speicher zu schreiben ist.<br>
  34993. Sie besteht aus 4 Teilen:<br>
  34994. <ul>
  34995. <li> beginnt immer mit 01F4 (Kommando zum Lesen)</li>
  34996. <li> danach folgt die eigentliche Addresse<br></li>
  34997. <li> danach folgt die Anzahl der zu schreibenden Daten-Bytes<br></li>
  34998. <li> danach m&uuml;ssen die Daten-Bytes selber noch an die Adresse angehängt werden.<br></li>
  34999. </ul>
  35000. <br>
  35001. Es gibt zwei Varianten bei den Adressen:<br>
  35002. <li>Variante 1: Wert steht bereits fest, z.B. Spar Modus einschalten ist fix 01<br></li>
  35003. <li>Variante 2: Wert muss &uumlbergeben werden, z.B. Warm Wasser Temperatur<br></li>
  35004. </li>
  35005. <br>
  35006. <li><b>CONVMETHODE</b><br>
  35007. Methode wie der zu schreibende Wert bei Variante 2 in Bytes konvertiert werden muss.<br>
  35008. Bei Variante 1 kann man - eintragen.<br>
  35009. Bisher m&ouml;gliche Convmethoden:<br>
  35010. <ul>
  35011. <li>1ByteU :<br> Zu sendender Wert in 1 Byte ohne Vorzeichen<br>bei Variante 2 muss eine Zahl &uuml;bergeben werden<br></li>
  35012. <li>1ByteS :<br> Zu sendender Wert in 1 Byte mit Vorzeichen<br>bei Variante 2 muss eine Zahl &uuml;bergeben werden<br></li>
  35013. <li>2ByteS :<br> Zu sendender Wert in 2 Byte mit Vorzeichen<br>bei Variante 2 muss eine Zahl &uuml;bergeben werden<br></li>
  35014. <li>2ByteU :<br> Zu sendender Wert in 2 Byte ohne Vorzeichen<br>bei Variante 2 muss eine Zahl &uuml;bergeben werden<br></li>
  35015. <li>timer :<br> Zu sendender Wert ist ein 8 Byte Timer Werte<br>bei Variante 2 muss folgender String uebergeben werden:<br>
  35016. 8 Uhrzeiten mit Komma getrennt. (AN1,AUS1,AN2,AUS2,AN3,AUS3,AN4,AUS4)<br>
  35017. Keine Uhrzeit muss als -- angegeben werden.<br>
  35018. Minuten der Uhrzeiten dürfen nur 00,10,20,30,40 oder 50 sein<br>
  35019. Beispiel: 06:10,12:00,16:00,23:00,--,--,--,--</li>
  35020. <li>date :<br> Zu sendender Wert ist ein 8 Byte Zeitstempel<br>bei Variante 2 muss folgender String uebergeben werden:<br>
  35021. es muss das Format DD.MM.YYYY_HH:MM:SS eingehalten werden<br>
  35022. Beispiel: 21.03.2014_21:35:00</li>
  35023. </ul>
  35024. </li>
  35025. <br>
  35026. <li><b>NEXT_CMD or DAY</b><br>
  35027. Diese Spalte erf&uuml;llt drei Funktionen:
  35028. <ul>
  35029. <li>Gibt man in dieser Spalte ein anderes konfiguriertes SETCMD an, so wird dies anschließend ausgeführt.<br>
  35030. Beispiel: nach dem Spar Modus (S-ON) gesetzt wurde, muss der Party Modus (P-OFF) ausgeschaltet werden<br>
  35031. </li>
  35032. <li> Ist als CONVMETHODE 1ByteU oder 1ByteS oder 2ByteS oder 2ByteU angegeben, so kann hier ein Faktor angegeben,<br>
  35033. der beim SET auf den angegeben multipliziert wird<br>
  35034. Beispiel: <code>SET, TEMPNHK1 , 01F4200002 , 2ByteU , 10</code>
  35035. Bei <code>SET DEVICE TEMPNHK1 21</code> wird 210 an die Heizung gesendet.
  35036. </li>
  35037. <li>Ist als CONVMETHODE timer angegeben, so muss man in dieser Spalte den Wochentag angeben, für den der Timer gilt.<br>
  35038. M&ouml;gliche Werte: MO DI MI DO FR SA SO<br></li>
  35039. </li>
  35040. <br>
  35041. </ul>
  35042. Beispiele:<br><br>
  35043. <code>SET, WW , 01F423010100, state , -<br></code>
  35044. <code>SET, S-ON , 01F423020101, state_spar , P-OFF<br></code>
  35045. <code>SET, WWTEMP , 01F4630001 , 1ByteU , -<br></code>
  35046. <code>SET, TIMER_2_MO, 01F4200008 , timer , MO<br></code>
  35047. </ul>
  35048. </ul>
  35049. <br>
  35050. <a name="VCONTROLreadings"><b>Readings</b></a>
  35051. <ul>Die eingelesenen Werte werden wie oben beschrieben in selbst konfigurierten Readings abgelegt.</ul>
  35052. </ul>
  35053. <p><a name="VIERA"></a>
  35054. <h3>VIERA</h3>
  35055. <div class='langLinks'>[<a href='commandref.html#VIERA'>EN</a> DE]</div>
  35056. <ul>
  35057. <a name="VIERAdefine"></a>
  35058. <b>Define</b>
  35059. <ul>
  35060. <code>define &lt;name&gt; VIERA &lt;host&gt; [&lt;interval&gt;]</code>
  35061. <br><br>
  35062. Dieses Modul steuert einen Panasonic Fernseher &uuml;ber das Netzwerk. Es ist m&ouml;glich den Fernseher
  35063. auszuschalten, die Lautst&auml;rke zu &auml;ndern oder zu muten bzw. unmuten. Dieses Modul kann zus&auml;tzlich
  35064. die Fernbedienung simulieren. Somit k&ouml;nnen also die Schaltaktionen einer Fernbedienung simuliert werden.
  35065. Getestet wurde das Modul mit einem Panasonic Plasma TV tx-p50vt30e
  35066. <br><br>
  35067. Beim definieren des Ger&auml;tes in FHEM wird ein interner Timer gestartet, welcher zyklisch alle 30 Sekunden
  35068. den Status der Lautst&auml;rke und des Mute-Zustand ausliest. Das Intervall des Timer kann &uuml;ber den Parameter &lt;interval&gt;
  35069. ge&auml;ndert werden. Wird kein Interval angegeben, liest das Modul alle 30 Sekunden die Werte aus und triggert ein notify.
  35070. <br><br>
  35071. <b>Anmerkung:</b><br>
  35072. <ul>Aktivieren von Fernbedienung der Lautst&auml;rke per DLNA: Men&uuml; -> Setup -> Netzwerk-Setup -> Netzwerkverbindungsein. -> DLNA-Fernbed. Lautst. -> Ein</ul>
  35073. <br>
  35074. Beispiel:
  35075. <ul><code>
  35076. define myTV1 VIERA 192.168.178.20<br><br>
  35077. define myTV1 VIERA 192.168.178.20 60 #Mit einem Interval von 60 Sekunden
  35078. </code></ul>
  35079. </ul>
  35080. <br>
  35081. <a name="VIERAset"></a>
  35082. <b>Set</b>
  35083. <ul>
  35084. <code>set &lt;name&gt; &lt;command&gt; [&lt;value&gt;]</code>
  35085. <br><br>
  35086. Zur Zeit sind die folgenden Befehle implementiert:
  35087. <ul><code>
  35088. off<br>
  35089. mute [on|off]<br>
  35090. volume [0-100]<br>
  35091. volumeUp<br>
  35092. volumeDown<br>
  35093. channel [1-9999]<br>
  35094. channelUp<br>
  35095. channelDown<br>
  35096. statusRequest<br>
  35097. remoteControl &lt;command&gt;<br>
  35098. input [hdmi1|hdmi2|hdmi3|hdmi4|sdCard|tv]<br>
  35099. </code></ul>
  35100. </ul>
  35101. <ul>
  35102. <br>
  35103. <u>Fernbedienung (Kann vielleicht nach Modell variieren)</u><br>
  35104. Das Modul hat die folgenden Fernbedienbefehle implementiert:<br>
  35105. <ul><code>
  35106. 3D => 3D Knopf<br>
  35107. BLUE => Blau<br>
  35108. CANCEL => Cancel / Exit<br>
  35109. CHG_INPUT => AV<br>
  35110. CH_DOWN => Kanal runter<br>
  35111. CH_UP => Kanal hoch<br>
  35112. D0 => Ziffer 0<br>
  35113. D1 => Ziffer 1<br>
  35114. D2 => Ziffer 2<br>
  35115. D3 => Ziffer 3<br>
  35116. D4 => Ziffer 4<br>
  35117. D5 => Ziffer 5<br>
  35118. D6 => Ziffer 6<br>
  35119. D7 => Ziffer 7<br>
  35120. D8 => Ziffer 8<br>
  35121. D9 => Ziffer 9<br>
  35122. DISP_MODE => Anzeigemodus / Seitenverh&auml;ltnis<br>
  35123. DOWN => Navigieren runter<br>
  35124. ENTER => Navigieren enter<br>
  35125. EPG => Guide / EPG<br>
  35126. FF => Vorspulen<br>
  35127. GREEN => Gr&uuml;n<br>
  35128. HOLD => Bild einfrieren<br>
  35129. INDEX => TTV index<br>
  35130. INFO => Info<br>
  35131. INTERNET => VIERA connect<br>
  35132. LEFT => Navigieren links<br>
  35133. MENU => Men&uuml;<br>
  35134. MUTE => Mute<br>
  35135. PAUSE => Pause<br>
  35136. PLAY => Play<br>
  35137. POWER => Power off<br>
  35138. P_NR => P-NR (Ger&auml;uschreduzierung)<br>
  35139. REC => Aufnehmen<br>
  35140. RED => Rot<br>
  35141. RETURN => Enter<br>
  35142. REW => Zur&uuml;ckspulen<br>
  35143. RIGHT => Navigieren Rechts<br>
  35144. R_TUNE => Vermutlich die selbe Funktion wie INFO<br>
  35145. SD_CARD => SD-card<br>
  35146. SKIP_NEXT => Skip next<br>
  35147. SKIP_PREV => Skip previous<br>
  35148. STOP => Stop<br>
  35149. STTL => Untertitel<br>
  35150. SUBMENU => Option<br>
  35151. TEXT => TeleText<br>
  35152. TV => TV<br>
  35153. UP => Navigieren Hoch<br>
  35154. VIERA_LINK => VIERA link<br>
  35155. VOLDOWN => Lauter<br>
  35156. VOLUP => Leiser<br>
  35157. VTOOLS => VIERA tools<br>
  35158. YELLOW => Gelb<br>
  35159. </code></ul>
  35160. <br>
  35161. Beispiel:<br>
  35162. <ul><code>
  35163. set &lt;name&gt; mute on<br>
  35164. set &lt;name&gt; volume 20<br>
  35165. set &lt;name&gt; remoteControl CH_DOWN<br>
  35166. </code></ul>
  35167. </ul>
  35168. <br>
  35169. <a name="VIERAget"></a>
  35170. <b>Get</b>
  35171. <ul>
  35172. <code>get &lt;name&gt; &lt;what&gt;</code>
  35173. <br><br>
  35174. Die folgenden Befehle sind definiert und geben den entsprechenden Wert zur&uuml;ck, der vom Fernseher zur&uuml;ckgegeben wurde.
  35175. <ul><code>
  35176. mute<br>
  35177. volume<br>
  35178. power<br>
  35179. presence<br>
  35180. </code></ul>
  35181. </ul>
  35182. <br>
  35183. <a name="VIERAattr"></a>
  35184. <b>Attribute</b>
  35185. <ul>blocking [0|1]</ul>
  35186. <br>
  35187. <a name="VIERAevents"></a>
  35188. <b>Generierte events:</b>
  35189. <ul>
  35190. <li>volume</li>
  35191. <li>mute</li>
  35192. <li>presence</li>
  35193. <li>power</li>
  35194. <li>state</li>
  35195. </ul>
  35196. </ul>
  35197. <p><a name="Vallox"></a>
  35198. <h3>Vallox</h3>
  35199. <div class='langLinks'>[<a href='commandref.html#Vallox'>EN</a> DE]</div>
  35200. <div>
  35201. <ul>
  35202. Vallox ist ein Hersteller von Bel&uuml;ftungsanlagen mit W&auml;rmetauscher.
  35203. <br>
  35204. Die Systeme verf&uuml;gen sowohl an der zentralen L&uuml;ftungskomponente, als auch an den Terminals &uuml;ber eine RS485-Schnittstelle &uuml;ber die die gesamte interne Kommunikation abgewickelt wird.
  35205. <br>
  35206. Mehr Informationen sind auf der <a href="http://www.fhemwiki.de/wiki/Vallox">FHEM-Wiki-Seite</a> verf&uuml;gbar.
  35207. <br>
  35208. &nbsp;
  35209. <br>
  35210. <a name="Valloxdefine"></a>
  35211. <b>Define</b>
  35212. <ul>
  35213. <code>define &lt;name&gt; Vallox &lt;RS485-Device[@baud]&gt; [BusVersion]</code><br>
  35214. Wird die Baudrate weggelassen wird mit 9600 baud kommuniziert. (Standardrate des Vallox-Busses).<br>
  35215. Die BusVersion kann bei &auml;lteren Anlagen auf 1 gesetzt werden. (Standard: 2).<br>
  35216. <br>
  35217. Beispiel: <code>define Ventilation Vallox /dev/ttyUSB1</code>
  35218. </ul>
  35219. <br>
  35220. <a name="Valloxset"></a>
  35221. <b>Set</b>
  35222. <ul>
  35223. <li><code>FanSpeed &lt; 1-8 &gt;</code>
  35224. <br>
  35225. Erlaubt das &Auml;ndern der L&uuml;ftergeschwindigkeit (1 = minimal; 8 = maximal).<br>
  35226. </li><br>
  35227. <li><code>BasicHumidityLevel &lt; 0-100 &gt;</code>
  35228. <br>
  35229. Erlaubt das &Auml;ndern des Luftfeuchtigkeits-Grenzwertes (Terminaldisplay: <code>Grenzwert &#037;RH</code>).<br>
  35230. </li><br>
  35231. <li><code>HeatRecoveryCellBypassSetpointTemperature &lt; 0-20 &gt;</code>
  35232. <br>
  35233. Erlaubt das &Auml;ndern des Grenzwertes f&uuml;r den W&auml;rmetauscher-Bypass (Terminaldisplay: <code>WRG Bypass</code>)<br>
  35234. </li><br>
  35235. <li><code>raw &lt; HexWert &gt;</code><br>
  35236. HexWert sind <u>zwei</u> 2-stellige Hex-Zahlen, welche den Typ und den Wert der Einstellung identifiziert.
  35237. </li><br>
  35238. <br>
  35239. Beispiel um die L&uuml;ftergeschwindigkeit auf 3 zu setzen:<br>
  35240. <code>set Ventilation raw 2907</code><br>
  35241. oder:<br>
  35242. <code>set Ventilation FanSpeed 3</code>
  35243. </ul>
  35244. <br>
  35245. <a name="Valloxget"></a>
  35246. <b>Get</b>
  35247. <ul>
  35248. <li><code>reading &lt; readingname &gt;</code>
  35249. <br>
  35250. Erlaubt das Auslesen der vorgegebenen Datenpunkte aus dem Bus.<br>
  35251. </li><br>
  35252. <li><code>raw &lt; HexWert &gt;</code><br>
  35253. HexWert ist <u>eine</u> 2-stellige Hex-Zahl, welche den Typ der abzufragenden Einstellung identifiziert.
  35254. </li><br>
  35255. </ul>
  35256. <br>
  35257. <a name="Valloxattr"></a>
  35258. <b>Attribute</b>
  35259. <ul><li><code>ValloxIDDomain &lt; HexWert &gt;</code>
  35260. <br>
  35261. HexWert ist eine 2-stellige Hex-Zahl die als &QUOT;Adresse&QUOT; der Bus-Dom&auml;ne dient. (Standard: 01).
  35262. </li><br>
  35263. <li><code>ValloxIDCentral &lt; HexWert &gt;</code>
  35264. <br>
  35265. HexWert ist eine 2-stellige Hex-Zahl die als &QUOT;Adresse&QUOT; der zentralen Ventilationseinheit dient. (Standard: 11).<br>
  35266. In einer normalen Umgebung werden die Ventilationseinheiten mit 11 - 1F adressiert. 10 ist die Broadcast-Adresse.<br>
  35267. </li><br>
  35268. <li><code>ValloxIDFHEM &lt; HexWert &gt;</code>
  35269. <br>
  35270. HexWert ist eine 2-stellige Hex-Zahl die als &QUOT;Adresse&QUOT; dieses Systems als virtuelles Kontrollterminal dient. (Standard: 2F).<br>
  35271. Sie darf nicht bereits im Bus genutzt werden.<br>
  35272. In einer normalen Umgebung werden die Kontrollterminals mit 21 - 2F adressiert. 20 ist die Broadcast-Adresse.<br>
  35273. In den Einstellungen der physikalisch vorhandenen Terminals kann die &QUOT;FBD-Adresse&QUOT; des jeweiligen Terminals eingestellt werden.<br>
  35274. Hierbei stehen die Werte 1-15 zur Verf&uuml;gung, was der zweiten Stelle dieser Adresse (1-F) entspricht. Die erste Stelle ist immer 2.<br>
  35275. Das physikalische Kontrollterminal ist &uuml;blicherweise die 21.
  35276. </li><br>
  35277. <li><code>ValloxBufferDebug &lt; 0/1 &gt;</code>
  35278. <br>
  35279. Wenn 1, erzeugt das Modul ein Internal in welches die rohen Hex-Daten aus dem Bus herein geschrieben. NUR ZUM DEBUGGEN! (Standard: 0).
  35280. </li><br>
  35281. <li><code>ValloxForceBroadcast &lt; 0/1 &gt;</code>
  35282. <br>
  35283. Wenn 1, sendet das Modul die Befehle nicht nur an die zentrale Ventilationseinheit (11), sondern auch an alle Broadcast-Adressen (10/20). Dies ist manchmal bei &auml;lteren Anlagen notwendig, wenn sich die Anzeige auf den Kontrollterminals nicht mit aktualisiert. (Standard: 0; Funktion immer an bei BusVersion 1).
  35284. </li><br>
  35285. <li><code>ValloxProcessOwnCommands &lt; 0/1 &gt;</code>
  35286. <br>
  35287. Wenn 1, behandelt das Modul die eigenen Befehle auch als Empfangene Befehle und verarbeitet sie intern weiter. Dies ist manchmal bei &auml;lteren Anlagen notwendig. (Standard: 0; Funktion immer an bei BusVersion 1).
  35288. </li><br>
  35289. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  35290. </ul>
  35291. </ul>
  35292. </div>
  35293. <p><a name="VantagePro2"></a>
  35294. <h3>VantagePro2</h3>
  35295. <ul>
  35296. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35297. hier: <a href='commandref.html#VantagePro2'>VantagePro2</a><br/>
  35298. </ul>
  35299. <a name="Verkehrsinfo"></a>
  35300. <h3>Verkehrsinfo</h3>
  35301. <div class='langLinks'>[<a href='commandref.html#Verkehrsinfo'>EN</a> DE]</div>
  35302. <ul>
  35303. <i>Verkehrsinfo</i> kann die aktuellen Verkehrsinformationen von verschiedenen Quellen auslesen.
  35304. <br><br>
  35305. <ul>
  35306. <li>Verkehrsinfo.de</li>
  35307. Um die gewĂźnschten Verkehrsinformation zu erhalten wird die Webseite https://www.verkehrsinfo.de/httpsmobil besucht.
  35308. Hier kÜnnen Sie dann entweder Stra�en oder Bundesländer auswählen. Anschlie�end wird die URL als Parameter ßbergeben.
  35309. <br><br>
  35310. <li>Hessenschau.de</li>
  35311. Hier ist keine Konfiguration notwendig, man verwendet die URL http://hessenschau.de/verkehr/index.html als Parameter.
  35312. <br><br>
  35313. <li>RadioSAW.de</li>
  35314. Hier ist keine Konfiguration notwendig, man verwendet als Parameter radiosaw.
  35315. </ul>
  35316. <br><br>
  35317. <b>Voraussetzung:</b>
  35318. <ul><br>
  35319. FĂźr dieses Modul werden folgende Perlmodule benĂśtigt:<br>
  35320. <li>HTML::TreeBuilder::XPath<br>
  35321. <code>sudo apt-get install libxml-treebuilder-perl libhtml-treebuilder-xpath-perl</code>
  35322. </li>
  35323. <li>JSON<br>
  35324. <code>sudo apt-get install libjson-perl</code>
  35325. </li>
  35326. </ul>
  35327. <br><br>
  35328. <a name="Verkehrsinfodefine"></a>
  35329. <b>Define</b>
  35330. <ul>
  35331. <code>define &lt;name&gt; Verkehrsinfo &lt;url&gt; &lt;interval&gt;</code>
  35332. <br><br>
  35333. Beispiel: <code>define A8 Verkehrsinfo https://www.verkehrsinfo.de/httpsmobil/index.php?c=staulist&street=A8&lat=&lon= 3600 </code>
  35334. <br><br>
  35335. Options:
  35336. <ul>
  35337. <li><i>url</i><br>
  35338. URL der auszulesenden Verkehrsinformationen</li>
  35339. <li><i>interval</i><br>
  35340. Alle wieviel Sekunden die Daten aktualisiert werden</li>
  35341. </ul>
  35342. </ul>
  35343. <br>
  35344. <a name="Verkehrsinfoset"></a>
  35345. <b>Set</b><br>
  35346. <ul>
  35347. <code>set &lt;name&gt; &lt;option&gt;</code>
  35348. <br><br>
  35349. Options:
  35350. <ul>
  35351. <li><i>update</i><br>
  35352. Update wird sofort ausgefĂźhrt</li>
  35353. </ul>
  35354. </ul>
  35355. <br>
  35356. <a name="Verkehrsinfoget"></a>
  35357. <b>Get</b><br>
  35358. <ul>
  35359. <code>get &lt;name&gt; &lt;option&gt;</code>
  35360. <br><br>
  35361. Options:
  35362. <ul>
  35363. <li><i>info</i><br>
  35364. Ausgeben der aktuellen Verkehrsinformationen</li>
  35365. </ul>
  35366. </ul>
  35367. <br>
  35368. <a name="Verkehrsinfoattr"></a>
  35369. <b>Attributes</b><br>
  35370. <ul>
  35371. <code>attr &lt;name&gt; &lt;option&gt; &lt;value&gt;</code>
  35372. <br><br>
  35373. Options:
  35374. <ul>
  35375. <li><i>filter_exclude</i><br>
  35376. Dies ist ein Ausschlussfilter. Verkehrsmeldung die eines der WĂśrter enthalten, werden nicht angezeigt.<br>
  35377. Der Filter unterstßtz Regulärer Ausdrßcke. Achtung: Regex Steuerzeichen, z.B. Klammern mßssen mit einem Backslash "\" maskiert werden.<br>
  35378. Mehrer Suchbegriffe kĂśnnen mit einer Pipe "|" getrennt werden.<br><br></li>
  35379. <li><i>filter_include</i><br>
  35380. Dies ist ein Einschlussfilter. Es werden nur Verkehrsmeldung angezeigt die eines der WĂśrter enthalten.<br>
  35381. Der Filter unterstßtz Regulärer Ausdrßcke. Achtung: Regex Steuerzeichen, z.B. Klammern mßssen mit einem Backslash "\" maskiert werden.<br>
  35382. Mehrer Suchbegriffe kĂśnnen mit einer Pipe "|" getrennt werden.<br><br></li>
  35383. <li>Hinweis: Beide Filter kĂśnnen gleichzeitig benutzt werden, aber es kann auch wahlweise nur einer verwendet werden.<br>
  35384. Die Filter sind mit einem Logischen UND verknĂźpft. Das heist z.B.: wenn etwas ausgeschlossen wurde, kann es nicht mit dem Einschlussfilter wiedergeholt werden.<br><br></li>
  35385. <li><i>orderby</i><br>
  35386. Anhand von Zeichefolgen wird eine Sortierung der Meldungen nach Relevanz vorgenommen.<br>
  35387. Die Sortierung unterstßtzt Regulärer Ausdrßcke.<br>
  35388. Mehrer Suchbegriffe kĂśnnen mit einer Pipe "|" getrennt werden.<br><br></li>
  35389. <li><i>msg_format [ road | head | both ]</i> (Nur Verkehrsinfo.de und RadioSAW.de)<br>
  35390. �ber diesen Parameter kann die Meldung formatiert werden nach Strasse, Richtung oder beides<br><br></li>
  35391. <li><i>disable</i><br>
  35392. 1 = inactive and 0 = active<br><br></li>
  35393. <li><i><a href="#readingFnAttributes">readingFnAttributes</a></i><br><br></li>
  35394. </ul>
  35395. </ul>
  35396. <br>
  35397. <a name="Verkehrsinforeading"></a>
  35398. <b>Readings</b>
  35399. <ul>
  35400. <br>
  35401. <li><b>e_</b><i>0|1|2|3...|9</i><b>_...</b> - aktive Meldungen</li>
  35402. <li><b>count</b> - Anzahl der aktiven Meldungen</li>
  35403. <li><b>e_</b><i>0</i><b>_road</b> - Stra�e</li>
  35404. <li><b>e_</b><i>0</i><b>_head</b> - Fahrtrichtung</li>
  35405. <li><b>e_</b><i>0</i><b>_msg</b> - Meldung</li>
  35406. </ul>
  35407. <br>
  35408. <a name="Verkehrsinfofunktion"></a>
  35409. <b>Funktion</b>
  35410. <ul>
  35411. <code>Verkehrsinfo_GetData(&lt;devicename&gt;)</code>
  35412. <br><br>
  35413. Die Funktion kann Ăźberall in FHEM aufgerufen werden und liefert als RĂźckgabewert das gleiche Ergebnis wie der get &lt;name&gt; info Aufruf.
  35414. Der RĂźckgabewert als Text, kann dann fĂźr weiteres verwendet werden.
  35415. <br><br>
  35416. Beispiel: <code>my $result = Verkehrsinfo_GetData('A8')</code>
  35417. </ul>
  35418. <br>
  35419. </ul>
  35420. <p><a name="VolumeLink"></a>
  35421. <h3>VolumeLink</h3>
  35422. <ul>
  35423. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35424. hier: <a href='commandref.html#VolumeLink'>VolumeLink</a><br/>
  35425. </ul>
  35426. <a name="WEBCOUNT"></a>
  35427. <h3>WEBCOUNT</h3>
  35428. <ul>
  35429. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35430. hier: <a href='commandref.html#WEBCOUNT'>WEBCOUNT</a><br/>
  35431. </ul>
  35432. <a name="WEBIO"></a>
  35433. <h3>WEBIO</h3>
  35434. <ul>
  35435. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35436. hier: <a href='commandref.html#WEBIO'>WEBIO</a><br/>
  35437. </ul>
  35438. <a name="WEBIO_12DIGITAL"></a>
  35439. <h3>WEBIO_12DIGITAL</h3>
  35440. <ul>
  35441. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35442. hier: <a href='commandref.html#WEBIO_12DIGITAL'>WEBIO_12DIGITAL</a><br/>
  35443. </ul>
  35444. <a name="WINCONNECT"></a>
  35445. <h3>WINCONNECT</h3>
  35446. <div class='langLinks'>[<a href='commandref.html#WINCONNECT'>EN</a> DE]</div>
  35447. <ul>
  35448. Dieses Module dient zur Steuerung eines Windows PCs
  35449. <br><br>
  35450. <ul>
  35451. <a name="WINCONNECTdefine" id="WINCONNECTdefine"></a> <b>Define</b>
  35452. <ul>
  35453. <code>define &lt;name&gt; WINCONNECT &lt;ip-address-or-hostname&gt; [&lt;poll-interval&gt;]</code><br>
  35454. <br>
  35455. F&uuml;r definierte WINCONNECT Ger&auml;te wird ein interner Task angelegt, welcher periodisch die Readings aktualisiert. Der Standartpollintervall ist 45 Sekunden.<br>
  35456. <br>
  35457. Example:<br>
  35458. <ul>
  35459. <code>define Buero.PC WINCONNECT 192.168.0.10<br>
  35460. <br>
  35461. # Alternativer poll intervall von 60 seconds<br>
  35462. define Buero.PC WINCONNECT 192.168.0.10 60<br></code>
  35463. </ul>
  35464. </ul>
  35465. </ul>
  35466. <br><br>
  35467. Mehr Information im <a target="_blank" href="https://wiki.fhem.de/wiki/WINCONNECT">FHEM Wiki</a>.<br/>
  35468. <br>
  35469. </ul>
  35470. <p><a name="WMBUS"></a>
  35471. <h3>WMBUS - Wireless M-Bus</h3>
  35472. <div class='langLinks'>[<a href='commandref.html#WMBUS'>EN</a> DE]</div>
  35473. <ul>
  35474. Dieses Modul unterst&uuml;tzt Z&auml;hler mit Wireless M-Bus, z. B. f&uuml;r Wasser, Gas oder Elektrizit&auml;t.
  35475. Wireless M-Bus ist ein standardisiertes Protokoll das von unterschiedlichen Herstellern unterst&uuml;tzt wird.
  35476. Es verwendet das 868 MHz Band f&uuml;r Radio&uuml;bertragungen.
  35477. Daher wird ein Ger&auml;t ben&ouml;tigt das die Wireless M-Bus Nachrichten empfangen kann, z. B. ein <a href="#CUL">CUL</a> mit culfw >= 1.59 oder ein AMBER Wireless AMB8465-M.
  35478. <br>
  35479. WMBus verwendet drei unterschiedliche Radioprotokolle, T-Mode, S-Mode und C-Mode. Der Empf&auml;nger muss daher so konfiguriert werden, dass er das selbe Protokoll
  35480. verwendet wie der Sender. Im Falle eines CUL kann das erreicht werden, in dem das Attribut <a href="#rfmode">rfmode</a> auf WMBus_T, WMBus_S bzw. WMBus_C gesetzt wird.
  35481. <br>
  35482. WMBus Ger&auml;te senden Daten periodisch abh&auml;ngig von ihrer Konfiguration. Es k&ouml;nnen u. U. Tage zwischen einzelnen Nachrichten vergehen oder sie k&ouml;nnen im
  35483. Minutentakt gesendet werden.
  35484. <br>
  35485. WMBus Nachrichten k&ouml;nnen optional verschl&uuml;sselt werden. Bei verschl&uuml;sselten Nachrichten muss der passende Schl&uuml;ssel mit dem Attribut AESkey angegeben werden.
  35486. Andernfalls wird die Entschl&uuml;sselung fehlschlagen und es k&ouml;nnen keine relevanten Daten ausgelesen werden.
  35487. <br><br>
  35488. <b>Voraussetzungen</b><br>
  35489. Dieses Modul ben&ouml;tigt die perl Module Digest::CRC, Crypt::Mode::CBC und Crypt::ModeL::CTR (die Crypt Module werden nur ben&ouml;tigt wenn verschl&uuml;sselte Nachrichten verarbeitet werden sollen).<br>
  35490. Bei einem Debian basierten System k&ouml;nnen diese so installiert werden<br>
  35491. <code>
  35492. sudo apt-get install libdigest-crc-perl<br>
  35493. sudo cpan -i Crypt::Mode::CBC Crypt::Mode::CTR
  35494. </code>
  35495. <br><br>
  35496. <a name="WMBUSdefine"></a>
  35497. <b>Define</b>
  35498. <ul>
  35499. <code>define &lt;name&gt; WMBUS [&lt;manufacturer id&gt; &lt;identification number&gt; &lt;version&gt; &lt;type&gt; [&lt;MessageEncoding&gt;]]|&lt;bHexCode&gt;</code> <br>
  35500. <br>
  35501. Normalerweise wird ein WMBus Device nicht manuell angelegt. Dies geschieht automatisch bem Empfang der ersten Nachrichten eines Ger&auml;tes &uuml;ber den
  35502. fhem <a href="#autocreate">autocreate</a> Mechanismus.
  35503. <br>
  35504. F&uuml;r eine manuelle Definition gibt es zwei Wege.
  35505. <ul>
  35506. <li>
  35507. Durch Verwendung einer WMBus Rohnachricht wie sie vom IODev empfangen wurde. So eine Nachricht beginnt mit einem kleinen 'b' und enth&auml;lt mindestens
  35508. 24 hexadezimale Zeichen.
  35509. Das WMBUS Modul extrahiert daraus alle ben&ouml;tigten Informationen.
  35510. </li>
  35511. <li>
  35512. Durch explizite Angabe der Informationen die ein WMBus Ger&auml;t eindeutig identfizieren.<br>
  35513. Der Hersteller Code, besteht aus drei Buchstaben als Abk&uuml;rzung des Herstellernamens. Eine Liste der Abk&uuml;rzungen findet sich unter
  35514. <a href="http://dlms.com/organization/flagmanufacturesids/index.html">dlms.com</a><br>
  35515. Die Idenitfikationsnummer ist die Seriennummer des Z&auml;hlers.<br>
  35516. Version ist ein Versionscode des Z&auml;hlers.<br>
  35517. Typ ist die Art des Z&auml;hlers, z. B. Wasser oder Elektrizit&auml;t, kodiert als Zahl.<br>
  35518. MessageEncoding ist entweder CUL oder AMB, je nachdem welche Art von IODev verwendet wird
  35519. </li>
  35520. <br>
  35521. </ul>
  35522. </ul>
  35523. <br>
  35524. <a name="WMBUSset"></a>
  35525. <b>Set</b> <ul>N/A</ul><br>
  35526. <a name="WMBUSget"></a>
  35527. <b>Get</b> <ul>N/A</ul><br>
  35528. <a name="WMBUSattr"></a>
  35529. <b>Attributes</b>
  35530. <ul>
  35531. <li><a href="#IODev">IODev</a><br>
  35532. Setzt den IO oder physisches Ger&auml;t welches f&uuml;r den Empfang der Signale f&uuml;r dieses 'logische' Ger&auml;t verwendet werden soll.
  35533. Ein Beispiel f&uuml;r ein solches Ger&auml;t ist ein CUL.
  35534. </li><br>
  35535. <li>AESKey<br>
  35536. Ein 16 Bytes langer AES-Schl&uuml;ssel in hexadezimaler Schreibweise. Wird verwendet um Nachrichten von Z&auml;hlern zu entschl&uuml;sseln bei denen
  35537. die Verschl&uuml;sselung aktiviert ist.
  35538. </li><br>
  35539. <li>
  35540. <a href="#ignore">ignore</a>
  35541. </li><br>
  35542. <li>rawmsg_as_reading<br>
  35543. Wenn auf 1 gesetzt so werden empfangene Nachrichten im Reading rawmsg gespeichert. Das kann verwendet werden um Rohnachrichten zu loggen und beim Debugging zu helfen.
  35544. </li>
  35545. </ul>
  35546. <br>
  35547. <a name="WMBUSreadings"></a>
  35548. <b>Readings</b><br>
  35549. <ul>
  35550. Z&auml;hler k&ouml;nnen sehr viele unterschiedliche Informationen senden, abh&auml;ngig von ihrem Typ. Ein Elektrizit&auml;tsz&auml;hler wird andere Daten senden als ein
  35551. Wasserz&auml;hler. Die Information h&auml;ngt auch vom Hersteller des Z&auml;hlers ab. F&uuml;r weitere Informationen siehe die WMBus Spezifikation unter
  35552. <a href="http://www.oms-group.org">oms-group.org</a>.
  35553. <br><br>
  35554. Die Readings werden als Block dargestellt, beginnend mit Block 1. Ein Z&auml;hler kann mehrere Bl&ouml;cke senden.
  35555. Jeder Block enth&auml;lt zumindest einen Typ, einen Wert und eine Einheit. F&uuml;r einen Elektrizit&auml;tsz&auml;hler k&ouml;nnte das z. B. so aussehen<br>
  35556. <ul>
  35557. <code>1_type VIF_ENERGY_WATT</code><br>
  35558. <code>1_unit Wh</code><br>
  35559. <code>1_value 2948787</code><br>
  35560. </ul>
  35561. <br>
  35562. Es gibt auch eine Anzahl von festen Readings.
  35563. <ul>
  35564. <li><code>is_encrypted</code> ist 1 wenn die empfangene Nachricht verschl&uuml;sselt ist.</li>
  35565. <li><code>decryption_ok</code> ist 1 wenn die Nachricht entweder erfolgreich entschl&uuml;sselt wurde oder gar nicht verschl&uuml;sselt war.</li>
  35566. <li><code>state</code> enth&auml;lt den Status des Z&auml;hlers und kann Fehlermeldungen wie 'battery low' enthalten. Normalerweise ist der Wert 'no error'.</li>
  35567. <li><code>batteryState</code> enth&auml;lt ok oder low.</li>
  35568. </ul>
  35569. Fßr einige bekannte Gerätetypen werden zusätzliche Readings wie der Energieverbrauch in kWh erzeugt.
  35570. </ul>
  35571. </ul>
  35572. <p><a name="WOL"></a>
  35573. <h3>WOL</h3>
  35574. <ul>
  35575. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35576. hier: <a href='commandref.html#WOL'>WOL</a><br/>
  35577. </ul>
  35578. <a name="WS2000"></a>
  35579. <h3>WS2000</h3>
  35580. <ul>
  35581. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35582. hier: <a href='commandref.html#WS2000'>WS2000</a><br/>
  35583. </ul>
  35584. <a name="WS300"></a>
  35585. <h3>WS300</h3>
  35586. <ul>
  35587. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35588. hier: <a href='commandref.html#WS300'>WS300</a><br/>
  35589. </ul>
  35590. <a name="WS3600"></a>
  35591. <h3>WS3600</h3>
  35592. <div class='langLinks'>[<a href='commandref.html#WS3600'>EN</a> DE]</div>
  35593. <ul>
  35594. Definiert eine Wetterstation, die Ăźber ein externes Programm ausgelesen
  35595. wird. Dieses Programm wird zyklisch durch FHEM aufgerufen. Es muss die
  35596. Daten im gleichen Format wie fetch3600 (Details siehe unten) auf der
  35597. Standardausgabe liefern.<br>
  35598. <br>
  35599. <a name="WS3600define"></a> <b>Define</b>
  35600. <ul>
  35601. <code>define &lt;name&gt; WS3600 "&lt;wsreaderprog&gt;
  35602. [&lt;options&gt;]" [&lt;interval&gt;]</code> <br>
  35603. <br>
  35604. <ul>
  35605. <dl>
  35606. <dt>&lt;wsreaderprog&gt;</dt>
  35607. <dd>kompletter Pfad zum Ausleseprogramm (fĂźr Wetterstationen Typ
  35608. WS3600 fetch3600 verwenden)</dd>
  35609. <dt>&lt;options&gt;</dt>
  35610. <dd>Kommandozeilenparameter fĂźr &lt;wsreaderprog&gt;, falls
  35611. erforderlich</dd>
  35612. <dt>&lt;interval&gt;</dt>
  35613. <dd>optionaler Parameter fĂźr das Aufrufintervall [s]. Defaultwert
  35614. ist 60s.</dd>
  35615. </dl>
  35616. </ul>
  35617. <br>
  35618. &nbsp; UnterstĂźtzte Stationen sind:<br>
  35619. <ul>
  35620. <li>WS3600 Serie (Europe Supplies, technotrade, usw.; s.a. <a href="http://wiki.wetterstationen.info/index.php?title=LaCrosse_WS3600">Wetterstationen.info</a>
  35621. (deutsch) fĂźr Details) in Verbindung mit fetch3600 aus dem Paket <a
  35622. href="https://sourceforge.net/projects/open3600/">open3600</a>).
  35623. Fetch3600 liefert die aktuellen Werte zeilenweise als
  35624. Name-Wert-Paare. Diese werden durch FHEM zyklisch eingelesen, mit
  35625. besser lesbaren Bezeichnungen versehen und als Readings zur
  35626. VerfĂźgung gestellt. </li>
  35627. <li><a href="http://wiki.wetterstationen.info/index.php?title=LaCrosse_WS2300">WS2300</a>
  35628. Serie in Verbindung mit dem Paket <a href="http://www.lavrsen.dk/twiki/bin/view/Open2300/WebHome">open2300</a>
  35629. (ähnlich zu open3600).</li>
  35630. <li><a href="http://wiki.wetterstationen.info/index.php?title=WS1080">WS1080</a>
  35631. (und andere Stationen, die mit der Windows-Software "Easy Weather"
  35632. ausgeliefert werden) in Verbindung mit <a href="https://github.com/ajauberg/fowsr/">fowsr</a>
  35633. (ab Version 2.0)</li>
  35634. </ul>
  35635. <br>
  35636. Es wird vorausgesetzt, dass die Wetterstation am lokalen Computer
  35637. angeschlossen ist und &lt;wsreaderprog&gt; deshalb lokal läuft.
  35638. &lt;wsreaderprog&gt; muss grundsätzlich eine zu fetch3600 vergleichbare
  35639. Ausgabe auf der Standardausgabe liefern. <br>
  35640. Als Beispiel fĂźr das erwartete Format hier die Ausgabe von fetch3600:<br>
  35641. <div>
  35642. <pre>Date 14-Nov-2009
  35643. Time 10:50:22
  35644. Ti 22.8
  35645. Timin 20.8
  35646. Timax 27.9
  35647. TTimin 10:27
  35648. DTimin 15-10-2009
  35649. TTimax 23:31
  35650. DTimax 20-08-2009
  35651. To 14.2
  35652. Tomin -0.4
  35653. Tomax 35.6
  35654. TTomin 07:03
  35655. DTomin 15-10-2009
  35656. TTomax 16:52
  35657. DTomax 20-08-2009
  35658. DP 9.2
  35659. DPmin -2.2
  35660. DPmax 20.3
  35661. TDPmin 07:03
  35662. DDPmin 15-10-2009
  35663. TDPmax 11:58
  35664. DDPmax 20-08-2009
  35665. RHi 48
  35666. RHimin 32
  35667. RHimax 57
  35668. TRHimin 17:03
  35669. DRHimin 21-10-2009
  35670. TRHimax 22:24
  35671. DRHimax 07-10-2009
  35672. RHo 72
  35673. RHomin 27
  35674. RHomax 96
  35675. TRHomin 16:41
  35676. DRHomin 20-08-2009
  35677. TRHomax 06:28
  35678. DRHomax 02-11-2009
  35679. WS 0.0
  35680. DIRtext WSW
  35681. DIR0 247.5
  35682. DIR1 247.5
  35683. DIR2 247.5
  35684. DIR3 247.5
  35685. DIR4 247.5
  35686. DIR5 247.5
  35687. WC 14.2
  35688. WCmin -0.4
  35689. WCmax 35.6
  35690. TWCmin 07:03
  35691. DWCmin 15-10-2009
  35692. TWCmax 16:52
  35693. DWCmax 20-08-2009
  35694. WSmin 0.0
  35695. WSmax 25.6
  35696. TWSmin 10:44
  35697. DWSmin 14-11-2009
  35698. TWSmax 19:08
  35699. DWSmax 24-09-2009
  35700. R1h 0.00
  35701. R1hmax 24.34
  35702. TR1hmax 22:34
  35703. DR1hmax 07-10-2009
  35704. R24h 0.00
  35705. R24hmax 55.42
  35706. TR24hmax 07:11
  35707. DR24hmax 08-10-2009
  35708. R1w 29.00
  35709. R1wmax 95.83
  35710. TR1wmax 00:00
  35711. DR1wmax 12-10-2009
  35712. R1m 117.58
  35713. R1mmax 117.58
  35714. TR1mmax 00:00
  35715. DR1mmax 01-11-2009
  35716. Rtot 3028.70
  35717. TRtot 03:29
  35718. DRtot 18-09-2005
  35719. RP 992.200
  35720. AP 995.900
  35721. RPmin 970.300
  35722. RPmax 1020.000
  35723. TRPmin 05:25
  35724. DRPmin 04-11-2009
  35725. TRPmax 09:19
  35726. DRPmax 11-09-2009
  35727. Tendency Falling
  35728. Forecast Cloudy</pre>
  35729. </div>
  35730. Zusätzlich werden folgende Erweiterungen (fßr WS3080) unterstßtzt:<br>
  35731. <div>
  35732. <pre>IL 0.0
  35733. UV 8
  35734. Forecast Zeitweise Regen, später zunehmend
  35735. ZCode U</pre>
  35736. </div>
  35737. Welche der vorgenannten Wertepaare durch &lt;wsreaderprog&gt;&nbsp;
  35738. geliefert werden, ist egal. Jedes bekannte wird Ăźbersetzt (z.B. <code>Ti</code>
  35739. nach <code>Temp-inside</code>) und als Reading angezeigt, alle
  35740. unbekannten werden kommentarlos verworfen. Mittels geeignetem Programm
  35741. oder Script sollte sich also jede beliebige Wetterstation anschlie�en
  35742. lassen. <br>
  35743. Anmerkung: Um die Anzahl Readings zu reduzieren, werden jetzt Date- und
  35744. Time-Wertepaare zusammengefasst. Es ist jetzt auch zulässig, dass
  35745. &lt;wsreaderprog&gt; schon kombinierte Wertepaare liefert. Diese sind
  35746. mit dem Prefix <code>DT</code> zu kennzeichnen, also z.B. <code>Date</code>
  35747. + <code>Time</code> --&gt; <code>DTime</code>, <code>DRPmin</code> +
  35748. <code>TRPmin</code> --&gt; <code>DTRPmin</code> usw.).<br>
  35749. <em>Fetch3600 ist auch unter Windows verfĂźgbar, ob das Zusammenspiel mit
  35750. FHEM dort auch funktioniert, wurde noch nicht getestet.</em> <br>
  35751. <br>
  35752. Beispiele:
  35753. <ul>
  35754. <code>define myWS3600 W3600 /usr/local/bin/fetch360</code><br>
  35755. <code>define myWS1080 W3600 "/usr/local/bin/fowsr -c" 300</code><br>
  35756. </ul>
  35757. <br>
  35758. </ul>
  35759. <a name="WS3600set"></a> <b>Set</b>
  35760. <ul>
  35761. N/A
  35762. </ul>
  35763. <br>
  35764. <a name="WS3600get"></a> <b>Get</b>
  35765. <ul>
  35766. N/A
  35767. </ul>
  35768. <br>
  35769. <a name="WS3600attr"></a> <b>Attributes</b>
  35770. <ul>
  35771. <li><a href="#model">model</a>&nbsp;&nbsp;&nbsp;&nbsp; WS3600, WS2300,
  35772. WS1080, WS3080 (z.Zt (noch) ohne Wirkung)</li>
  35773. </ul>
  35774. <br>
  35775. </ul>
  35776. <p><a name="WUup"></a>
  35777. <h3>WUup</h3>
  35778. <div class='langLinks'>[<a href='commandref.html#WUup'>EN</a> DE]</div>
  35779. <ul>
  35780. <a name="WUupdefine"></a>
  35781. <b>Define</b>
  35782. <ul>
  35783. <br/>
  35784. <code>define &lt;name&gt; WUup &lt;stationId&gt; &lt;password&gt;</code>
  35785. <br/><br/>
  35786. Dieses Modul stellt eine Verbindung zu <a href="https://www.wunderground.com">www.wunderground.com</a></br>
  35787. her, um Daten einer eigenen Wetterstation zu versenden..<br/>
  35788. </ul>
  35789. <br/><br/>
  35790. <a name="WUupset"></a>
  35791. <b>Set-Befehle</b><br/>
  35792. <ul>
  35793. <li><b>update</b> - sende Daten an Weather Underground</li>
  35794. </ul>
  35795. <br/><br/>
  35796. <a name="WUupget"></a>
  35797. <b>Get-Befehle</b><br/>
  35798. <ul>
  35799. <br/>
  35800. - keine -<br/>
  35801. </ul>
  35802. <br/><br/>
  35803. <a name="WUupattr"></a>
  35804. <b>Attribute</b><br/><br/>
  35805. <ul>
  35806. <li><b><a href="#readingFnAttributes">readingFnAttributes</a></b></li>
  35807. <li><b>interval</b> - Sendeinterval in Sekunden. Wird auf 300 (Default-Wert)
  35808. eingestellt, wenn der Wert kleiner als 3 ist.<br />
  35809. Wenn der Wert kleiner als 300 ist, wird der RapidFire Modus verwendet.</li>
  35810. <li><b>disable</b> - deaktiviert das Modul</li>
  35811. <li><b><a href="#disabledForIntervals">disabledForIntervals</a></b></li>
  35812. <li><b>unit_windspeed</b> - gibt die Einheit der Readings fĂźr die
  35813. Windgeschwindigkeiten an (m/s oder km/h)</li>
  35814. <li><b>unit_solarradiation</b> - gibt die Einheit der Readings fĂźr die
  35815. Sonneneinstrahlung an (lux oder W/m&sup2;)</li>
  35816. <li><b>round</b> - Anzahl der Nachkommastellen zur Berechnung (Standard 4)</li>
  35817. <li><b>wu....</b> - Attributname entsprechend dem
  35818. <a href="http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol">Parameternamen aus der API.</a><br />
  35819. Jedes dieser Attribute enth&auml;lt Informationen &uuml;ber zu sendende Wetterdaten
  35820. im Format <code>sensorName:readingName</code>.<br/>
  35821. Beispiel: <code>attr WUup wutempf outside:temperature</code> definiert
  35822. das Attribut wutempf und sendet das Reading "temperature" vom Ger&auml;t "outside" als Parameter "tempf"
  35823. (welches die aktuelle Temperatur angibt).
  35824. <br />
  35825. Einheiten werden automatisch ins anglo-amerikanische System umgerechnet.
  35826. (&deg;C -> &deg;F; km/h(m/s) -> mph; mm -> in; hPa -> inHg)<br/><br/>
  35827. <u>Unterst&uuml;tzte Angaben</u>
  35828. <ul>
  35829. <li>winddir - momentane Windrichtung (0-360) [&deg;]</li>
  35830. <li>windspeedmph - momentane Windgeschwindigkeit [mph]</li>
  35831. <li>windgustmph - aktuelle B&ouml;e, mit Software-spezifischem Zeitraum [mph]</li>
  35832. <li>windgustdir - aktuelle B&ouml;enrichtung, mit Software-spezifischer Zeitraum [&deg;]</li>
  35833. <li>windspdmph_avg2m - durchschnittliche Windgeschwindigkeit innerhalb 2 Minuten [mph]</li>
  35834. <li>winddir_avg2m - durchschnittliche Windrichtung innerhalb 2 Minuten [&deg;]</li>
  35835. <li>windgustmph_10m - B&ouml;en der vergangenen 10 Minuten [mph]</li>
  35836. <li>windgustdir_10m - Richtung der B&ouml;en der letzten 10 Minuten [&deg;]</li>
  35837. <li>humidity - Luftfeuchtigkeit im Freien (0-100) [&#37;]</li>
  35838. <li>dewptf- Taupunkt im Freien [F]</li>
  35839. <li>tempf - Au&szlig;entemperatur [F]</li>
  35840. <li>rainin - Regen in der vergangenen Stunde [in]</li>
  35841. <li>dailyrainin - Regenmenge bisher heute [in]</li>
  35842. <li>baromin - barometrischer Druck [inHg]</li>
  35843. <li>soiltempf - Bodentemperatur [F]</li>
  35844. <li>soilmoisture - Bodenfeuchtigkeit [&#37;]</li>
  35845. <li>solarradiation - Sonneneinstrahlung [W/m&sup2;]</li>
  35846. <li>UV - [Index]</li>
  35847. <li>AqPM2.5 - Feinstaub PM2,5 [&micro;g/m&sup3;]</li>
  35848. <li>AqPM10 - Feinstaub PM10 [&micro;g/m&sup3;]</li>
  35849. </ul>
  35850. </li>
  35851. </ul>
  35852. <br/><br/>
  35853. <b>Readings/Events:</b>
  35854. <br/><br/>
  35855. <ul>
  35856. <li><b>data</b> - Daten, die zu www.wunderground.com gesendet werden</li>
  35857. <li><b>response</b> - Antwort, die vom Server empfangen wird</li>
  35858. </ul>
  35859. <br/><br/>
  35860. <b>Notizen</b><br/><br/>
  35861. <ul>
  35862. <li>Die komplette API-Beschreibung findet sich
  35863. <a href="http://wiki.wunderground.com/index.php/PWS_-_Upload_Protocol">hier</a></li>
  35864. <li>Viel Spa&szlig;!</li><br/>
  35865. </ul>
  35866. </ul>
  35867. <p><a name="WWO"></a>
  35868. <h3>WWO</h3>
  35869. <ul>
  35870. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  35871. hier: <a href='commandref.html#WWO'>WWO</a><br/>
  35872. </ul>
  35873. <a name="WaterCalculator"></a>
  35874. <h3>WaterCalculator</h3>
  35875. <div class='langLinks'>[<a href='commandref.html#WaterCalculator'>EN</a> DE]</div>
  35876. <ul>
  35877. <table>
  35878. <tr>
  35879. <td>
  35880. Das WaterCalculator Modul berechnet den Verbrauch an Wasser und die verbundenen Kosten von einem oder mehreren Wasserz&auml;hlern.<BR>
  35881. <BR>
  35882. <FONT COLOR="#FF0000">Die Funktion des sogenannten Unterwasserz&auml;hlers ist noch nicht implementiert. Daher müssen bei den Wasserkosten die Abwasserkosten mit einbezogen werden.</FONT>
  35883. <BR>
  35884. Es ist kein eigenes Z&auml;hlermodul sondern ben&ouml;tigt eine Regular Expression (regex or regexp) um das Reading mit den Z&auml;hlimpulse von einem oder mehreren Wasserz&auml;hlern zu finden.<BR>
  35885. <BR>
  35886. Sobald das Modul in der fhem.cfg definiert wurde, reagiert das Modul auf jedes durch das regex definierte event wie beispielsweise ein myOWDEVICE:counter.* etc.<BR>
  35887. <BR>
  35888. Das WaterCalculator Modul berechnet augenblickliche, historische statistische und vorhersehbare Werte von einem oder mehreren Wasserz&auml;hlern und erstellt die entsprechenden Readings.<BR>
  35889. <BR>
  35890. Um zu verhindern, dass man bis zu 12 Monate warten muss, bis alle Werte der Realit&auml;t entsprechen, m&uuml;ssen die Readings<BR>
  35891. <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterDay1st</code>,<BR>
  35892. <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMonth1st</code>,<BR>
  35893. <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterYear1st</code> und<BR>
  35894. <code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMeter1st</code><BR>
  35895. entsprechend mit dem <code>setreading</code> - Befehl korrigiert werden.<BR>
  35896. Diese Werte findet man unter Umst&auml;nden auf der letzten Abrechnung des Wasserversorgers. Andernfalls dauert es bis zu 24h f&uuml;r die t&auml;glichen, 30 Tage f&uuml;r die monatlichen und bis zu 12 Monate f&uuml;r die j&auml;hrlichen Werte bis diese der Realit&auml;t entsprechen.<BR>
  35897. <BR>
  35898. <BR>
  35899. Intervalle kleienr als 10s werden ignoriert um Spitzen zu verhindern die von Blockaden des fhem Systems hervorgerufen werden (z.B. DbLog - reducelog).
  35900. </td>
  35901. </tr>
  35902. </table>
  35903. <table>
  35904. <tr><td><a name="WaterCalculatorDefine"></a><b>Define</b></td></tr>
  35905. </table>
  35906. <table><tr><td><ul><code>define &lt;name&gt; WaterCalculator &lt;regex&gt;</code></ul></td></tr></table>
  35907. <ul><ul>
  35908. <table>
  35909. <tr><td><code>&lt;name&gt;</code> : </td><td>Der Name dieses Berechnungs-Device. Empfehlung: "myWaterCalculator".</td></tr>
  35910. <tr><td><code>&lt;regex&gt;</code> : </td><td>Eine g&uuml;ltige Regular Expression (regex or regexp) von dem Event wo der Z&auml;hlerstand gefunden werden kann</td></tr>
  35911. </table>
  35912. </ul></ul>
  35913. <table><tr><td><ul>Beispiel: <code>define myWaterCalculator WaterCalculator myWaterCounter:countersA.*</code></ul></td></tr></table>
  35914. <BR>
  35915. <table>
  35916. <tr><td><a name="WaterCalculatorSet"></a><b>Set</b></td></tr>
  35917. <tr><td>
  35918. <ul>
  35919. Die set - Funktion erlaubt individuelle Readings zu ver&auml;ndern um beispielsweise nach einem Stromausfall Werte zu korrigieren.<BR>
  35920. Die set - Funktion funktioniert nur f&uumlr Readings welche im CalculatorDevice gespeichert wurden.<BR>
  35921. Die Readings welche im Counter - Device gespeichert wurden, m&uumlssen individuell mit <code>set</code> - Befehl gesetzt werden.<BR>
  35922. </ul>
  35923. </td></tr>
  35924. </table>
  35925. <BR>
  35926. <table>
  35927. <tr><td><a name="WaterCalculatorGet"></a><b>Get</b></td></tr>
  35928. <tr><td>
  35929. <ul>
  35930. Die get - Funktion liefert nur den Wert des jeweiligen Readings zur&uuml;ck.<BR>
  35931. Die get - Funktion funktioniert nur f&uumlr Readings welche im CalculatorDevice gespeichert wurden.<BR>
  35932. Die Readings welche im Counter - Device gespeichert wurden, m&uumlssen individuell mit <code>get</code> - Befehl ausgelesen werden.<BR>
  35933. </ul>
  35934. </td></tr>
  35935. </table>
  35936. <BR>
  35937. <table>
  35938. <tr><td><a name="WaterCalculatorAttr"></a><b>Attributes</b></td></tr>
  35939. <tr><td>
  35940. <ul>
  35941. Sollten die unten ausfeg&auuml;hrten Attribute bei der Definition eines entsprechenden Ger&auml;tes nicht gesetzt sein, so werden sie vom Modul mit Standard Werten automatisch gesetzt<BR>
  35942. Zus&auml;tzlich k&ouml;nnen die globalen Attribute wie <a href="#room">room</a> verwendet werden.<BR>
  35943. </ul>
  35944. </td></tr>
  35945. </table>
  35946. <ul><ul>
  35947. <table>
  35948. <tr>
  35949. <td>
  35950. <tr><td><li><code>BasicPricePerAnnum</code> : </li></td><td> Eine g&uuml;ltige float Zahl f&uuml;r die j&auml;hrliche Grundgeb&uuml;hr in der gew&auml;hlten W&auml;hrung f&uuml;r die Wasser-Versorgung zum Endverbraucher.<BR>
  35951. Dieser Wert stammt vom Wasserversorger und steht auf der Abrechnung.<BR>
  35952. Der Standard Wert ist 0.00<BR>
  35953. </td></tr>
  35954. </td>
  35955. </tr>
  35956. </table>
  35957. </ul></ul>
  35958. <ul><ul>
  35959. <table>
  35960. <tr>
  35961. <td>
  35962. <tr><td><li><code>Currency</code> : </li></td><td> Eines der vordefinerten W&auml;hrungssymbole: [&#8364;,&#163;,&#36;].<BR>
  35963. Der Standard Wert ist &#8364;<BR>
  35964. </td></tr>
  35965. </td>
  35966. </tr>
  35967. </table>
  35968. </ul></ul>
  35969. <ul><ul>
  35970. <table>
  35971. <tr>
  35972. <td>
  35973. <tr><td><li><code>disable</code> : </li></td><td> Deaktiviert das device. Das Modul wird nicht mehr auf die Events reagieren die durch die Regular Expression definiert wurde.<BR>
  35974. Der Standard Wert ist 0 = aktiviert.<BR>
  35975. </td></tr>
  35976. </td>
  35977. </tr>
  35978. </table>
  35979. </ul></ul>
  35980. <ul><ul>
  35981. <table>
  35982. <tr>
  35983. <td>
  35984. <tr><td><li><code>WaterCounterOffset</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r den Unterschied = Offset (Nicht der Unterschied zwischen Z&auml;hlimpulsen) zwischen dem am mechanischen Wasserz&auml;hlern und dem angezeigten Wert im Reading dieses Device.<BR>
  35985. Der Offset-Wert wird wie folgt ermittelt: W<sub>Offset</sub> = W<sub>Mechanisch</sub> - W<sub>Module</sub><BR>
  35986. Der Standard-Wert ist 0.00<BR>
  35987. </td></tr>
  35988. </td>
  35989. </tr>
  35990. </table>
  35991. </ul></ul>
  35992. <ul><ul>
  35993. <table>
  35994. <tr>
  35995. <td>
  35996. <tr><td><li><code>WaterCubicPerCounts</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r die Menge Kubik pro Z&auml;hlimpulsen.<BR>
  35997. Der Wert ist durch das mechanische Z&auml;hlwerk des Wasserz&auml;hlern vorgegeben. WaterCubicPerCounts = 0.001 bedeutet, dass jeder Z&auml;hlimpuls ein Tausendstel eines Kubik ist (=Liter).<BR>
  35998. Der Standard-Wert ist 1<BR>
  35999. </td></tr>
  36000. </td>
  36001. </tr>
  36002. </table>
  36003. </ul></ul>
  36004. <ul><ul>
  36005. <table>
  36006. <tr>
  36007. <td>
  36008. <tr><td><li><code>WaterPricePerCubic</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r den Preis pro Kubik Wasser.<BR>
  36009. <FONT COLOR="#FF0000">Hierbei müssen die Abwasserkosten mit einbezogen werden.</FONT>
  36010. Dieser Wert stammt vom Wasserversorger und steht auf der Abrechnung.<BR>
  36011. Der Standard-Wert ist 2.00<BR>
  36012. </td></tr>
  36013. </td>
  36014. </tr>
  36015. </table>
  36016. </ul></ul>
  36017. <ul><ul>
  36018. <table>
  36019. <tr>
  36020. <td>
  36021. <tr><td><li><code>MonthlyPayment</code> : </li></td><td> Eine g&uuml;ltige float-Zahl f&uuml;r die monatlichen Abschlagszahlungen in der gew&auml;hlten W&auml;hrung an den Wasserversorger.<BR>
  36022. Der Standard-Wert ist 0.00<BR>
  36023. </td></tr>
  36024. </td>
  36025. </tr>
  36026. </table>
  36027. </ul></ul>
  36028. <ul><ul>
  36029. <table>
  36030. <tr>
  36031. <td>
  36032. <tr><td><li><code>MonthOfAnnualReading</code> : </li></td><td> Eine g&uuml;ltige Ganz-Zahl f&uuml;r den Monat wenn der mechanische Wasserz&auml;hler jedes Jahr durch den Wasserversorger abgelesen wird.<BR>
  36033. Der Standard-Wert ist 5 (Mai)<BR>
  36034. </td></tr>
  36035. </td>
  36036. </tr>
  36037. </table>
  36038. </ul></ul>
  36039. <ul><ul>
  36040. <table>
  36041. <tr>
  36042. <td>
  36043. <tr><td><li><code>ReadingDestination</code> : </li></td><td> Eines der vordefinerten Device als Ziel der errechneten Readings: [CalculatorDevice,CounterDevice].<BR>
  36044. Das CalculatorDevice ist das mit diesem Modul erstellte Device.<BR>
  36045. Das CounterDevice ist das Device von welchem der mechanische Z&auml;hler ausgelesen wird.<BR>
  36046. Der Standard-Wert ist CalculatorDevice.<BR>
  36047. </td></tr>
  36048. </td>
  36049. </tr>
  36050. </table>
  36051. </ul></ul>
  36052. <ul><ul>
  36053. <table>
  36054. <tr>
  36055. <td>
  36056. <tr><td><li><code>WFRUnit</code> : </li></td><td> Ein Wert der vorgegebenen Auswahlliste: l/min (Liter/Minute), m&sup3;/min (Kubikmeter/Minute), m&sup3;/h (Kubikmeter/Stunde).<BR>
  36057. Es definiert welcher Einheit verwendet werden soll und teilt den Wasserdurchsatz entsprechend.<BR>
  36058. Der Standard-Wert ist l/min (Liter/Minute).<BR>
  36059. </td></tr>
  36060. </td>
  36061. </tr>
  36062. </table>
  36063. </ul></ul>
  36064. <BR>
  36065. <table>
  36066. <tr><td><a name="WaterCalculatorReadings"></a><b>Readings</b></td></tr>
  36067. <tr><td>
  36068. <ul>
  36069. Sobald das Device in der Lage war mindestens 2 Werte des Z&auml;hlers einzulesen, werden automatisch die entsprechenden Readings erzeugt:<BR>
  36070. Der Platzhalter <code>&lt;DestinationDevice&gt;</code> steht f&uuml;r das Device, welches man in dem Attribut <code>ReadingDestination</code> oben festgelegt hat. Dieser Platzhalter bleibt leer, sobald man dort CalculatorDevice ausgew&auml;hlt hat.<BR>
  36071. Der Platzhalter <code>&lt;SourceCounterReading&gt;</code> steht f&uuml;r das Reading welches mit der Regular Expression definiert wurde.<BR>
  36072. </ul>
  36073. </td></tr>
  36074. </table>
  36075. <ul><ul>
  36076. <table>
  36077. <tr>
  36078. <td>
  36079. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterCurrent</code> : </li></td><td>Aktueller Z&auml;hlerstand am mechanischen Z&auml;hler. Bei Unterschied muss das Offset-Attribut entspechend korrigiert werden.<BR>
  36080. </td></tr>
  36081. </td>
  36082. </tr>
  36083. </table>
  36084. </ul></ul>
  36085. <ul><ul>
  36086. <table>
  36087. <tr>
  36088. <td>
  36089. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterDay1st</code> : </li></td><td>Der erste Z&auml;hlerstand des laufenden Tages seit Mitternacht.<BR>
  36090. </td></tr>
  36091. </td>
  36092. </tr>
  36093. </table>
  36094. </ul></ul>
  36095. <ul><ul>
  36096. <table>
  36097. <tr>
  36098. <td>
  36099. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterDayLast</code> : </li></td><td>Der letzte Z&auml;hlerstand des vorherigen Tages.<BR>
  36100. </td></tr>
  36101. </td>
  36102. </tr>
  36103. </table>
  36104. </ul></ul>
  36105. <ul><ul>
  36106. <table>
  36107. <tr>
  36108. <td>
  36109. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMeter1st</code> : </li></td><td>Der erste Z&auml;hlerstand seit Mitternacht des ersten Tages der laufenden Ableseperiode.<BR>
  36110. </td></tr>
  36111. </td>
  36112. </tr>
  36113. </table>
  36114. </ul></ul>
  36115. <ul><ul>
  36116. <table>
  36117. <tr>
  36118. <td>
  36119. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMeterLast</code> : </li></td><td>Der letzte Z&auml;hlerstand seit Mitternacht des ersten Tages der vorherigen Ableseperiode.<BR>
  36120. </td></tr>
  36121. </td>
  36122. </tr>
  36123. </table>
  36124. </ul></ul>
  36125. <ul><ul>
  36126. <table>
  36127. <tr>
  36128. <td>
  36129. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMonth1st</code> : </li></td><td>Der erste Z&auml;hlerstand seit Mitternacht des ersten Tages des laufenden Monats.<BR>
  36130. </td></tr>
  36131. </td>
  36132. </tr>
  36133. </table>
  36134. </ul></ul>
  36135. <ul><ul>
  36136. <table>
  36137. <tr>
  36138. <td>
  36139. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterMonthLast</code> : </li></td><td>Der letzte Z&auml;hlerstand des vorherigen Monats.<BR>
  36140. </td></tr>
  36141. </td>
  36142. </tr>
  36143. </table>
  36144. </ul></ul>
  36145. <ul><ul>
  36146. <table>
  36147. <tr>
  36148. <td>
  36149. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterYear1st</code> : </li></td><td>Der erste Z&auml;hlerstand seit Mitternacht des ersten Tages des laufenden Jahres.<BR>
  36150. </td></tr>
  36151. </td>
  36152. </tr>
  36153. </table>
  36154. </ul></ul>
  36155. <ul><ul>
  36156. <table>
  36157. <tr>
  36158. <td>
  36159. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_CounterYearLast</code> : </li></td><td>Der letzte Z&auml;hlerstand des letzten Jahres.<BR>
  36160. </td></tr>
  36161. </td>
  36162. </tr>
  36163. </table>
  36164. </ul></ul>
  36165. <ul><ul>
  36166. <table>
  36167. <tr>
  36168. <td>
  36169. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionCostDayLast</code> : </li></td><td>Wasserkosten des letzten Tages.<BR>
  36170. </td></tr>
  36171. </td>
  36172. </tr>
  36173. </table>
  36174. </ul></ul>
  36175. <ul><ul>
  36176. <table>
  36177. <tr>
  36178. <td>
  36179. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionCostMeterLast</code> : </li></td><td>Wasserkosten der letzten Ableseperiode.<BR>
  36180. </td></tr>
  36181. </td>
  36182. </tr>
  36183. </table>
  36184. </ul></ul>
  36185. <ul><ul>
  36186. <table>
  36187. <tr>
  36188. <td>
  36189. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionCostMonthLast</code> : </li></td><td>Wasserkosten des letzten Monats.<BR>
  36190. </td></tr>
  36191. </td>
  36192. </tr>
  36193. </table>
  36194. </ul></ul>
  36195. <ul><ul>
  36196. <table>
  36197. <tr>
  36198. <td>
  36199. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionCostYearLast</code> : </li></td><td>Wasserkosten des letzten Kalenderjahres.<BR>
  36200. </td></tr>
  36201. </td>
  36202. </tr>
  36203. </table>
  36204. </ul></ul>
  36205. <ul><ul>
  36206. <table>
  36207. <tr>
  36208. <td>
  36209. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionCostDay</code> : </li></td><td>Wasserkosten in gew&auml;hlter W&auml;hrung seit Mitternacht des laufenden Tages.<BR>
  36210. </td></tr>
  36211. </td>
  36212. </tr>
  36213. </table>
  36214. </ul></ul>
  36215. <ul><ul>
  36216. <table>
  36217. <tr>
  36218. <td>
  36219. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionCostMeter</code> : </li></td><td>Wasserkosten in gew&auml;hlter W&auml;hrung seit Beginn der laufenden Ableseperiode.<BR>
  36220. </td></tr>
  36221. </td>
  36222. </tr>
  36223. </table>
  36224. </ul></ul>
  36225. <ul><ul>
  36226. <table>
  36227. <tr>
  36228. <td>
  36229. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionCostMonth</code> : </li></td><td>Wasserkosten in gew&auml;hlter W&auml;hrung seit Beginn des laufenden Monats.<BR>
  36230. </td></tr>
  36231. </td>
  36232. </tr>
  36233. </table>
  36234. </ul></ul>
  36235. <ul><ul>
  36236. <table>
  36237. <tr>
  36238. <td>
  36239. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionCostYear</code> : </li></td><td>Wasserkosten in gew&auml;hlter W&auml;hrung seit Beginn des laufenden Kalenderjahres.<BR>
  36240. </td></tr>
  36241. </td>
  36242. </tr>
  36243. </table>
  36244. </ul></ul>
  36245. <ul><ul>
  36246. <table>
  36247. <tr>
  36248. <td>
  36249. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionDay</code> : </li></td><td>Wasserverbrauch seit Beginn der aktuellen Tages (Mitternacht).<BR>
  36250. </td></tr>
  36251. </td>
  36252. </tr>
  36253. </table>
  36254. </ul></ul>
  36255. <ul><ul>
  36256. <table>
  36257. <tr>
  36258. <td>
  36259. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionDayLast</code> : </li></td><td>Wasserverbrauch in qm des vorherigen Tages.<BR>
  36260. </td></tr>
  36261. </td>
  36262. </tr>
  36263. </table>
  36264. </ul></ul>
  36265. <ul><ul>
  36266. <table>
  36267. <tr>
  36268. <td>
  36269. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionMeter</code> : </li></td><td>Wasserverbrauch seit Beginn der aktuellen Ableseperiode.<BR>
  36270. </td></tr>
  36271. </td>
  36272. </tr>
  36273. </table>
  36274. </ul></ul>
  36275. <ul><ul>
  36276. <table>
  36277. <tr>
  36278. <td>
  36279. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionMeterLast</code> : </li></td><td>Wasserverbrauch in qm der vorherigen Ableseperiode.<BR>
  36280. </td></tr>
  36281. </td>
  36282. </tr>
  36283. </table>
  36284. </ul></ul>
  36285. <ul><ul>
  36286. <table>
  36287. <tr>
  36288. <td>
  36289. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionMonth</code> : </li></td><td>Wasserverbrauch seit Beginn des aktuellen Monats.<BR>
  36290. </td></tr>
  36291. </td>
  36292. </tr>
  36293. </table>
  36294. </ul></ul>
  36295. <ul><ul>
  36296. <table>
  36297. <tr>
  36298. <td>
  36299. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionMonthLast</code> : </li></td><td>Wasserverbrauch in qm des vorherigen Monats.<BR>
  36300. </td></tr>
  36301. </td>
  36302. </tr>
  36303. </table>
  36304. </ul></ul>
  36305. <ul><ul>
  36306. <table>
  36307. <tr>
  36308. <td>
  36309. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionYear</code> : </li></td><td>Wasserverbrauch seit Beginn des aktuellen Kalenderjahres.<BR>
  36310. </td></tr>
  36311. </td>
  36312. </tr>
  36313. </table>
  36314. </ul></ul>
  36315. <ul><ul>
  36316. <table>
  36317. <tr>
  36318. <td>
  36319. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_ConsumptionYearLast</code> : </li></td><td>Wasserverbrauch in qm des vorherigen Kalenderjahres.<BR>
  36320. </td></tr>
  36321. </td>
  36322. </tr>
  36323. </table>
  36324. </ul></ul>
  36325. <ul><ul>
  36326. <table>
  36327. <tr>
  36328. <td>
  36329. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_FinanceReserve</code> : </li></td><td>Finanzielle Reserve basierend auf den Abschlagszahlungen die jeden Monat an den Wasserversorger gezahlt werden. Bei negativen Werten ist von einer Nachzahlung auszugehen.<BR>
  36330. </td></tr>
  36331. </td>
  36332. </tr>
  36333. </table>
  36334. </ul></ul>
  36335. <ul><ul>
  36336. <table>
  36337. <tr>
  36338. <td>
  36339. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_MonthMeterReading</code> : </li></td><td>Anzahl der Monate seit der letzten Zählerablesung. Der Monat der Zählerablesung ist der erste Monat = 1.<BR>
  36340. </td></tr>
  36341. </td>
  36342. </tr>
  36343. </table>
  36344. </ul></ul>
  36345. <ul><ul>
  36346. <table>
  36347. <tr>
  36348. <td>
  36349. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_WFRCurrent</code> : </li></td><td>Aktueller Wasserdurchsatz. (Wasserdurchsatz basierend auf aktueller und letzter Messung)<BR>
  36350. </td></tr>
  36351. </td>
  36352. </tr>
  36353. </table>
  36354. </ul></ul>
  36355. <ul><ul>
  36356. <table>
  36357. <tr>
  36358. <td>
  36359. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_WFRDayAver</code> : </li></td><td>Mittlerer Wasserdurchsatz seit Mitternacht.<BR>
  36360. </td></tr>
  36361. </td>
  36362. </tr>
  36363. </table>
  36364. </ul></ul>
  36365. <ul><ul>
  36366. <table>
  36367. <tr>
  36368. <td>
  36369. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_WFRDayMax</code> : </li></td><td>Maximale Wasserdurchsatz seit Mitternacht.<BR>
  36370. </td></tr>
  36371. </td>
  36372. </tr>
  36373. </table>
  36374. </ul></ul>
  36375. <ul><ul>
  36376. <table>
  36377. <tr>
  36378. <td>
  36379. <tr><td><li><code>&lt;DestinationDevice&gt;_&lt;SourceCounterReading&gt;_WFRDayMin</code> : </li></td><td>Minimale Wasserdurchsatz seit Mitternacht.<BR>
  36380. </td></tr>
  36381. </td>
  36382. </tr>
  36383. </table>
  36384. </ul></ul>
  36385. </ul>
  36386. <p><a name="Weather"></a>
  36387. <h3>Weather</h3>
  36388. <div class='langLinks'>[<a href='commandref.html#Weather'>EN</a> DE]</div>
  36389. <ul>
  36390. Es wird das Perl-Modul JSON ben&ouml;tigt. Mit <code>apt-get install libjson-perl</code> kann es unter Debian und Derivaten installiert werden.<br><br>
  36391. <a name="Weatherdefine"></a>
  36392. <b>Define</b>
  36393. <ul>
  36394. <code>define &lt;name&gt; Weather &lt;location&gt; [&lt;interval&gt; [&lt;language&gt;]]</code><br>
  36395. <br>
  36396. Bezechnet ein virtuelles Gerät fßr Wettervorhersagen.<br><br>
  36397. Eine solche virtuelle Wetterstation sammelt periodisch aktuelle und zukĂźnftige Wetterdaten aus der Yahoo-Wetter-API.<br><br>
  36398. Der Parameter <code>location</code> entspricht der sechsstelligen WOEID (WHERE-ON-EARTH-ID). Die WOEID fĂźr den eigenen Standort kann auf <a href="http://weather.yahoo.com">http://weather.yahoo.com</a> gefunden werden.<br><br>
  36399. Der optionale Parameter <code>interval</code> gibt die Dauer in Sekunden zwischen den einzelnen Aktualisierungen der Wetterdaten an. Der Standardwert ist 3600 (1 Stunde). Wird kein Wert angegeben, gilt der Standardwert.<br><br>
  36400. Der optionale Parameter fĂźr die mĂśglichen Sprachen darf einen der folgende Werte annehmen: <code>de</code>, <code>en</code>, <code>pl</code>, <code>fr</code> oder <code>nl</code>. Er bezeichnet die natĂźrliche Sprache, in der die Wetterinformationen dargestellt werden. Der Standardwert ist <code>en</code>. Wird fĂźr die Sprache kein Wert angegeben, gilt der Standardwert. Wird allerdings der Parameter fĂźr die Sprache gesetzt, muss ebenfalls ein Wert fĂźr das Abfrageintervall gesetzt werden.<br><br>
  36401. Beispiele:
  36402. <pre>
  36403. define MyWeather Weather 673513
  36404. define Forecast Weather 673513 1800
  36405. </pre>
  36406. Das Modul unterstßtzt zusätzlich vier verschiedene Funktionen <code>WeatherAsHtml</code>, <code>WeatherAsHtmlV</code>, <code>WeatherAsHtmlH</code> und <code>WeatherAsHtmlD</code>. Die ersten beiden Funktionen sind identisch: sie erzeugen den HTML-Code fßr eine vertikale Darstellung des Wetterberichtes. Die dritte Funktion liefert den HTML-Code fßr eine horizontale Darstellung des Wetterberichtes. Die letztgenannte Funktion wählt automatisch eine Ausrichtung, die abhängig davon ist, ob ein Smallcreen Style ausgewählt ist (vertikale Darstellung) oder nicht (horizontale Darstellung). Alle vier Funnktionen akzeptieren einen zusätzlichen optionalen Paramter um die Anzahl der darzustellenden Icons anzugeben.<br><br>
  36407. Beispiel:
  36408. <pre>
  36409. define MyWeatherWeblink weblink htmlCode { WeatherAsHtmlH("MyWeather") }
  36410. </pre>
  36411. </ul>
  36412. <br>
  36413. <a name="Weatherset"></a>
  36414. <b>Set </b>
  36415. <ul>
  36416. <code>set &lt;name&gt; update</code><br><br>
  36417. Erzwingt eine Abfrage der Wetterdaten. Die darauffolgende Abfrage wird gemä� dem eingestellten Intervall <code>interval</code> Sekunden später durchgefßhrt.<br><br>
  36418. </ul>
  36419. <br>
  36420. <a name="Weatherget"></a>
  36421. <b>Get</b>
  36422. <ul>
  36423. <code>get &lt;name&gt; &lt;reading&gt;</code><br><br>
  36424. GĂźltige ausgelesene Daten (readings) und ihre Bedeutung (das ? kann einen der Werte 1, 2, 3 , 4 oder 5 annehmen und steht fĂźr heute, morgen, Ăźbermorgen etc.):<br><br>
  36425. <table>
  36426. <tr><td>city</td><td>Name der Stadt, der aufgrund der WOEID Ăźbermittelt wird</td></tr>
  36427. <tr><td>code</td><td>Code fßr die aktuellen Wetterverhältnisse</td></tr>
  36428. <tr><td>condition</td><td>aktuelle Wetterverhältnisse</td></tr>
  36429. <tr><td>current_date_time</td><td>Zeitstempel der letzten Aktualisierung der Wetterdaten vom Server</td></tr>
  36430. <tr><td>fc?_code</td><td>Code fßr die vorhergesagten Wetterverhältnisse</td></tr>
  36431. <tr><td>fc?_condition</td><td>vorhergesagte Wetterverhältnisse</td></tr>
  36432. <tr><td>fc?_day_of_week</td><td>Wochentag des Tages, der durch ? dargestellt wird</td></tr>
  36433. <tr><td>fc?_high_c</td><td>vorhergesagte maximale Tagestemperatur in Grad Celsius</td></tr>
  36434. <tr><td>fc?_icon</td><td>Icon fĂźr Vorhersage</td></tr>
  36435. <tr><td>fc?_low_c</td><td>vorhergesagte niedrigste Tagestemperatur in Grad Celsius</td></tr>
  36436. <tr><td>humidity</td><td>gegenwärtige Luftfeuchtgkeit in %</td></tr>
  36437. <tr><td>icon</td><td>relativer Pfad fĂźr das aktuelle Icon</td></tr>
  36438. <tr><td>pressure</td><td>Luftdruck in hPa</td></tr>
  36439. <tr><td>pressure_trend</td><td>Luftdrucktendenz (0= gleichbleibend, 1= steigend, 2= fallend)</td></tr>
  36440. <tr><td>pressure_trend_txt</td><td>textliche Darstellung der Luftdrucktendenz</td></tr>
  36441. <tr><td>pressure_trend_sym</td><td>symbolische Darstellung der Luftdrucktendenz</td></tr>
  36442. <tr><td>temperature</td><td>gegenwärtige Temperatur in Grad Celsius</td></tr>
  36443. <tr><td>temp_c</td><td>gegenwärtige Temperatur in Grad Celsius</td></tr>
  36444. <tr><td>temp_f</td><td>gegenwärtige Temperatur in Grad Celsius</td></tr>
  36445. <tr><td>visibility</td><td>Sichtweite in km</td></tr>
  36446. <tr><td>wind</td><td>Windgeschwindigkeit in km/h</td></tr>
  36447. <tr><td>wind_chill</td><td>gefĂźhlte Temperatur in Grad Celsius</td></tr>
  36448. <tr><td>wind_condition</td><td>Windrichtung und -geschwindigkeit</td></tr>
  36449. <tr><td>wind_direction</td><td>Gradangabe der Windrichtung (0 = Nordwind)</td></tr>
  36450. <tr><td>wind_speed</td><td>Windgeschwindigkeit in km/h (mit wind identisch)</td></tr>
  36451. </table>
  36452. <br>
  36453. Die folgenden Daten helfen zu identifizieren, ob ein Workaround angeschlagen hat, der die Verwendung von
  36454. veralteten Daten auf dem entfernten Server verhindert:
  36455. <table>
  36456. <tr><td>pubDate</td><td>Ver&ouml;ffentlichungszeitpunkt der Wettervorhersage in den aktuellen Daten (readings)</td></tr>
  36457. <tr><td>pubDateRemote</td><td>Ver&ouml;ffentlichungszeitpunkt der Wettervorhersage auf dem entfernten Server</td></tr>
  36458. <tr><td>validity</td><td>stale, wenn der Ver&ouml;ffentlichungszeitpunkt auf dem entfernten Server vor dem Zeitpunkt der aktuellen Daten (readings) liegt</td></tr>
  36459. </table>
  36460. </ul>
  36461. <br>
  36462. <a name="Weatherattr"></a>
  36463. <b>Attribute</b>
  36464. <ul>
  36465. <li>disable: stellt die Abfrage der Wetterdaten ab - der Timer l&auml;ft gem&auml;&szlig Plan doch es werden keine Daten vom
  36466. API angefordert.</li>
  36467. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  36468. </ul>
  36469. <br>
  36470. </ul>
  36471. <p><a name="WeekdayTimer"></a>
  36472. <h3>WeekdayTimer</h3>
  36473. <ul>
  36474. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  36475. hier: <a href='commandref.html#WeekdayTimer'>WeekdayTimer</a><br/>
  36476. </ul>
  36477. <a name="WifiLight"></a>
  36478. <h3>WifiLight</h3>
  36479. <div class='langLinks'>[<a href='commandref.html#WifiLight'>EN</a> DE]</div>
  36480. <ul>
  36481. <p>Das Modul steuert eine gro&szlig;e Anzahl unterschiedlicher &quot;no name&quot; LED Typen und stellt Ihnen einheitliches Interface zur Verf&uuml;gung.</p>
  36482. <p>Folgende Typen werden unterstĂźtzt:</p>
  36483. <!-- <table rules="all" cellpadding="6" style="border:solid 1px;"> -->
  36484. <table>
  36485. <thead align="left">
  36486. <tr>
  36487. <th>
  36488. Leuchtmitteltyp / bridge
  36489. </th>
  36490. <th>
  36491. Type
  36492. </th>
  36493. <th>
  36494. Notiz
  36495. </th>
  36496. <th>
  36497. Signatur im define
  36498. </th>
  36499. </tr>
  36500. </thead>
  36501. <tbody>
  36502. <tr>
  36503. <td>
  36504. Milight RGB erste Generation
  36505. </td>
  36506. <td>
  36507. E27, stripe controller
  36508. </td>
  36509. <td>
  36510. *(1,2,a,C)
  36511. </td>
  36512. <td>
  36513. RGB bridge-V2|3
  36514. </td>
  36515. </tr>
  36516. <tr>
  36517. <td>
  36518. Milight RGBW1 erste Generation
  36519. </td>
  36520. <td>
  36521. RGBW stripe controller
  36522. </td>
  36523. <td>
  36524. *(1,2,a)
  36525. </td>
  36526. <td>
  36527. RGBW1 bridge-V2|3
  36528. </td>
  36529. </tr>
  36530. <tr>
  36531. <td>
  36532. Milight White
  36533. </td>
  36534. <td>
  36535. E14, E27, GU10, stripe controller, Downlight
  36536. </td>
  36537. <td>
  36538. *(1,2,b,W,nK)
  36539. </td>
  36540. <td>
  36541. White bridge-V2|3
  36542. </td>
  36543. </tr>
  36544. <tr>
  36545. <td>
  36546. Milight RGBW2 zweite Generation
  36547. </td>
  36548. <td>
  36549. E14, E27, GU10, stripe controller, Downlight
  36550. </td>
  36551. <td>
  36552. *(2,b,CW,S20)
  36553. </td>
  36554. <td>
  36555. RGBW2 bridge-V3
  36556. </td>
  36557. </tr>
  36558. <tr>
  36559. <td>
  36560. LW12 erste Generation (SSID LEDNet...)
  36561. </td>
  36562. <td>
  36563. RGB stripe controller
  36564. </td>
  36565. <td>
  36566. &nbsp;
  36567. </td>
  36568. <td>
  36569. RGB LW12
  36570. </td>
  36571. </tr>
  36572. <tr>
  36573. <td>
  36574. LW12HX (SSID HX...)
  36575. </td>
  36576. <td>
  36577. RGB stripe controller
  36578. </td>
  36579. <td>
  36580. &nbsp;
  36581. </td>
  36582. <td>
  36583. RGB LW12HX
  36584. </td>
  36585. </tr>
  36586. <tr>
  36587. <td>
  36588. LW12FC (SSID FC...)
  36589. </td>
  36590. <td>
  36591. RGB stripe controller
  36592. </td>
  36593. <td>
  36594. &nbsp;
  36595. </td>
  36596. <td>
  36597. RGB LW12FC
  36598. </td>
  36599. </tr>
  36600. <tr>
  36601. <td>
  36602. LD316 im RGB mode
  36603. </td>
  36604. <td>
  36605. E27
  36606. </td>
  36607. <td>
  36608. &nbsp;
  36609. </td>
  36610. <td>
  36611. RGB LD316
  36612. </td>
  36613. </tr>
  36614. <tr>
  36615. <td>
  36616. LD316 im RGBW mode
  36617. </td>
  36618. <td>
  36619. E27
  36620. </td>
  36621. <td>
  36622. *(S20)
  36623. </td>
  36624. <td>
  36625. RGBW LD316
  36626. </td>
  36627. </tr>
  36628. <tr>
  36629. <td>
  36630. LD316A im RGBW mode
  36631. </td>
  36632. <td>
  36633. E27
  36634. </td>
  36635. <td>
  36636. *(S20)
  36637. </td>
  36638. <td>
  36639. RGBW LD316A
  36640. </td>
  36641. </tr>
  36642. <tr>
  36643. <td>
  36644. LD382 im RGB mode
  36645. </td>
  36646. <td>
  36647. RGB stripe controller
  36648. </td>
  36649. <td>
  36650. &nbsp;
  36651. </td>
  36652. <td>
  36653. RGB LD382
  36654. </td>
  36655. </tr>
  36656. <tr>
  36657. <td>
  36658. LD382 im RGBW mode
  36659. </td>
  36660. <td>
  36661. RGBW stripe controller
  36662. </td>
  36663. <td>
  36664. &nbsp;
  36665. </td>
  36666. <td>
  36667. RGBW LD382
  36668. </td>
  36669. </tr>
  36670. <tr>
  36671. <td>
  36672. LD382A (FW 1.0.6) im RGB mode
  36673. </td>
  36674. <td>
  36675. RGB stripe controller
  36676. </td>
  36677. <td>
  36678. &nbsp;
  36679. </td>
  36680. <td>
  36681. RGB LD382
  36682. </td>
  36683. </tr>
  36684. <tr>
  36685. <td>
  36686. LD382A (FW 1.0.6) im RGBW mode
  36687. </td>
  36688. <td>
  36689. RGBW stripe controller
  36690. </td>
  36691. <td>
  36692. &nbsp;
  36693. </td>
  36694. <td>
  36695. RGBW LD382
  36696. </td>
  36697. </tr>
  36698. <tr>
  36699. <td>
  36700. SENGLED
  36701. </td>
  36702. <td>
  36703. E27 mit WLAN repeater
  36704. </td>
  36705. <td>
  36706. &nbsp;
  36707. </td>
  36708. <td>
  36709. White Sengled
  36710. </td>
  36711. </tr>
  36712. <tr>
  36713. <td>
  36714. SUNRICHER mit RGBW
  36715. </td>
  36716. <td>
  36717. Controller
  36718. </td>
  36719. <td>
  36720. *(!!!)
  36721. </td>
  36722. <td>
  36723. RGBW Sunricher
  36724. </td>
  36725. </tr>
  36726. </tbody>
  36727. </table>
  36728. <p>
  36729. <small>
  36730. (1) milght brigbe V2, V3, V4<br />
  36731. (2) milight bridge V3, V4<br />
  36732. (a) eine Gruppe pro bridge<br />
  36733. (b) vier unabh&auml;ngige Gruppen pro bridge<br />
  36734. (nK) kein Temperatursupport, Kelvin<br />
  36735. (C) rein Color<br />
  36736. (W) rein White<br />
  36737. (CW) rein Color oder White<br />
  36738. (S20) Saturation &lt;20: umschalten white Channel<br />
  36739. (!!!) EXPERIMENTAL<br />
  36740. </p>
  36741. </small>
  36742. <p>
  36743. <table>
  36744. <tr>
  36745. <td>
  36746. <p><b>Farbangaben</b></p>
  36747. <p>Farben kĂśnnen im RGB oder im HSV Farbraum angegeben werden.</p>
  36748. <p>Farbangaben im <a name="WifiLight_Farbraum_HSV"><b>Farbraum "HSV"</b></a> sind vollständig und in der Regel intuitiver als RGB.</p>
  36749. <p><b>H</b> (HUE: 0..360) gibt die Grundfarbe in einem Farbkreis an.
  36750. <ul>
  36751. <li>Rot liegt bei 0°</li>
  36752. <li>Grßn bei 120°</li>
  36753. <li>Blau bei 240°</li>
  36754. </ul>
  36755. </p>
  36756. <p><b>S</b> (Saturation/Sättigung: 0..100) steht fßr die Sättigung der Farbe. Eine Sättigung von 100 bedeutet die Farbe ist "rein" oder komplett gesättigt. Blau zum Beispiel mit 100% Sättigung entspricht RGB #0000FF.</p>
  36757. <p><b>V</b> (Value: 0..100) gibt die Helligkeit an. Ein V von 50 hei�t: "halbe Helligkeit".</p>
  36758. </td>
  36759. <td>
  36760. <a name="WifiLight_Farbkreis">
  36761. <svg style="width:450px; height:320px;" viewBox="-100 -30 500 320">
  36762. <linearGradient id="linearColors1" x1="0" y1="0" x2="1" y2="1">
  36763. <stop offset="0%" stop-color="#FF0000"></stop>
  36764. <stop offset="100%" stop-color="#FFFF00"></stop>
  36765. </linearGradient>
  36766. <linearGradient id="linearColors2" x1="0.5" y1="0" x2="0.5" y2="1">
  36767. <stop offset="0%" stop-color="#FFFF00"></stop>
  36768. <stop offset="100%" stop-color="#00FF00"></stop>
  36769. </linearGradient>
  36770. <linearGradient id="linearColors3" x1="1" y1="0" x2="0" y2="1">
  36771. <stop offset="0%" stop-color="#00FF00"></stop>
  36772. <stop offset="100%" stop-color="#00FFFF"></stop>
  36773. </linearGradient>
  36774. <linearGradient id="linearColors4" x1="1" y1="1" x2="0" y2="0">
  36775. <stop offset="0%" stop-color="#00FFFF"></stop>
  36776. <stop offset="100%" stop-color="#0000FF"></stop>
  36777. </linearGradient>
  36778. <linearGradient id="linearColors5" x1="0.5" y1="1" x2="0.5" y2="0">
  36779. <stop offset="0%" stop-color="#0000FF"></stop>
  36780. <stop offset="100%" stop-color="#FF00FF"></stop>
  36781. </linearGradient>
  36782. <linearGradient id="linearColors6" x1="0" y1="1" x2="1" y2="0">
  36783. <stop offset="0%" stop-color="#FF00FF"></stop>
  36784. <stop offset="100%" stop-color="#FF0000"></stop>
  36785. </linearGradient>
  36786. <linearGradient id="linearColors7" x1="152" y1="130" x2="152" y2="35" gradientUnits="userSpaceOnUse">
  36787. <stop offset="0.2" stop-color="#FFFFFF"></stop>
  36788. <stop offset="1" stop-color="#FF0000"></stop>
  36789. </linearGradient>
  36790. <linearGradient id="linearColors8" x1="152" y1="130" x2="230" y2="190" gradientUnits="userSpaceOnUse">
  36791. <stop offset="0.2" stop-color="#FFFFFF"></stop>
  36792. <stop offset="1" stop-color="#00FF00"></stop>
  36793. </linearGradient>
  36794. <linearGradient id="linearColors9" x1="152" y1="130" x2="70" y2="190" gradientUnits="userSpaceOnUse">
  36795. <stop offset="0.2" stop-color="#FFFFFF"></stop>
  36796. <stop offset="1" stop-color="#0000FF"></stop>
  36797. </linearGradient>
  36798. <marker id="markerArrow" markerWidth="13" markerHeight="13" refX="2" refY="6" orient="auto">
  36799. <path d="M2,2 L2,11 L10,6 L2,2" style="fill:grey;" />
  36800. </marker>
  36801. <path d="M150 10 a120 120 0 0 1 103.9230 60" fill="none" stroke="url(#linearColors1)" stroke-width="20" />
  36802. <path d="M253.9230 70 a120 120 0 0 1 0 120" fill="none" stroke="url(#linearColors2)" stroke-width="20" />
  36803. <path d="M253.9230 190 a120 120 0 0 1 -103.9230 60" fill="none" stroke="url(#linearColors3)" stroke-width="20" />
  36804. <path d="M150 250 a120 120 0 0 1 -103.9230 -60" fill="none" stroke="url(#linearColors4)" stroke-width="20" />
  36805. <path d="M46.077 190 a120 120 0 0 1 0 -120" fill="none" stroke="url(#linearColors5)" stroke-width="20" />
  36806. <path d="M46.077 70 a120 120 0 0 1 103.9230 -60" fill="none" stroke="url(#linearColors6)" stroke-width="20" />
  36807. <path d="M150,50 C250,50 250,180 180,200" fill="none" stroke="grey" stroke-width="2" marker-end="url(#markerArrow)" />
  36808. <text class="Label" x="126" y="208">HUE</text>
  36809. <line x1="152" y1="130" x2="152" y2="35" stroke="url(#linearColors7)" stroke-width="4" />
  36810. <line x1="136" y1="120" x2="136" y2="45" stroke="grey" stroke-width="2" marker-end="url(#markerArrow)" />
  36811. <text class="Label" x="96" y="96">SAT</text>
  36812. <line x1="152" y1="130" x2="230" y2="190" stroke="url(#linearColors8)" stroke-width="4" />
  36813. <line x1="152" y1="130" x2="70" y2="190" stroke="url(#linearColors9)" stroke-width="4" />
  36814. <text x="120" y="-10">0° (Rot)</text>
  36815. <text x="270" y="60">60° (Gelb)</text>
  36816. <text x="270" y="220">120° (Grßn)</text>
  36817. <text x="110" y="285">180° (Cyan)</text>
  36818. <text x="-60" y="220">240° (Blau)</text>
  36819. <text x="-90" y="60">300° (Magenta)</text>
  36820. </svg>
  36821. </a>
  36822. </td>
  36823. </tr>
  36824. </table>
  36825. </p>
  36826. <p><b>Farbangaben: HSV gegenĂźber RGB</b><p>
  36827. <p>
  36828. Im Normalfall kann eine Farbe im HSV Farbraum genauso wie im RGB Farbraum dargestellt werden.
  36829. <p>
  36830. Farben im HSV Farbraum wirken meist verständlicher.
  36831. Um ein GrĂźn im HSV Farbraum etwas mehr in Richtung CYAN zu bewegen wird einfach der HUE Wert (Winkel) etwas erhĂśht.
  36832. Im RGB Farbraum ist die gleiche Aufgabe weniger intuitiv durch eine ErhĂśhung von BLAU zu erreichen.
  36833. <p>
  36834. Unterschiede werden jedoch bei Transitions deutlich.
  36835. Um BLAU langsam auf zu dimmen lauten die HSV Transitions 240,100,0 -> 240,100,100.
  36836. Um von ROT (Helligkeit 0) langsam auf BLAU zu dimmen wird im HSV Farbraum 0,100,0 -> 240,100,100 verwendet.
  36837. Im RGB Farbraum (#000000 -> #0000FF) kann nicht zwischen den beiden Varianten unterschieden werden.
  36838. Hier wßrde (richtiger weise, vermutlich jedoch anders als beabsichtigt) in beiden Fällen ein Wei� (Helligkeit 0) als Startwert erscheinen.
  36839. </p>
  36840. <p><b>Define</b></p>
  36841. <ul>
  36842. <li>
  36843. <p><code>define &lt;name&gt; WifiLight &lt;Leuchtmitteltyp&gt; &lt;bridgetyp&gt;:&lt;IP|FQDN&gt;</code></p>
  36844. <p>
  36845. <i><u>Beispiele</u></i>
  36846. <ul>
  36847. <p>
  36848. <i>definiert einen milight RGBW2 Leuchtmittel (Bulb oder LED stripe controller) an einer milight bridge Version 3 oder 4.
  36849. Die LED wird den maximal 4 verf&uuml;gbaren Gruppen pro bridge in der Reihenfolge der Definition zugeordnet:</i>
  36850. <br/>
  36851. <code>define wz.licht.decke WifiLight RGBW2 bridge-V3:192.168.178.142</code>
  36852. </ul>
  36853. <ul>
  36854. <p>
  36855. <i>definiert einen LD382A Controller mit RGBW Stripe:</i>
  36856. <br/>
  36857. <code>define wz.licht.decke WifiLight RGBW LD382A:192.168.178.142</code>
  36858. </ul>
  36859. <ul>
  36860. <p>
  36861. <i>definiert einen LD382A Controller mit RGB Stripe:</i>
  36862. <br/>
  36863. <code>define wz.licht.decke WifiLight RGB LD382A:192.168.178.142</code>
  36864. </ul>
  36865. <p>WifiLight verfĂźgt Ăźber eine <a href="#WifiLight_Farbkalibrierung">"Farbkalibrierung"</a>. Sinnvollerweise sollte nach einem Leuchtmitteltausch oder einem define eine Kalibrierung vorgenommen werden.</p>
  36866. </ul>
  36867. </li>
  36868. <p><b>Set</b></p>
  36869. <ul>
  36870. <li>
  36871. <p><code>set &lt;name&gt; <b>on</b> [ramp]</code></p>
  36872. <p>Schaltet das device ein. Dabei wird entweder 100% Wei� oder die im Attribut "defaultColor" definierte Farbe gewählt.
  36873. <p>Erweiterte Parameter:
  36874. <ul>
  36875. <li>ramp</li>
  36876. </ul>
  36877. </p>
  36878. </li>
  36879. <li>
  36880. <p><code>set &lt;name&gt; <b>off</b> [ramp]</code></p>
  36881. <p>Schaltet das device aus.
  36882. <p>Erweiterte Parameter:
  36883. <ul>
  36884. <li>ramp</li>
  36885. </ul>
  36886. </p>
  36887. </li>
  36888. <li>
  36889. <p><code>set &lt;name&gt; <b>dimup</b></code></p>
  36890. <p>ErhĂśht die Helligkeit um einen festen Betrag. Dabei wird der im Attribut "dimStep" definierte Wert oder der Default "7" angewendet.<br>Dieser Befehl eignet sich besonders um die Helligkeit Ăźber einen Wandschalter oder eine Fernbedienung zu erhĂśhen.
  36891. <p>Erweiterte Parameter:
  36892. <ul>
  36893. <li>keine</li>
  36894. </ul>
  36895. </p>
  36896. </li>
  36897. <li>
  36898. <p><code>set &lt;name&gt; <b>dimdown</b></code></p>
  36899. <p>Verringert die Helligkeit um einen festen Betrag. Dabei wird der im Attribut "dimStep" definierte Wert oder der Default "7" angewendet.<br>Dieser Befehl eignet sich besonders um die Helligkeit Ăźber einen Wandschalter oder eine Fernbedienung zu verringern
  36900. <p>Erweiterte Parameter:
  36901. <ul>
  36902. <li>keine</li>
  36903. </ul>
  36904. </p>
  36905. </li>
  36906. <li>
  36907. <p><code>set &lt;name&gt; <b>dim</b> level [ramp] [q]</code></p>
  36908. <p>Setzt die Helligkeit auf den angegebenen level (0..100).<br>Dieser Befehl behält au�erdem die eingestellte Farbe auch bei "dim 0" (ausgeschaltet) und nachfolgendem "dim xx" (eingeschaltet) bei. Daher stellt er eine alternative Form zu "off" / "on" dar. Letzteres wßrde immer die "defaultColor" wählen.
  36909. <p>Erweiterte Parameter:
  36910. <ul>
  36911. <li>ramp</li>
  36912. </ul>
  36913. </p>
  36914. <p>Flags:
  36915. <ul>
  36916. <li>q</li>
  36917. </ul>
  36918. </p>
  36919. </li>
  36920. <li>
  36921. <p><code>set &lt;name&gt; <b>HSV</b> H,S,V [ramp] [s|l|q] [event]</code></p>
  36922. <p>Setzt die Farbe im <a href="#WifiLight_Farbraum_HSV">HSV Farbraum</a>. Wenn die ramp (als Zeit in Sekunden) angegeben ist, berechnet das modul einen weichen FarbĂźbergang von der aktuellen Farbe zur neu gesetzten.
  36923. <ul><i>Beispiel, setzt ein gesättigtes Blau mit halber Helligkeit:</i><br /><code>set wz.licht.decke HSV 240,100,50</code></ul>
  36924. <p>Erweiterte Parameter:
  36925. <ul>
  36926. <li>ramp</li>
  36927. </ul>
  36928. </p>
  36929. <p>Flags:
  36930. <ul>
  36931. <li>s l q event</li>
  36932. </ul>
  36933. </p>
  36934. </li>
  36935. <li>
  36936. <p><code>set &lt;name&gt; <b>RGB</b> RRGGBB [ramp] [l|s|q] [event]</code></p>
  36937. <p>Setzt die Farbe im RGB Farbraum.
  36938. <p>Erweiterte Parameter:
  36939. <ul>
  36940. <li>ramp</li>
  36941. </ul>
  36942. </p>
  36943. <p>Flags:
  36944. <ul>
  36945. <li>s l q event</li>
  36946. </ul>
  36947. </p>
  36948. </ul>
  36949. </li>
  36950. <p><b>Bedeutung der Flags</b></p>
  36951. Bestimmte Befehle (set) kĂśnnen mit speziellen Flags versehen werden.
  36952. <p>
  36953. <ul>
  36954. <li>ramp:
  36955. <ul>
  36956. Zeit in Sekunden fßr einen weichen Farb- oder Helligkeitsßbergang. Der weiche �bergang startet bei der aktuell sichtbaren Farbe und wird zur angegeben berechnet.
  36957. </ul>
  36958. </li>
  36959. <li>s:
  36960. <ul>
  36961. (short, default). Ein weicher �bergang zu einer anderen Farbe wird im <a href="#WifiLight_Farbkreis">"Farbkreis"</a> auf dem kßrzesten Weg durchgefßhrt.</br>
  36962. Eine Transition von ROT nach GR�N fßhrt auf dem kßrzesten Weg ßber GELB.
  36963. </ul>
  36964. </li>
  36965. <li>l:
  36966. <ul>
  36967. (long). Ein weicher �bergang zu einer anderen Farbe wird im <a href="#WifiLight_Farbkreis">"Farbkreis"</a> auf dem "langen" Weg durchgefßhrt.</br>
  36968. Eine Transition von ROT nach GR�N fßhrt dann ßber MAGENTA, BLAU, und CYAN.
  36969. </ul>
  36970. </li>
  36971. <li>q:
  36972. <ul>
  36973. (queue). Kommandos mit diesem Flag werden in einer internen Warteschlange zwischengespeichert und erst ausgefßhrt nachdem die aktuell laufenden weichen �bergänge
  36974. abgearbeitet wurden. Kommandos ohne das Flag werden sofort abgearbeitet. Dabei werden alle laufenden �bergänge sofort abgebrochen und die Warteschlange wird gelÜscht.
  36975. </ul>
  36976. </li>
  36977. <li>event:
  36978. <ul>
  36979. Beliebige Bezeichnung ([A-Za-z_0-9])
  36980. <p>
  36981. WifiLight erzeugt bei Verwendung dieses Flags im Verlauf weicher �bergange zu einer anderen Farbe Nachrichten (events) in der Form:
  36982. <p>
  36983. <code>WifiLight &ltNAME&gt programm: &ltEVENT&gt &ltXX&gt</code>.
  36984. <p>
  36985. &ltEVENT&gt entspricht dem Namen so wie im Flag angegeben.<br/>
  36986. &ltXX&gt ist der prozentuale Fortschritt des �bergangs.<br/>
  36987. <p>
  36988. Je nach Gesamtdauer des �bergangs werden die Werte von 0 bis 100 nicht komplett durchlaufen wobei jedoch fßr 0% und 100% immer ein event garantiert ist. Auf diese events kann dann innerhalb von notify oder DOIF reagiert werden um zum Beispiel:
  36989. <ul>
  36990. <li>die Lautstärke eines Radios anzupassen wenn eine LED morgens langsam hochgedimmt wird</li>
  36991. <li>ein FarbĂźbergang kann in einem notify neu gestartet werden wenn er komplett ist (loop)</li>
  36992. <li>andere Leuchtmittel kÜnnen mit erstellten Farbßbergängen synchronisiert werden</li>
  36993. </ul>
  36994. </ul>
  36995. </li>
  36996. </ul>
  36997. <p><b><a name="WifiLight_Farbkalibrierung"></a>Farbkalibrierung</b></p>
  36998. WifiLight unterstĂźtzt zwei unterschiedliche Formen der Farbkalibrierungen:
  36999. <ul>
  37000. <p>
  37001. <b>Korrektur gesättigter Farben</b>
  37002. <p>
  37003. Hintergrund:
  37004. <p>
  37005. GELB, zum Beispiel, ist definiert als Mischung aus ROTEM und GR�NEM Licht zu gleichen Teilen.
  37006. Je nach verwendeter LED und Ansteuerung ist der GR�NE Kanal nun mÜglicherweise viel leuchtstärker.
  37007. Wenn jetzt also die ROTE und GR�NE LED jeweils voll angesteuert werden ßberwiegt GR�N in dieser Mischung und das gewßnschte GELB bekäme einen deutlichen Grßnstich.
  37008. In diesem Beispiel wßrde jetzt fßr HSV 60,100,100 kein Gelb (entsprechend 60° im <a href="#WifiLight_Farbkreis">"Farbkreis"</a>) erzeugt.
  37009. Stattdessen wßrde GR�N mit GELBSTICH erzeugt das vielleicht einem geschätzten Farbwinkel von 80° entspricht.
  37010. Die erforderliche Korrektur fßr GELB wßrde also minus 20° betragen (60° SOLL - 80° IST = -20° Korrektur).
  37011. GELB mßsste als um -20° korrigiert werden. MÜgliche Werte pro Korrektur-Punkt sind +/- 29°.
  37012. <p>
  37013. Vorgehen:
  37014. <p>
  37015. Die Korrektur der Vollfarben wird Ăźber das Attribut "colorCast" gesteuert. Dabei werden 6 (Komma getrennte) Werte im Bereich -29 bis 29 angegeben.
  37016. Diese Werte stehen entsprechen der Winkelkorrektur fßr ROT (0°), GELB (60°), GR�N (120°), CYAN (180°), BLAU (240°) und MAGENTA (300°).
  37017. Zuerst sollte die Abweichung fßr 60°/180°/300° (die Mischfarben) so wie in obigem Beispiel ermittelt und im Attribut hinterlegt werden.
  37018. Im Anschluss sollten die Primärfarben (0°/120°/240°) so korrigiert werden das die weichen �bergänge zwischen benachbarten reinen Farben mÜglichst linear erscheinen.
  37019. Dieser Vorgang muss eventuell iterativ mehrfach wiederholt werden bis das Ergebniss stimmig ist.
  37020. <p>
  37021. <b>Wei�abgleich</b>
  37022. <p>
  37023. Hintergrund:
  37024. <p>
  37025. Einige Leuchtmittel erzeugen wei�es Licht durch Mischung der RGB Kanäle (zum Beispiel LW12).
  37026. Je nach Leuchtstärke der RGB Kanäle der verwendeten LED Streifen unterscheidet sich das Ergebnis und eine oder zwei Farben dominieren.
  37027. Zusätzlich gibt es verschiedene Formen wei�en Lichtes. Kaltes Licht hat einen hÜheren Blauanteil.
  37028. Dagegen wird in Mitteleuropa fßr Leuchtmittel meist warm-wei� verwendet welches einen hohen ROT- und geringen BLAU Anteil hat.
  37029. <p>
  37030. WifiLight bietet die MÜglichkeit bei RGB gemischtem Wei� die Zusammensetzung anzupassen. Die Anpassung erfolgt ßber das Attribut "whitePoint".
  37031. Dieses erwartet fßr jeden der drei RGB Kanäle einen Wert zwischen 0 und 1 (ein Komma wird als Punkt angegeben). Die drei Werte werden mit einem normalen Komma getrennt.
  37032. <p>
  37033. Vorgehen:
  37034. <p>
  37035. Eine Angabe von "1,1,1" setzt alle die drei Kanäle auf jeweils 100%. Angenommen der BLAU Anteil des wei�en Lichtes soll nun verringert werden.
  37036. Ein Wert von "1,1,0.5" setzt den dritten Kanal (BLAU) bei Wei� auf 0.5 entsprechend 50%. Vor einem Wei�abgleich sollte die Korrektur der Vollfarben abgeschlossen sein.
  37037. </ul>
  37038. <p><b>Attribute</b></p>
  37039. <ul>
  37040. <li>
  37041. <code>attr &ltname&gt <b>colorCast</b> &ltR,Y,G,C,B,M&gt</code>
  37042. <p>
  37043. <a href="#WifiLight_Farbkalibrierung">Farbkalibrierung</a> der voll gesättigten Farben.
  37044. R(ed), Y(ellow), G(reen), C(yan), B(lue), M(agenta) im Bereich +/- 29
  37045. </li>
  37046. <li>
  37047. <code>attr &ltname&gt <b>defaultColor</b> &ltH,S,V&gt</code>
  37048. <p>
  37049. HSV Angabe der Lichtfarbe die bei "on" gewählt wird. Default ist Wei�.
  37050. </li>
  37051. <li>
  37052. <code>attr &ltname&gt <b>defaultRamp</b> &lt0 bis X&gt</code>
  37053. <p>
  37054. Zeit in Sekunden. Wenn dieses Attribut gesetzt ist wird implizit immer ein weicher �bergang erzeugt wenn keine Ramp im set angegeben ist.
  37055. </li>
  37056. <li>
  37057. <code>attr &ltname&gt <b>dimStep</b> &lt0 bis 100&gt</code>
  37058. <p>
  37059. Wert um den die Helligkeit bei dimUp und dimDown verändert wird. Default 7.
  37060. </li>
  37061. <li>
  37062. <code>attr &ltname&gt <b>gamma</b> &ltX.X&gt</code>
  37063. <p>
  37064. Das menschliche Auge nimmt Helligkeitsänderungen sehr unterschiedlich wahr (logarithmisch).
  37065. Bei geringer Ausgangshelligkeit wird schon eine kleine Helligkeitsänderung als sehr stark empfunden und auf der anderen Seite sind bei gro�er Helligkeit starke �nderungen notwendig.
  37066. Daher ist eine logarithmische Korrektur des Helligkeitsanstiegs der Leuchtmittel erforderlich damit der Anstieg als gleichmä�ig empfunden wird.
  37067. Einige controller fßhren diese Korrektur intern durch. In anderen Fällen ist es notwendig diese Korrektur im Modul zu hinterlegen.
  37068. Ein gamma Wert von 1.0 (default) fĂźhrt zu einer linearen Ausgabe der Werte. Werte kleiner als 1.0 fĂźhren zu einer logarithmischem Korrektur.
  37069. </li>
  37070. <li>
  37071. <code>attr &ltname&gt <b>whitePoint</b> &ltR,G,B&gt</code>
  37072. <p>
  37073. <a href="#WifiLight_Farbkalibrierung">Farbkalibrierung</a> fßr RGB gemischtes wei�es Licht.
  37074. </li>
  37075. <li>
  37076. <code>attr &ltname&gt <b><a href="#readingFnAttributes">readingFnAttributes</a></b></code>
  37077. </li>
  37078. </ul>
  37079. <p><b>Farbiges Icon fĂźr FhemWeb</b>
  37080. <ul>
  37081. <p>
  37082. Um ein farbiges Icon fĂźr <a href="#FHEMWEB">FhemWeb</a> zu aktivieren muss das folgende Attribut gesetzt sein:
  37083. <p>
  37084. <li>
  37085. <code>attr &ltname&gt <b>devStateIcon</b> {Color_devStateIcon(ReadingsVal($name,"RGB","000000"))}</code>
  37086. </li>
  37087. </ul>
  37088. <p><b>Colorpicker fĂźr FhemWeb</b>
  37089. <ul>
  37090. <p>
  37091. Um den Color-Picker fĂźr <a href="#FHEMWEB">FhemWeb</a> zu aktivieren mĂźssen folgende Attribute gesetzt werden:
  37092. <p>
  37093. <li>
  37094. <code>attr &ltname&gt <b>webCmd</b> RGB</code>
  37095. </li>
  37096. <li>
  37097. <code>attr &ltname&gt <b>widgetOverride</b> RGB:colorpicker,RGB</code>
  37098. </li>
  37099. </ul>
  37100. </ul>
  37101. <p><a name="Wunderground" id="Wunderground"></a>
  37102. <h3>Wunderground</h3>
  37103. <div class='langLinks'>[<a href='commandref.html#Wunderground'>EN</a> DE]</div>
  37104. <ul>
  37105. Eine deutsche Version der Dokumentation ist derzeit nicht vorhanden. Die englische Version ist hier zu finden:
  37106. </ul>
  37107. <ul>
  37108. <a href='http://fhem.de/commandref.html#Wunderground'>Wunderground</a>
  37109. </ul>
  37110. <p><a name="X10"></a>
  37111. <h3>X10</h3>
  37112. <ul>
  37113. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37114. hier: <a href='commandref.html#X10'>X10</a><br/>
  37115. </ul>
  37116. <a name="XBMC"></a>
  37117. <h3>XBMC</h3>
  37118. <ul>
  37119. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37120. hier: <a href='commandref.html#XBMC'>XBMC</a><br/>
  37121. </ul>
  37122. <a name="XiaomiBTLESens"></a>
  37123. <h3>Xiaomi BTLE Sensor</h3>
  37124. <div class='langLinks'>[<a href='commandref.html#XiaomiBTLESens'>EN</a> DE]</div>
  37125. <ul>
  37126. <u><b>XiaomiBTLESens - liest Daten von einem Xiaomi BTLE Sensor</b></u>
  37127. <br />
  37128. Dieser Modul liest Daten von einem Sensor und legt sie in den Readings ab.<br />
  37129. Auf dem (Linux) FHEM-Server werden gatttool und hcitool vorausgesetzt. (sudo apt install bluez)
  37130. <br /><br />
  37131. <a name="XiaomiBTLESensdefine"></a>
  37132. <b>Define</b>
  37133. <ul><br />
  37134. <code>define &lt;name&gt; XiaomiBTLESens &lt;BT-MAC&gt;</code>
  37135. <br /><br />
  37136. Beispiel:
  37137. <ul><br />
  37138. <code>define Weihnachtskaktus XiaomiBTLESens C4:7C:8D:62:42:6F</code><br />
  37139. </ul>
  37140. <br />
  37141. Der Befehl legt ein Device vom Typ XiaomiBTLESens an mit dem Namen Weihnachtskaktus und der Bluetooth MAC C4:7C:8D:62:42:6F.<br />
  37142. Nach dem Anlegen des Device und setzen des korrekten model Attributes werden umgehend und automatisch die aktuellen Daten vom betroffenen Xiaomi BTLE Sensor gelesen.
  37143. </ul>
  37144. <br /><br />
  37145. <a name="XiaomiBTLESensreadings"></a>
  37146. <b>Readings</b>
  37147. <ul>
  37148. <li>state - Status des BTLE Sensor oder eine Fehlermeldung falls Fehler beim letzten Kontakt auftraten.</li>
  37149. <li>batteryState - aktueller Batterie-Status in Abhängigkeit vom Wert batteryLevel.</li>
  37150. <li>batteryPercent - aktueller Ladestand der Batterie in Prozent.</li>
  37151. <li>fertility - Wert des Fruchtbarkeitssensors (Bodenleitf&auml;higkeit)</li>
  37152. <li>firmware - aktuelle Firmware-Version des BTLE Sensor</li>
  37153. <li>lastGattError - Fehlermeldungen vom gatttool</li>
  37154. <li>lux - aktuelle Lichtintensit&auml;t</li>
  37155. <li>moisture - aktueller Feuchtigkeitswert</li>
  37156. <li>temperature - aktuelle Temperatur</li>
  37157. </ul>
  37158. <br /><br />
  37159. <a name="XiaomiBTLESensset"></a>
  37160. <b>Set</b>
  37161. <ul>
  37162. <li>resetBatteryTimestamp - wenn die Batterie gewechselt wurde</li>
  37163. <li>devicename - setzt einen Devicenamen</li>
  37164. <br />
  37165. </ul>
  37166. <br /><br />
  37167. <a name="XiaomiBTLESensGet"></a>
  37168. <b>Get</b>
  37169. <ul>
  37170. <li>sensorData - aktive Abfrage der Sensors Werte</li>
  37171. <li>devicename - liest den Devicenamen aus</li>
  37172. <li>firmware - liest die Firmeware aus</li>
  37173. <br />
  37174. </ul>
  37175. <br /><br />
  37176. <a name="XiaomiBTLESensattribut"></a>
  37177. <b>Attribute</b>
  37178. <ul>
  37179. <li>disable - deaktiviert das Device</li>
  37180. <li>interval - Interval in Sekunden zwischen zwei Abfragen</li>
  37181. <li>disabledForIntervals - deaktiviert das Gerät fßr den angegebenen Zeitinterval (13:00-18:30 or 13:00-18:30 22:00-23:00)</li>
  37182. <li>minFertility - min Fruchtbarkeits-Grenzwert f&uuml;r ein Ereignis minFertility low </li>
  37183. <li>hciDevice - Auswahl bei mehreren Bluetooth Dongeln</li>
  37184. <li>model - setzt das Model</li>
  37185. <li>maxFertility - max Fruchtbarkeits-Grenzwert f&uuml;r ein Ereignis maxFertility high </li>
  37186. <li>minMoisture - min Feuchtigkeits-Grenzwert f&uuml;r ein Ereignis minMoisture low </li>
  37187. <li>maxMoisture - max Feuchtigkeits-Grenzwert f&uuml;r ein Ereignis maxMoisture high </li>
  37188. <li>minTemp - min Temperatur-Grenzwert f&uuml;r ein Ereignis minTemp low </li>
  37189. <li>maxTemp - max Temperatur-Grenzwert f&uuml;r ein Ereignis maxTemp high </li>
  37190. <li>minlux - min Helligkeits-Grenzwert f&uuml;r ein Ereignis minlux low </li>
  37191. <li>maxlux - max Helligkeits-Grenzwert f&uuml;r ein Ereignis maxlux high
  37192. <br /><br />Beispiele f&uuml;r min/max-Ereignisse:<br />
  37193. 2017-03-16 11:08:05 XiaomiBTLESens Dracaena minMoisture low<br />
  37194. 2017-03-16 11:08:06 XiaomiBTLESens Dracaena maxTemp high<br /><br /></li>
  37195. <li>sshHost - FQDN oder IP-Adresse eines entfernten SSH-Systems. Das SSH-System ist auf eine Zertifikat basierte Authentifizierung zu konfigurieren. Am elegantesten geschieht das mit einer .ssh/config Datei auf dem SSH-Client.</li>
  37196. <li>batteryFirmwareAge - wie alt soll der Timestamp des Readings sein bevor eine Aktuallisierung statt findet</li>
  37197. <li>blockingCallLoglevel - Blocking.pm Loglevel fĂźr BlockingCall Logausgaben</li>
  37198. </ul>
  37199. </ul>
  37200. <p><a name="XiaomiDevice"></a>
  37201. <h3>XiaomiDevice</h3>
  37202. <ul>
  37203. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37204. hier: <a href='commandref.html#XiaomiDevice'>XiaomiDevice</a><br/>
  37205. </ul>
  37206. <a name="XiaomiFlowerSens"></a>
  37207. <h3>Xiaomi Flower Monitor</h3>
  37208. <div class='langLinks'>[<a href='commandref.html#XiaomiFlowerSens'>EN</a> DE]</div>
  37209. <ul>
  37210. <u><b>XiaomiFlowerSens - liest Daten von einem Xiaomi Flower Monitor</b></u>
  37211. <br />
  37212. Dieser Modul liest Daten von einem Sensor und legt sie in den Readings ab.<br />
  37213. Auf dem (Linux) FHEM-Server werden gatttool und hcitool vorausgesetzt. (sudo apt install bluez)
  37214. <br /><br />
  37215. <a name="XiaomiFlowerSensdefine"></a>
  37216. <b>Define</b>
  37217. <ul><br />
  37218. <code>define &lt;name&gt; XiaomiFlowerSens &lt;BT-MAC&gt;</code>
  37219. <br /><br />
  37220. Beispiel:
  37221. <ul><br />
  37222. <code>define Weihnachtskaktus XiaomiFlowerSens C4:7C:8D:62:42:6F</code><br />
  37223. </ul>
  37224. <br />
  37225. Der Befehl legt ein Device vom Typ XiaomiFlowerSens an mit dem Namen Weihnachtskaktus und der Bluetooth MAC C4:7C:8D:62:42:6F.<br />
  37226. Nach dem Anlegen des Device werden umgehend und automatisch die aktuellen Daten vom betroffenen Xiaomi Flower Monitor gelesen.
  37227. </ul>
  37228. <br /><br />
  37229. <a name="XiaomiFlowerSensreadings"></a>
  37230. <b>Readings</b>
  37231. <ul>
  37232. <li>state - Status des Flower Monitor oder eine Fehlermeldung falls Fehler beim letzten Kontakt auftraten.</li>
  37233. <li>battery - aktueller Batterie-Status in Abhängigkeit vom Wert batteryLevel.</li>
  37234. <li>batteryLevel - aktueller Ladestand der Batterie in Prozent.</li>
  37235. <li>fertility - Wert des Fruchtbarkeitssensors (Bodenleitf&auml;higkeit)</li>
  37236. <li>firmware - aktuelle Firmware-Version des Flower Monitor</li>
  37237. <li>lux - aktuelle Lichtintensit&auml;t</li>
  37238. <li>moisture - aktueller Feuchtigkeitswert</li>
  37239. <li>temperature - aktuelle Temperatur</li>
  37240. </ul>
  37241. <br /><br />
  37242. <a name="XiaomiFlowerSensset"></a>
  37243. <b>Set</b>
  37244. <ul>
  37245. <li>clearFirmwareReading - l&ouml;scht das Reading firmware f&uuml;r/nach Upgrade</li>
  37246. <br />
  37247. </ul>
  37248. <br /><br />
  37249. <a name="XiaomiFlowerSensGet"></a>
  37250. <b>Get</b>
  37251. <ul>
  37252. <li>statusRequest - aktive Abfrage des aktuellen Status des Xiaomi Flower Monitor und seiner Werte</li>
  37253. <br />
  37254. </ul>
  37255. <br /><br />
  37256. <a name="XiaomiFlowerSensattribut"></a>
  37257. <b>Attribute</b>
  37258. <ul>
  37259. <li>disable - deaktiviert das Device</li>
  37260. <li>interval - Interval in Sekunden zwischen zwei Abfragen</li>
  37261. <li>disabledForIntervals - deaktiviert das Gerät fßr den angegebenen Zeitinterval (13:00-18:30 or 13:00-18:30 22:00-23:00)</li>
  37262. <li>minFertility - min Fruchtbarkeits-Grenzwert f&uuml;r ein Ereignis minFertility low </li>
  37263. <li>maxFertility - max Fruchtbarkeits-Grenzwert f&uuml;r ein Ereignis maxFertility high </li>
  37264. <li>minMoisture - min Feuchtigkeits-Grenzwert f&uuml;r ein Ereignis minMoisture low </li>
  37265. <li>maxMoisture - max Feuchtigkeits-Grenzwert f&uuml;r ein Ereignis maxMoisture high </li>
  37266. <li>minTemp - min Temperatur-Grenzwert f&uuml;r ein Ereignis minTemp low </li>
  37267. <li>maxTemp - max Temperatur-Grenzwert f&uuml;r ein Ereignis maxTemp high </li>
  37268. <li>minlux - min Helligkeits-Grenzwert f&uuml;r ein Ereignis minlux low </li>
  37269. <li>maxlux - max Helligkeits-Grenzwert f&uuml;r ein Ereignis maxlux high
  37270. <br /><br />Beispiele f&uuml;r min/max-Ereignisse:<br />
  37271. 2017-03-16 11:08:05 XiaomiFlowerSens Dracaena minMoisture low<br />
  37272. 2017-03-16 11:08:06 XiaomiFlowerSens Dracaena maxTemp high<br /><br /></li>
  37273. <li>sshHost - FQDN oder IP-Adresse eines entfernten SSH-Systems. Das SSH-System ist auf eine Zertifikat basierte Authentifizierung zu konfigurieren. Am elegantesten geschieht das mit einer .ssh/config Datei auf dem SSH-Client.</li>
  37274. <li>batteryFirmwareAge - wie alt soll der Timestamp des Readings sein bevor eine Aktuallisierung statt findet</li>
  37275. <li>blockingCallLoglevel - Blocking.pm Loglevel fĂźr BlockingCall Logausgaben</li>
  37276. </ul>
  37277. </ul>
  37278. <p><a name="XmlList"></a>
  37279. <h3>XmlList</h3>
  37280. <ul>
  37281. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37282. hier: <a href='commandref.html#XmlList'>XmlList</a><br/>
  37283. </ul>
  37284. <a name="YAAHM"></a>
  37285. <h3>YAAHM</h3>
  37286. <div class='langLinks'>[<a href='commandref.html#YAAHM'>EN</a> DE]</div>
  37287. <ul>
  37288. <a href="https://wiki.fhem.de/wiki/Modul_YAAHM">Deutsche Dokumentation im Wiki</a> vorhanden, die englische Version gibt es hier: <a href="/fhem/docs/commandref.html#YAAHM">YAAHM</a>
  37289. </ul>
  37290. <p><a name="YAMAHA_AVR"></a>
  37291. <h3>YAMAHA_AVR</h3>
  37292. <div class='langLinks'>[<a href='commandref.html#YAMAHA_AVR'>EN</a> DE]</div>
  37293. <ul>
  37294. <a name="YAMAHA_AVR_define"></a>
  37295. <b>Definition</b>
  37296. <ul>
  37297. <code>define &lt;name&gt; YAMAHA_AVR &lt;IP-Addresse&gt; [&lt;Zone&gt;] [&lt;Status_Interval&gt;]
  37298. <br><br>
  37299. define &lt;name&gt; YAMAHA_AVR &lt;IP-Addresse&gt; [&lt;Zone&gt;] [&lt;Off_Interval&gt;] [&lt;On_Interval&gt;]
  37300. </code>
  37301. <br><br>
  37302. Dieses Modul steuert AV-Receiver des Herstellers Yamaha &uuml;ber die Netzwerkschnittstelle.
  37303. Es bietet die M&ouml;glichkeit den Receiver an-/auszuschalten, den Eingangskanal zu w&auml;hlen,
  37304. die Lautst&auml;rke zu &auml;ndern, den Receiver "Stumm" zu schalten, sowie den aktuellen Status abzufragen.
  37305. <br><br>
  37306. Bei der Definition eines YAMAHA_AVR-Moduls wird eine interne Routine in Gang gesetzt, welche regelm&auml;&szlig;ig
  37307. (einstellbar durch den optionalen Parameter <code>&lt;Status_Interval&gt;</code>; falls nicht gesetzt ist der Standardwert 30 Sekunden)
  37308. den Status des Receivers abfragt und entsprechende Notify-/FileLog-Ger&auml;te triggert.
  37309. <br><br>
  37310. Sofern 2 Interval-Argumente &uuml;bergeben werden, wird der erste Parameter <code>&lt;Off_Interval&gt;</code> genutzt
  37311. sofern der Receiver ausgeschaltet oder nicht erreichbar ist. Der zweiter Parameter <code>&lt;On_Interval&gt;</code>
  37312. wird verwendet, sofern der Receiver eingeschaltet ist.
  37313. <br><br>
  37314. Beispiel:<br><br>
  37315. <ul><code>
  37316. define AV_Receiver YAMAHA_AVR 192.168.0.10
  37317. <br><br>
  37318. # Mit modifiziertem Status Interval (60 Sekunden)<br>
  37319. define AV_Receiver YAMAHA_AVR 192.168.0.10 mainzone 60
  37320. <br><br>
  37321. # Mit gesetztem "Off"-Interval (60 Sekunden) und "On"-Interval (10 Sekunden)<br>
  37322. define AV_Receiver YAMAHA_AVR 192.168.0.10 mainzone 60 10
  37323. </code></ul><br><br>
  37324. </ul>
  37325. <b>Zonenauswahl</b><br>
  37326. <ul>
  37327. Wenn der zu steuernde Receiver mehrere Zonen besitzt (z.B. RX-V671, RX-V673,... sowie die AVANTAGE Modellreihe)
  37328. kann die zu steuernde Zone explizit angegeben werden. Die Modellreihen RX-V3xx und RX-V4xx als Beispiel
  37329. haben nur eine Zone (Main Zone). Je nach Receiver-Modell stehen folgende Zonen zur Verf&uuml;gung, welche mit
  37330. dem optionalen Parameter &lt;Zone&gt; angegeben werden k&ouml;nnen.<br><br>
  37331. <ul>
  37332. <li><b>mainzone</b> - Das ist die Hauptzone (Standard)</li>
  37333. <li><b>zone2</b> - Die zweite Zone (Zone 2)</li>
  37334. <li><b>zone3</b> - Die dritte Zone (Zone 3)</li>
  37335. <li><b>zone4</b> - Die vierte Zone (Zone 4)</li>
  37336. </ul>
  37337. <br>
  37338. Je nach Receiver-Modell stehen in den verschiedenen Zonen nicht immer alle Eing&auml;nge zur Verf&uuml;gung.
  37339. Dieses Modul bietet nur die tats&auml;chlich verf&uuml;gbaren Eing&auml;nge an.
  37340. <br><br>
  37341. Beispiel:<br><br>
  37342. <ul><code>
  37343. define AV_Receiver YAMAHA_AVR 192.168.0.10 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Wenn keine Zone angegeben ist, wird<br>
  37344. attr AV_Receiver YAMAHA_AVR room Wohnzimmer &nbsp;&nbsp;&nbsp;&nbsp; # standardm&auml;&szlig;ig "mainzone" verwendet<br>
  37345. <br>
  37346. # Definition der zweiten Zone<br>
  37347. define AV_Receiver_Zone2 YAMAHA_AVR 192.168.0.10 zone2<br>
  37348. attr AV_Receiver_Zone2 room Schlafzimmer<br>
  37349. </code></ul><br><br>
  37350. F&uuml;r jede Zone muss eine eigene YAMAHA_AVR Definition erzeugt werden, welche dann unterschiedlichen R&auml;umen zugeordnet werden kann.
  37351. Jede Zone kann unabh&auml;ngig von allen anderen Zonen (inkl. der Main Zone) gesteuert werden.
  37352. <br><br>
  37353. </ul>
  37354. <a name="YAMAHA_AVR_set"></a>
  37355. <b>Set-Kommandos </b>
  37356. <ul>
  37357. <code>set &lt;Name&gt; &lt;Kommando&gt; [&lt;Parameter&gt;]</code>
  37358. <br><br>
  37359. Aktuell werden folgende Kommandos unterst&uuml;tzt. Die verf&uuml;gbaren Eing&auml;nge und Szenen k&ouml;nnen je nach Receiver-Modell variieren.
  37360. Die folgenden Eing&auml;nge stehen beispielhaft an einem RX-V473 Receiver zur Verf&uuml;gung.
  37361. Aktuell stehen folgende Kommandos zur Verf&uuml;gung.
  37362. <br><br>
  37363. <ul>
  37364. <li><b>on</b> &nbsp;&nbsp;-&nbsp;&nbsp; Schaltet den Receiver ein</li>
  37365. <li><b>off</b> &nbsp;&nbsp;-&nbsp;&nbsp; Schaltet den Receiver aus</li>
  37366. <li><b>dsp</b> hallinmunich,hallinvienna,... &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert das entsprechende DSP Preset</li>
  37367. <li><b>enhancer</b> on,off &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert den Sound Enhancer f&uuml;r einen verbesserten Raumklang</li>
  37368. <li><b>3dCinemaDsp</b> auto,off &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert den CINEMA DSP 3D Modus</li>
  37369. <li><b>adaptiveDrc</b> auto,off &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert Adaptive DRC</li>
  37370. <li><b>extraBass</b> auto,off &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert den Extra Bass</li>
  37371. <li><b>ypaoVolume</b> auto,off &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert YPAO Lautst&auml;rke</li>
  37372. <li><b>displayBrightness</b> -4...0 &nbsp;&nbsp;-&nbsp;&nbsp; Steuert die Helligkeitsreduzierung des Front-Displays</li>
  37373. <li><b>partyMode</b> on|off &nbsp;&nbsp;-&nbsp;&nbsp;Aktiviert den Party Modus. In der Main Zone wird hierbei der Party Modus ger&auml;teweit aktiviert oder deaktiviert. In den anderen Zonen kann man damit die entsprechende Zone dem Party Modus zuschalten oder entziehen.</li>
  37374. <li><b>navigateListMenu</b> [Element 1]/[Element 2]/.../[Element N] &nbsp;&nbsp;-&nbsp;&nbsp; W&auml;hlt ein spezifisches Element aus einer Men&uuml;struktur aus. Nur verwendbar bei Men&uuml;-basierenden Eing&auml;ngen (z.B. Net Radio, USB, Server, etc.). Siehe nachfolgendes Kapitel "<a href="#YAMAHA_AVR_MenuNavigation">Automatische Men&uuml; Navigation</a>" f&uuml;r weitere Details und Beispiele.</li>
  37375. <li><b>tunerFrequency</b> [Frequenz] [AM|FM] &nbsp;&nbsp;-&nbsp;&nbsp; setzt die Radio-Frequenz. Das erste Argument ist die Frequenz, der zweite dient optional zu Angabe des Bandes (AM oder FM, standardm&auml;&szlig;ig FM). Abh&auml;ngig davon, welches Band man benutzt, wird die Frequenz in kHz (AM-Band) oder MHz (FM-Band) angegeben. Wenn im zweiten Argument kein Band angegeben ist, wird standardm&auml;&szlig;ig das FM-Band benutzt. Dieser Befehl kann auch benutzt werden, wenn der aktuelle Eingang nicht "tuner" ist. Die neue Frequenz wird dennoch gesetzt und bei der n&auml;chsten Benutzung abgespielt.</li>
  37376. <li><b>tunerFrequencyBand</b> FM|DAB &nbsp;&nbsp;-&nbsp;&nbsp; setzt das zu nutzende Frequenzband bzw. Empfangstechnologie fĂźr den Radioempfang ("FM" f&uumLr analoge Frequenzmodulation oder "DAB" f&uuml;r digitalen Radioempfang). Nur verf&uuml;gbar wenn DAB unterst&uuml;zt wird.</li>
  37377. <li><b>preset</b> 1...40 &nbsp;&nbsp;-&nbsp;&nbsp; w&auml;hlt ein gespeichertes Preset f&uuml;r den aktuellen Eingang aus.</li>
  37378. <li><b>presetUp</b> &nbsp;&nbsp;-&nbsp;&nbsp; w&auml;hlt das n&auml;chste Preset f&uuml;r den aktuellen Eingang aus.</li>
  37379. <li><b>presetDown</b> &nbsp;&nbsp;-&nbsp;&nbsp; w&auml;hlt das vorherige Preset f&uuml;r den aktuellen Eingang aus.</li>
  37380. <li><b>direct</b> on,off &nbsp;&nbsp;-&nbsp;&nbsp; Umgeht alle internen soundverbessernden Ma&szlig;nahmen (Equalizer, Enhancer, Adaptive DRC,...) und gibt das Signal unverf&auml;lscht wieder</li>
  37381. <li><b>input</b> hdmi1,hdmiX,... &nbsp;&nbsp;-&nbsp;&nbsp; W&auml;hlt den Eingangskanal (es werden nur die tats&auml;chlich verf&uuml;gbaren Eing&auml;nge angeboten)</li>
  37382. <li><b>hdmiOut1</b> on,off &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert die Ausgabe via HDMI Ausgang 1</li>
  37383. <li><b>hdmiOut2</b> on,off &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert die Ausgabe via HDMI Ausgang 2</li>
  37384. <li><b>scene</b> scene1,sceneX &nbsp;&nbsp;-&nbsp;&nbsp; W&auml;hlt eine vorgefertigte Szene aus</li>
  37385. <li><b>surroundDecoder</b> dolbypl,... &nbsp;&nbsp;-&nbsp;&nbsp; Setzt den Surround Decoder, welcher genutzt werden soll sofern der DSP Modus "Surround Decoder" aktiv ist.</li>
  37386. <li><b>volume</b> 0...100 [direct] &nbsp;&nbsp;-&nbsp;&nbsp; Setzt die Lautst&auml;rke in Prozent (0 bis 100%). Wenn als zweites Argument "direct" gesetzt ist, wird keine weiche Lautst&auml;rkenanpassung durchgef&uuml;hrt (sofern aktiviert). Die Lautst&auml;rke wird in diesem Fall sofort gesetzt.</li>
  37387. <li><b>volumeStraight</b> -87...15 [direct] &nbsp;&nbsp;-&nbsp;&nbsp; Setzt die Lautst&auml;rke in Dezibel (-80.5 bis 15.5 dB) so wie sie am Receiver auch verwendet wird. Wenn als zweites Argument "direct" gesetzt ist, wird keine weiche Lautst&auml;rkenanpassung durchgef&uuml;hrt (sofern aktiviert). Die Lautst&auml;rke wird in diesem Fall sofort gesetzt.</li>
  37388. <li><b>volumeUp</b> [0...100] [direct] &nbsp;&nbsp;-&nbsp;&nbsp; Erh&ouml;ht die Lautst&auml;rke um 5% oder entsprechend dem Attribut <a href="#YAMAHA_AVR_volumeSteps">volumeSteps</a> (optional kann der Wert auch als Argument angehangen werden, dieser hat dann Vorang). Wenn als zweites Argument "direct" gesetzt ist, wird keine weiche Lautst&auml;rkenanpassung durchgef&uuml;hrt (sofern aktiviert). Die Lautst&auml;rke wird in diesem Fall sofort gesetzt.</li>
  37389. <li><b>volumeDown</b> [0...100] [direct] &nbsp;&nbsp;-&nbsp;&nbsp; Veringert die Lautst&auml;rke um 5% oder entsprechend dem Attribut <a href="#YAMAHA_AVR_volumeSteps">volumeSteps</a> (optional kann der Wert auch als Argument angehangen werden, dieser hat dann Vorang). Wenn als zweites Argument "direct" gesetzt ist, wird keine weiche Lautst&auml;rkenanpassung durchgef&uuml;hrt (sofern aktiviert). Die Lautst&auml;rke wird in diesem Fall sofort gesetzt.</li>
  37390. <li><b>mute</b> on,off,toggle &nbsp;&nbsp;-&nbsp;&nbsp; Schaltet den Receiver stumm</li>
  37391. <li><b>bass</b> [-6...6] Schrittweite 0.5 (main zone), [-10...10] Schrittweite 2 (andere Zonen), [-10...10] Schrittweite 1 (andere Zonen, DSP Modelle) &nbsp;&nbsp;-&nbsp;&nbsp; Stellt die Tiefen in decibel ein</li>
  37392. <li><b>treble</b> [-6...6] Schrittweite 0.5 (main zone), [-10...10] Schrittweite 2 (andere Zonen), [-10...10] Schrittweite 1 (andere Zonen, DSP Modelle) &nbsp;&nbsp;-&nbsp;&nbsp; Stellt die H&ouml;hen in decibel ein</li>
  37393. <li><b>straight</b> on,off &nbsp;&nbsp;-&nbsp;&nbsp; Umgeht die interne Codec-Umwandlung und gibt den Original-Codec wieder.</li>
  37394. <li><b>sleep</b> off,30min,60min,...,last &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert den internen Sleep-Timer zum automatischen Abschalten</li>
  37395. <li><b>shuffle</b> on,off &nbsp;&nbsp;-&nbsp;&nbsp; Aktiviert die Zufallswiedergabe des aktuellen Eingangs (ist nur eingangsabh&auml;ngig verf&uuml;gbar)</li>
  37396. <li><b>repeat</b> one,all,off &nbsp;&nbsp;-&nbsp;&nbsp; Wiederholt den aktuellen (one) oder alle (all) Titel des aktuellen Eingangs (ist nur eingangsabh&auml;ngig verf&uuml;gbar)</li>
  37397. <li><b>pause</b> &nbsp;&nbsp;-&nbsp;&nbsp; Wiedergabe pausieren (ist nur eingangsabh&auml;ngig verf&uuml;gbar)</li>
  37398. <li><b>play</b> &nbsp;&nbsp;-&nbsp;&nbsp; Wiedergabe starten (ist nur eingangsabh&auml;ngig verf&uuml;gbar)</li>
  37399. <li><b>stop</b> &nbsp;&nbsp;-&nbsp;&nbsp; Wiedergabe stoppen (ist nur eingangsabh&auml;ngig verf&uuml;gbar)</li>
  37400. <li><b>skip</b> reverse,forward &nbsp;&nbsp;-&nbsp;&nbsp; Aktuellen Titel &uuml;berspringen (ist nur eingangsabh&auml;ngig verf&uuml;gbar)</li>
  37401. <li><b>statusRequest</b> &nbsp;&nbsp;-&nbsp;&nbsp; Fragt den aktuell Status des Receivers ab</li>
  37402. <li><b>remoteControl</b> up,down,... &nbsp;&nbsp;-&nbsp;&nbsp; Sendet Fernbedienungsbefehle wie im n&auml;chsten Abschnitt beschrieben</li>
  37403. </ul>
  37404. <br><br>
  37405. </ul>
  37406. <u>Fernbedienung (je nach Modell nicht in allen Zonen verf&uuml;gbar)</u><br><br>
  37407. <ul>
  37408. <u>Cursor Steuerung:</u><br><br>
  37409. <ul><code>
  37410. remoteControl up<br>
  37411. remoteControl down<br>
  37412. remoteControl left<br>
  37413. remoteControl right<br>
  37414. remoteControl enter<br>
  37415. remoteControl return<br>
  37416. </code></ul><br><br>
  37417. <u>Men&uuml; Auswahl:</u><br><br>
  37418. <ul><code>
  37419. remoteControl setup<br>
  37420. remoteControl option<br>
  37421. remoteControl display<br>
  37422. </code></ul><br><br>
  37423. <u>Radio Steuerung:</u><br><br>
  37424. <ul><code>
  37425. remoteControl tunerPresetUp<br>
  37426. remoteControl tunerPresetDown<br>
  37427. </code></ul><br>
  37428. </ul>
  37429. <a name="YAMAHA_AVR_MenuNavigation"></a>
  37430. <u>Automatische Men&uuml; Navigation (nur f&uuml;r Men&uuml;-basierte Eing&auml;nge wie z.B. Net Radio, Server, USB, ...)</u><br><br>
  37431. <ul>
  37432. F&uuml;r Men&uuml;-basierte Eing&auml;nge muss man einen bestimmten Eintrag aus einer komplexen Struktur ausw&auml;hlen um die Wiedergabe zu starten.
  37433. Ein typischer Fall ist das Abspielen von Internet-Radios (Eingang: Net Radio) oder &auml;hnlichen, netzwerkbasierten Diensten.
  37434. Erst durch das Navigieren durch mehrere Men&uuml;s und Untermen&uuml;s selektiert man das gew&uuml;nschte Element und die Wiedergabe beginnt.
  37435. <br><br>
  37436. Um diese Navigation durch verschiedene Men&uuml;strukturen zu automatisieren, gibt es das Set-Kommando "navigateListMenu".
  37437. Als Parameter &uuml;bergibt man den Pfad (ausgehend vom Beginn) zu dem gew&uuml;nschtem Men&uuml;eintrag
  37438. YAMAHA_AVR wird diese Liste von links nach rechts abarbeiten und sich so durch das Men&uuml; hangeln.
  37439. Alle angegebenen Men&uuml;elemente sind dabei durch einen Schr&auml;gstrich (/) getrennt.
  37440. <br><br>
  37441. Ein paar Beispiele:
  37442. Aktueller Eingang ist "netradio":<br><br>
  37443. <ul>
  37444. <code>
  37445. set &lt;name&gt; navigateListMenu L&auml;nder/Ozeanien/Australien/Alle Sender/1Radio.FM<br>
  37446. set &lt;name&gt; navigateListMenu Lesezeichen/Favoriten/1LIVE</code>
  37447. </ul><br>
  37448. Wenn man den Receiver mit einem Befehl anschalten m&ouml;chte und einen bestimmten Internet-Radio Sender ausw&auml;hlen will:<br><br>
  37449. <ul>
  37450. <code>
  37451. set &lt;name&gt; on ; set &lt;name&gt; volume 20 direct ; set &lt;name&gt; input netradio ; set &lt;name&gt; navigateListMenu Lesezeichen/Favoriten/1LIVE<br><br>
  37452. # f&uuml;r t&auml;gliches einschalten eines Internet-Radios via <a href="#at">at-Modul</a><br>
  37453. define 1Radio_am_Morgen at *08:00 set &lt;name&gt; on ; set &lt;name&gt; volume 20 direct ; set &lt;name&gt; input netradio ; set &lt;name&gt; navigateListMenu L&auml;nder/Ozeanien/Australien/Alle Sender/1Radio.FM<br><br>
  37454. define 1LIVE_am_Abend at *17:00 set &lt;name&gt; on ; set &lt;name&gt; volume 20 direct ; set &lt;name&gt; input netradio ; set &lt;name&gt; navigateListMenu Lesezeichen/Favoriten/1LIVE</code>
  37455. </ul>
  37456. <br>
  37457. Aktueller Eingang ist "server" (Netzwerk-Freigaben via UPnP/DLNA):<br><br>
  37458. <ul>
  37459. <code>
  37460. set &lt;name&gt; navigateListMenu NAS/Musik/Nach Interpret/Alicia Keys/Songs in A Minor/Fallin
  37461. </code>
  37462. </ul>
  37463. <br>
  37464. Die exakte Men&uuml;struktur h&auml;ngt von ihrer eigenen Receiver-Konfiguration, sowie den zur Verf&uuml;gung stehenden Freigaben in ihrem Netzwerk ab.
  37465. Jeder einzelne Men&uuml;eintrag muss nicht vollst&auml;ndig als Pfadelement angegeben werden.
  37466. Jedes Pfadelement wird als Stichwort verwendet um den richtigen Men&uuml;eintrag aus der aktuellen Listenebene zu finden, z.B:
  37467. <br><br>
  37468. <ul>
  37469. Der tats&auml;chliche Men&uuml;pfad (wie im Display des Receiveres erkennbar) sieht beispielhaft folgenderma&szlig;en aus: <code> <i><b>Lesezeichen</b></i> =&gt; <i><b>Favoriten</b></i> =&gt; <i><b>foo:BAR 70'er-90'er [[HITS]]</b></i></code><br><br>
  37470. Der letzte Men&uuml;eintrag hat in diesem Fall viele Sonderzeichen die einem in einer FHEM-Konfiguration durchaus Probleme bereiten k&ouml;nen.
  37471. Man muss aber nicht die vollst&auml;ndige Bezeichnung in der Pfadangabe benutzen, sondern kann ein k&uuml;rzeres Stichwort benutzen, was in der vollst&auml;ndigen Bezeichnung jedoch vorkommen muss.
  37472. So kann man beispielsweise folgendes Set-Kommando benutzen um diesen Eintrag auszuw&auml;hlen und die Wiedergabe damit zu starten:<br><br>
  37473. <code>
  37474. set &lt;name&gt; navigateListMenu Lesezeichen/Favoriten/foo:BAR
  37475. </code>
  37476. <br><br>
  37477. Dieser Befehl funktioniert, obwohl man nicht die vollst&auml;ndige Bezeichnung angegeben hat (<i><code>foo:BAR 70's-90's [[HITS]]</code></i>).
  37478. </ul>
  37479. <br>
  37480. Auf selbe Wei&szlig;e kann man somit lange Men&uuml;eintr&auml;ge abk&uuml;rzen, damit die Befehle nicht so lang werden.
  37481. Solche gek&uuml;rzten Pfadangaben m&uuml;ssen aber trotzdem soweit eindeutig sein, damit sie nur auf das gew&uuml;nschte Element passen.
  37482. Das erste Element aus einer Listenebene (von oben nach unten), was auf eine Pfadangabe passt, wird ausgew&auml;hlt.
  37483. <br><br>
  37484. </ul>
  37485. <a name="YAMAHA_AVR_get"></a>
  37486. <b>Get-Kommandos</b>
  37487. <ul>
  37488. <code>get &lt;Name&gt; &lt;Readingname&gt;</code>
  37489. <br><br>
  37490. Aktuell stehen via GET lediglich die Werte der Readings zur Verf&uuml;gung. Eine genaue Auflistung aller m&ouml;glichen Readings folgen unter "Generierte Readings/Events".
  37491. </ul>
  37492. <br><br>
  37493. <a name="YAMAHA_AVR_attr"></a>
  37494. <b>Attribute</b>
  37495. <ul>
  37496. <li><a href="#do_not_notify">do_not_notify</a></li>
  37497. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  37498. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  37499. <li><a name="YAMAHA_AVR_requestTimeout">requestTimeout</a></li>
  37500. Optionales Attribut. Maximale Dauer einer Anfrage in Sekunden zum Receiver.
  37501. <br><br>
  37502. M&ouml;gliche Werte: 1-5 Sekunden. Standardwert ist 4 Sekunden<br><br>
  37503. <li><a name="YAMAHA_AVR_disable">disable</a></li>
  37504. Optionales Attribut zur Deaktivierung des zyklischen Status-Updates. Ein manuelles Update via statusRequest-Befehl ist dennoch m&ouml;glich.
  37505. <br><br>
  37506. M&ouml;gliche Werte: 0 => zyklische Status-Updates, 1 => keine zyklischen Status-Updates.<br><br>
  37507. <li><a name="YAMAHA_AVR_volumeSmoothChange">volumeSmoothChange</a></li>
  37508. Optionales Attribut, welches einen weichen Lautst&auml;rke&uuml;bergang aktiviert..
  37509. <br><br>
  37510. M&ouml;gliche Werte: 0 => deaktiviert , 1 => aktiviert<br><br>
  37511. <li><a name="YAMAHA_AVR_volumeSmoothSteps">volumeSmoothSteps</a></li>
  37512. Optionales Attribut, welches angibt, wieviele Schritte zur weichen Lautst&auml;rkeanpassung
  37513. durchgef&uuml;hrt werden sollen. Standardwert ist 5 Anpassungschritte<br><br>
  37514. <li><a name="YAMAHA_AVR_volumeSteps">volumeSteps</a></li>
  37515. Optionales Attribut, welches den Standardwert zur Lautst&auml;rkenerh&ouml;hung (volumeUp) und Lautst&auml;rkenveringerung (volumeDown) konfiguriert. Standardwert ist 5%
  37516. <br><br>
  37517. <li><a name="YAMAHA_AVR_volumeMax">volumeMax</a></li>
  37518. Optionales Attribut, welches eine maximale Obergrenze in Prozent fĂźr die Lautst&auml;rke festlegt.
  37519. Wird versucht die Lautst&auml;rke auf einen h&ouml;heren Wert zu setzen, so wird die Lautst&auml;rke dennoch die konfigurierte Obergrenze nicht &uuml;berschreiten.
  37520. <br><br>
  37521. M&ouml;gliche Werte: 0-100%. Standardwert ist 100% (keine Begrenzung)
  37522. <br><br>
  37523. </ul>
  37524. <b>Generierte Readings/Events:</b><br>
  37525. <ul>
  37526. <li><b>3dCinemaDsp</b> - Der Status des CINEMA DSP 3D-Modus ("auto" =&gt; an, "off" =&gt; aus)</li>
  37527. <li><b>adaptiveDrc</b> - Der Status des Adaptive DRC ("auto" =&gt; an, "off" =&gt; aus)</li>
  37528. <li><b>bass</b> Der aktuelle Basspegel, zwischen -6 and 6 dB (main zone) and -10 and 10 dB (andere Zonen)</li>
  37529. <li><b>direct</b> - Zeigt an, ob soundverbessernde Features umgangen werden oder nicht ("on" =&gt; soundverbessernde Features werden umgangen, "off" =&gt; soundverbessernde Features werden benutzt)</li>
  37530. <li><b>displayBrightness</b> - Status der Helligkeitsreduzierung des Front-Displays (-4 =&gt; maximale Reduzierung, 0 =&gt; keine Reduzierung)</li>
  37531. <li><b>dsp</b> - Das aktuell aktive DSP Preset</li>
  37532. <li><b>enhancer</b> - Der Status des Enhancers ("on" =&gt; an, "off" =&gt; aus)</li>
  37533. <li><b>extraBass</b> - Der Status des Extra Bass ("auto" =&gt; an, "off" =&gt; aus)</li>
  37534. <li><b>input</b> - Der ausgew&auml;hlte Eingang entsprechend dem FHEM-Kommando</li>
  37535. <li><b>inputName</b> - Die Eingangsbezeichnung, so wie sie am Receiver eingestellt wurde und auf dem Display erscheint</li>
  37536. <li><b>hdmiOut1</b> - Der Status des HDMI Ausgang 1 ("on" =&gt; an, "off" =&gt; aus)</li>
  37537. <li><b>hdmiOut2</b> - Der Status des HDMI Ausgang 2 ("on" =&gt; an, "off" =&gt; aus)</li>
  37538. <li><b>mute</b> - Der aktuelle Stumm-Status ("on" =&gt; Stumm, "off" =&gt; Laut)</li>
  37539. <li><b>newFirmware</b> - Zeigt an, ob eine neue Firmware zum installieren bereit liegt ("available" =&gt; neue Firmware verf&uuml;gbar, "unavailable" =&gt; keine neue Firmware verf&uuml;gbar; Event wird nur generiert f&uuml;r RX-Vx71, RX-Vx73, RX-Ax10 oder RX-Ax20)</li>
  37540. <li><b>power</b> - Der aktuelle Betriebsstatus ("on" =&gt; an, "off" =&gt; aus)</li>
  37541. <li><b>presence</b> - Die aktuelle Empfangsbereitschaft ("present" =&gt; empfangsbereit, "absent" =&gt; nicht empfangsbereit, z.B. Stromausfall)</li>
  37542. <li><b>partyMode</b> - Der Status des Party Modus ( "enabled" =&gt; aktiviert, "disabled" =&gt; deaktiviert). In der Main Zone stellt dies den ger&auml;teweiten Zustand des Party Modus dar. In den einzelnen Zonen zeigt es an, ob die jeweilige Zone f&uuml;r den Party Modus verwendet wird.</li>
  37543. <li><b>straight</b> - Zeigt an, ob die interne Codec Umwandlung umgangen wird oder nicht ("on" =&gt; Codec Umwandlung wird umgangen, "off" =&gt; Codec Umwandlung wird benutzt)</li>
  37544. <li><b>sleep</b> - Zeigt den Status des internen Sleep-Timers an</li>
  37545. <li><b>surroundDecoder</b> - Zeigt den aktuellen Surround Decoder an</li>
  37546. <li><b>state</b> - Der aktuelle Schaltzustand (power-Reading) oder die Abwesenheit des Ger&auml;tes (m&ouml;gliche Werte: "on", "off" oder "absent")</li>
  37547. <li><b>tunerFrequency</b> - Die aktuelle Empfangsfrequenz f&uuml;r Radio-Empfang in kHz (AM-Band) oder MHz (FM-Band)</li>
  37548. <li><b>tunerFrequencyBand</b> - Das aktuell genutzte Radio-Band ("AM", "FM" oder "DAB" sofern unterst&uuml;zt)</li>
  37549. <li><b>treble</b> Der aktuelle H&ouml;henpegel, zwischen -6 and 6 dB (main zone) and -10 and 10 dB (andere Zonen)</li>
  37550. <li><b>volume</b> - Der aktuelle Lautst&auml;rkepegel in Prozent (zwischen 0 und 100 %)</li>
  37551. <li><b>volumeStraight</b> - Der aktuelle Lautst&auml;rkepegel in Dezibel (zwischen -80.0 und +15 dB)</li>
  37552. <li><b>ypaoVolume</b> - Der Status der YPAO Lautst&auml;rke ("auto" =&gt; an, "off" =&gt; aus)</li>
  37553. <br><u>Eingangsabh&auml;ngige Readings/Events:</u><br><br>
  37554. <li><b>currentChannel</b> - Nummer des Eingangskanals (nur bei SIRIUS)</li>
  37555. <li><b>currentStation</b> - Name des Radiosenders (nur bei TUNER, HD RADIO, NET RADIO oder PANDORA)</li>
  37556. <li><b>currentStationFrequency</b> - Die Sendefrequenz des aktuellen Radiosender (nur bei Tuner oder HD Radio)</li>
  37557. <li><b>currentAlbum</b> - Album es aktuell gespielten Titel</li>
  37558. <li><b>currentArtist</b> - Interpret des aktuell gespielten Titel</li>
  37559. <li><b>currentTitle</b> - Name des aktuell gespielten Titel</li>
  37560. <li><b>playStatus</b> - Wiedergabestatus des Eingangs</li>
  37561. <li><b>shuffle</b> - Status der Zufallswiedergabe des aktuellen Eingangs</li>
  37562. <li><b>repeat</b> - Status der Titelwiederholung des aktuellen Eingangs</li>
  37563. </ul>
  37564. <br>
  37565. <b>Hinweise des Autors</b>
  37566. <ul>
  37567. Dieses Modul ist nur nutzbar, wenn die Option "Network Standby" am Receiver aktiviert ist. Ansonsten ist die Steuerung nur im eingeschalteten Zustand m&ouml;glich.
  37568. </ul>
  37569. <br>
  37570. </ul>
  37571. <p><a name="YAMAHA_BD"></a>
  37572. <h3>YAMAHA_BD</h3>
  37573. <div class='langLinks'>[<a href='commandref.html#YAMAHA_BD'>EN</a> DE]</div>
  37574. <ul>
  37575. <a name="YAMAHA_BDdefine"></a>
  37576. <b>Definition</b>
  37577. <ul>
  37578. <code>define &lt;name&gt; YAMAHA_BD &lt;IP-Addresse&gt; [&lt;Status_Interval&gt;]
  37579. <br><br>
  37580. define &lt;name&gt; YAMAHA_BD &lt;IP-Addresse&gt; [&lt;Off_Interval&gt;] [&lt;On_Interval&gt;]
  37581. </code>
  37582. <br><br>
  37583. Dieses Modul steuert Blu-Ray Player des Herstellers Yamaha &uuml;ber die Netzwerkschnittstelle.
  37584. Es bietet die M&ouml;glichkeit den Player an-/auszuschalten, die Schublade zu &ouml;ffnen und schlie&szlig;en,
  37585. die Wiedergabe beeinflussen, s&auml;mtliche Fernbedieungs-Befehle zu senden, sowie den aktuellen Status abzufragen.
  37586. <br><br>
  37587. Bei der Definition eines YAMAHA_BD-Moduls wird eine interne Routine in Gang gesetzt, welche regelm&auml;&szlig;ig
  37588. (einstellbar durch den optionalen Parameter <code>&lt;Status_Interval&gt;</code>; falls nicht gesetzt ist der Standardwert 30 Sekunden)
  37589. den Status des Players abfragt und entsprechende Notify-/FileLog-Definitionen triggert.
  37590. <br><br>
  37591. Sofern 2 Interval-Argumente &uuml;bergeben werden, wird der erste Parameter <code>&lt;Off_Interval&gt;</code> genutzt
  37592. sofern der Player ausgeschaltet oder nicht erreichbar ist. Der zweiter Parameter <code>&lt;On_Interval&gt;</code>
  37593. wird verwendet, sofern der Player eingeschaltet ist.
  37594. <br><br>
  37595. Beispiel:<br><br>
  37596. <ul><code>
  37597. define BD_Player YAMAHA_BD 192.168.0.10
  37598. <br><br>
  37599. # Mit modifiziertem Status Interval (60 Sekunden)<br>
  37600. define BD_Player YAMAHA_BD 192.168.0.10 60
  37601. <br><br>
  37602. # Mit gesetztem "Off"-Interval (60 Sekunden) und "On"-Interval (10 Sekunden)<br>
  37603. define BD_Player YAMAHA_BD 192.168.0.10 60 10
  37604. </code></ul><br><br>
  37605. </ul>
  37606. <a name="YAMAHA_BDset"></a>
  37607. <b>Set-Kommandos </b>
  37608. <ul>
  37609. <code>set &lt;Name&gt; &lt;Kommando&gt; [&lt;Parameter&gt;]</code>
  37610. <br><br>
  37611. Aktuell werden folgende Kommandos unterst&uuml;tzt.
  37612. <br><br>
  37613. <ul>
  37614. <li><b>on</b> &nbsp;&nbsp;-&nbsp;&nbsp; schaltet den Player ein</li>
  37615. <li><b>off</b> &nbsp;&nbsp;-&nbsp;&nbsp; schaltet den Player aus </li>
  37616. <li><b>tray</b> open,close &nbsp;&nbsp;-&nbsp;&nbsp; &ouml;ffnet oder schlie&szlig;t die Schublade</li>
  37617. <li><b>statusRequest</b> &nbsp;&nbsp;-&nbsp;&nbsp; fragt den aktuellen Status ab</li>
  37618. <li><b>remoteControl</b> up,down,... &nbsp;&nbsp;-&nbsp;&nbsp; sendet Fernbedienungsbefehle wie im folgenden Kapitel beschrieben.</li>
  37619. </ul><br>
  37620. <u>Wiedergabespezifische Kommandos</u>
  37621. <ul>
  37622. <li><b>play</b> &nbsp;&nbsp;-&nbsp;&nbsp; startet die Wiedergabe des aktuellen Mediums</li>
  37623. <li><b>pause</b> &nbsp;&nbsp;-&nbsp;&nbsp; pausiert die Wiedergabe</li>
  37624. <li><b>stop</b> &nbsp;&nbsp;-&nbsp;&nbsp; stoppt die Wiedergabe</li>
  37625. <li><b>skip</b> forward,reverse &nbsp;&nbsp;-&nbsp;&nbsp; &uuml;berspringt das aktuelle Kapitel oder den aktuellen Titel</li>
  37626. <li><b>fast</b> forward,reverse &nbsp;&nbsp;-&nbsp;&nbsp; schneller Vor- oder R&uuml;cklauf</li>
  37627. <li><b>slow</b> forward,reverse &nbsp;&nbsp;-&nbsp;&nbsp; langsamer Vor- oder R&uuml;cklauf</li>
  37628. <li><b>trickPlay</b> normal,repeatChapter,repeatTitle,... &nbsp;&nbsp;-&nbsp;&nbsp; aktiviert Trick-Play Funktionen (Wiederholung, Zufallswiedergabe, ...)</li>
  37629. </ul>
  37630. <br><br>
  37631. </ul>
  37632. <u>Fernbedienung</u><br><br>
  37633. <ul>
  37634. Es stehen folgende Befehle zur Verf&uuml;gung:<br><br>
  37635. <u>Zahlen Tasten (0-9):</u><br><br>
  37636. <ul><code>
  37637. remoteControl 0<br>
  37638. remoteControl 1<br>
  37639. remoteControl 2<br>
  37640. ...<br>
  37641. remoteControl 9<br>
  37642. </code></ul><br><br>
  37643. <u>Cursor Steuerung:</u><br><br>
  37644. <ul><code>
  37645. remoteControl up<br>
  37646. remoteControl down<br>
  37647. remoteControl left<br>
  37648. remoteControl right<br>
  37649. remoteControl enter<br>
  37650. remoteControl return<br>
  37651. </code></ul><br><br>
  37652. <u>Men&uuml; Auswahl:</u><br><br>
  37653. <ul><code>
  37654. remoteControl OSDonScreen<br>
  37655. remoteControl OSDstatus<br>
  37656. remoteControl popupMenu<br>
  37657. remoteControl topMenu<br>
  37658. remoteControl setup<br>
  37659. remoteControl home<br>
  37660. remoteControl clear<br>
  37661. </code></ul><br><br>
  37662. <u>Farbtasten:</u><br><br>
  37663. <ul><code>
  37664. remoteControl red<br>
  37665. remoteControl green<br>
  37666. remoteControl yellow<br>
  37667. remoteControl blue<br>
  37668. </code></ul><br><br>
  37669. <u>Wiedergabetasten:</u><br><br>
  37670. <ul><code>
  37671. remoteControl program<br>
  37672. remoteControl search<br>
  37673. remoteControl repeat<br>
  37674. remoteControl repeat-AB<br>
  37675. remoteControl subtitle<br>
  37676. remoteControl audio<br>
  37677. remoteControl angle<br>
  37678. remoteControl pictureInPicture<br>
  37679. remoteControl secondAudio<br>
  37680. remoteControl secondVideo<br>
  37681. </code></ul><br><br>
  37682. Die Befehlsnamen entsprechen den Tasten auf der Fernbedienung.<br><br>
  37683. </ul>
  37684. <a name="YAMAHA_BDget"></a>
  37685. <b>Get-Kommandos</b>
  37686. <ul>
  37687. <code>get &lt;Name&gt; &lt;Readingname&gt;</code>
  37688. <br><br>
  37689. Aktuell stehen via GET lediglich die Werte der Readings zur Verf&uuml;gung. Eine genaue Auflistung aller m&ouml;glichen Readings folgen unter "Generierte Readings/Events".
  37690. </ul>
  37691. <br><br>
  37692. <a name="YAMAHA_BDattr"></a>
  37693. <b>Attribute</b>
  37694. <ul>
  37695. <li><a href="#do_not_notify">do_not_notify</a></li>
  37696. <li><a href="#readingFnAttributes">readingFnAttributes</a></li><br>
  37697. <li><a name="disable">disable</a></li>
  37698. Optionales Attribut zur Deaktivierung des zyklischen Status-Updates. Ein manuelles Update via statusRequest-Befehl ist dennoch m&ouml;glich.
  37699. <br><br>
  37700. M&ouml;gliche Werte: 0 => zyklische Status-Updates, 1 => keine zyklischen Status-Updates.<br><br>
  37701. <li><a name="request-timeout">request-timeout</a></li>
  37702. Optionales Attribut. Maximale Dauer einer Anfrage in Sekunden zum Player.
  37703. <br><br>
  37704. M&ouml;gliche Werte: 1-5 Sekunden. Standartwert ist 4 Sekunden<br><br>
  37705. </ul>
  37706. <b>Generierte Readings/Events:</b><br>
  37707. <ul>
  37708. <li><b>input</b> - Die aktuelle Wiedergabequelle (z.B. "DISC", "USB", "Network", "YouTube", ...)</li>
  37709. <li><b>discType</b> - Die Art der eingelegten Disc (z.B "No Disc" => keine Disc eingelegt, "CD", "DVD", "BD", ...)</li>
  37710. <li><b>contentType</b> - Die Art des Inhaltes, der gerade abgespielt wird ("audio", "video", "photo" oder "no contents")</li>
  37711. <li><b>error</b> - zeigt an, ob ein interner Fehler im Player vorliegt ("none" => kein Fehler, "fan error" => L&uuml;fterdefekt, "usb overcurrent" => USB Spannungsschutz)</li>
  37712. <li><b>power</b> - Der aktuelle Betriebsstatus ("on" => an, "off" => aus)</li>
  37713. <li><b>presence</b> - Die aktuelle Empfangsbereitschaft ("present" => empfangsbereit, "absent" => nicht empfangsbereit, z.B. Stromausfall)</li>
  37714. <li><b>trayStatus</b> - Der Status der Schublade("open" => ge&ouml;ffnet, "close" => geschlossen)</li>
  37715. <li><b>trickPlay</b> - Der aktuell aktive Trick-Play Modus</li>
  37716. <li><b>state</b> - Der aktuelle Schaltzustand (power-Reading) oder die Abwesenheit des Ger&auml;tes (m&ouml;gliche Werte: "on", "off" oder "absent")</li>
  37717. <br><br><u>Quellenabh&auml;ngige Readings/Events:</u><br>
  37718. <li><b>currentChapter</b> - Das aktuelle Kapitel eines DVD- oder Blu-Ray-Films</li>
  37719. <li><b>currentTitle</b> - Die Titel-Nummer des aktuellen DVD- oder Blu-Ray-Films</li>
  37720. <li><b>currentTrack</b> - Die aktuelle Track-Nummer der wiedergebenden Audio-CD</li>
  37721. <li><b>currentMedia</b> - Der Name der aktuell wiedergebenden Datei (Nur bei der Wiedergabe &uuml;ber USB)</li>
  37722. <li><b>playTimeCurrent</b> - Der aktuelle Timecode an dem sich die Wiedergabe momentan befindet.</li>
  37723. <li><b>playTimeTotal</b> - Die komplette Spieldauer des aktuellen Films (Nur bei der Wiedergabe von DVD/BD's)</li>
  37724. <li><b>playStatus</b> - Wiedergabestatus des aktuellen Mediums</li>
  37725. <li><b>totalTracks</b> - Gesamtanzahl aller Titel einer Audio-CD</li>
  37726. </ul>
  37727. <br>
  37728. <b>Hinweise des Autors</b>
  37729. <ul>
  37730. <li>Einige &auml;ltere Player-Modelle (z.B. BD-S671) k&ouml;nnen im Auslieferungszustand nicht via Netzwerk gesteuert werden. Um eine Steuerung via FHEM zu erm&ouml;glichen ist ein <u><b>Firmware-Update notwending</b></u>!</li>
  37731. <li>Dieses Modul ist nur nutzbar, wenn die Option "Netzwerksteuerung" am Player aktiviert ist. Ansonsten ist die Steuerung nicht m&ouml;glich.</li>
  37732. </ul>
  37733. <br>
  37734. </ul>
  37735. <p><a name="YAMAHA_NP"></a>
  37736. <h3>YAMAHA_NP</h3>
  37737. <div class='langLinks'>[<a href='commandref.html#YAMAHA_NP'>EN</a> DE]</div>
  37738. <ul>
  37739. <a name="YAMAHA_NPdefine"></a>
  37740. <b>Define</b>
  37741. <br><br>
  37742. <ul>
  37743. <code>
  37744. define &lt;name&gt; YAMAHA_NP &lt;ip&ndash;address&gt; [&lt;status_interval&gt;]
  37745. </code>
  37746. <br><br>Alternatitv mit unterschiedlichen off/on Intervalldefinitionen (Default 30 Sek).<br><br>
  37747. <code>
  37748. define &lt;name&gt; YAMAHA_NP &lt;ip&ndash;address&gt; [&lt;off_status_interval&gt;] [&lt;on_status_interval&gt;]
  37749. </code>
  37750. <br><br>Dieses FHEM&ndash;Modul steuert einen Yamaha Network Player (z.B. MCR&ndash;N560, MCR&ndash;N560D, CRX&ndash;N560, CRX&ndash;N560D, CD&ndash;N500 or NP&ndash;S2000) im lokalen Netzwerk.
  37751. <br>Ger&auml;te, die das Kommunikationsprotokoll der Yamaha Network Player App f&uuml;r i*S und Andr*id implementieren, sollten ebenfalls unterst&uuml;tzen werden k&ouml;nnen.
  37752. <br><br>
  37753. Beispiel:<br>
  37754. <ul><br>
  37755. <code>
  37756. define NP_Player YAMAHA_NP 192.168.0.15<br>
  37757. attr NP_player webCmd input:selectStream:volume<br><br>
  37758. # Mit einem Statusintervall von 60 Sek.<br>
  37759. define NP_Player YAMAHA_NP 192.168.0.15 <b>60</b><br>
  37760. attr NP_player webCmd input:selectStream:volume<br><br>
  37761. # Mit unterschiedlichen Statusintervallen f&uuml;r off/on, 60/10 Sekunden<br>
  37762. define NP_Player YAMAHA_NP 192.168.0.15 <b>60 10</b><br>
  37763. attr NP_player webCmd input:selectStream:volume
  37764. </code>
  37765. </ul>
  37766. </ul>
  37767. <br>
  37768. <a name="YAMAHA_NPset"></a>
  37769. <b>Set</b>
  37770. <ul><br>
  37771. <code>
  37772. set &lt;name&gt; &lt;command&gt; [&lt;parameter&gt;]
  37773. </code>
  37774. <br>
  37775. <br>
  37776. <i>Bemerkung: Bei den Befehlen und Parametern ist die Gro�&ndash;/Kleinschreibung zu bachten. Das Modul zeigt ausschlie�lich verf&uuml;gbare Eing&auml;nge, die vom jeweiligen Ger&auml;t unterst&uuml;tzt werden. Dar&uuml;ber hinaus sind die Befehle kontextsensitiv, abh&auml;ngig von dem jeweils gew&auml;hlten Eingang bzw. Betriebsmodus.</i><br>
  37777. <ul>
  37778. <br>
  37779. <u>Verf&uuml;gbare Befehle:</u><br><br>
  37780. <li><b>CDTray</b> &ndash; &Ouml;ffnen und Schlie&szlig;en des CD&ndash;Fachs.</li>
  37781. <li><b>clockUpdate</b> &ndash; Aktualisierung der Systemzeit des Network Players. Die Zeitinformation wird von dem FHEM Server bezogen, auf dem das Modul ausgef&uuml;hrt wird.</li>
  37782. <li><b>dimmer</b> [1..3] &ndash; Einstellung der Anzeigehelligkeit</li>
  37783. <li><b>directPlay</b> < input:Stream Level 1,Stream Level 2,... > &ndash; erm&ouml;glicht direktes Abspielen eines Audiostreams/einer Audiodatei z.B. CD:1, DAB:1, netradio:Bookmarks,SWR3 </li>
  37784. <li><b>favoriteDefine</b> < name:input[,Stream Level 1,Stream Level 2,...] > &ndash; Speichert einen Favoriten e.g. CoolSong:CD,1 (vordefinierte Favoriten sind die verf&uuml;gbaren Eing&auml;nge)</li>
  37785. <li><b>favoriteDelete</b> < name > &ndash; L&ouml;scht einen Favoriten</li>
  37786. <li><b>favoritePlay</b> < name > &ndash; Spielt einen Favoriten ab</li>
  37787. <li><b>input</b> [&lt;parameter&gt;] &ndash; Auswahl des Eingangs des Network Players. (Nicht verf&uuml;gbar beim ausgeschaltetem Ger&auml;t)</li>
  37788. <li><b>mute</b> [on|off] &ndash; Aktiviert/Deaktiviert die Stummschaltung</li>
  37789. <li><b>off</b> &ndash; Network Player ausschalten</li>
  37790. <li><b>on</b> &ndash; Network Player einschalten</li>
  37791. <li><b>player [&lt;parameter&gt;] </b> &ndash; Setzt Player relevante Befehle.</li>
  37792. <ul>
  37793. <li><b>play</b> &ndash; play</li>
  37794. <li><b>stop</b> &ndash; stop</li>
  37795. <li><b>pause</b> &ndash; pause</li>
  37796. <li><b>next</b> &ndash; n&auml;chstes Audiost&uuml;ck</li>
  37797. <li><b>prev</b> &ndash; vorheriges Audiost&uuml;ck</li>
  37798. </ul>
  37799. <li><b>playMode [&lt;parameter&gt;] </b> &ndash; Setzt Player relevante Befehle</li>
  37800. <ul>
  37801. <li><b>shuffleAll</b> &ndash; setzt shuffle</li>
  37802. <li><b>shuffleOff</b> &ndash; setzt no Shuffle mode</li>
  37803. <li><b>repeatOff</b> &ndash; repeat off</li>
  37804. <li><b>repeatOne</b> &ndash; repeat one</li>
  37805. <li><b>repeatAll</b> &ndash; repeat all</li>
  37806. </ul>
  37807. <li><b>selectStream</b> &ndash; Direkte kontextsensitive Streamauswahl. Ver&uuml;gbare Men&uuml;eintr&auml;ge werden automatisch generiert. Bedingt durch das KOnzept des Yamaha&ndash;Protokolls kann dies etwas Zeit in Anspruch nehmen. (Defaultm&auml;ssig auf 999 Listeneint&auml;ge limitiert. s.a. maxPlayerLineItems Attribut.)</li>
  37808. <li><b>sleep</b> [off|30min|60min|90min|120min] &ndash; Aktiviert/Deaktiviert den internen Sleep&ndash;Timer</li>
  37809. <li><b>standbyMode</b> [eco|normal] &ndash; Umschaltung des Standby Modus.</li>
  37810. <li><b>statusRequest [&lt;parameter&gt;] </b> &ndash; Abfrage des aktuellen Status des Network Players.</li>
  37811. <ul>
  37812. <li><b>basicStatus</b> &ndash; Abfrage der Elementarparameter (z.B. Lautst&auml;rke, Eingang, etc.)</li>
  37813. <li><b>playerStatus</b> &ndash; Abfrage des Player&ndash;Status.</li>
  37814. <li><b>standbyMode</b> &ndash; Abfrage des standby Modus.</li>
  37815. <li><b>systemConfig</b> &ndash; Abfrage der Systemkonfiguration.</li>
  37816. <li><b>tunerStatus</b> &ndash; Abfrage des Tuner&ndash;Status (z.B. FM Frequenz, Preset&ndash;Nummer, DAB Information etc.)</li>
  37817. <li><b>timerStatus</b> &ndash; Abfrage des internen Wake&ndash;up timers.</li>
  37818. <li><b>networkInfo</b> &ndash; Abfrage von Netzwerk&ndash;relevanten Informationen (z.B: IP&ndash;Adresse, Gateway&ndash;Adresse, MAC&ndash;address etc.)</li>
  37819. </ul>
  37820. <li><b>timerSet</b> &ndash; konfiguriert den Timer nach den Vorgaben: timerHour, timerMinute, timerRepeat, timerVolume (s. entprechende Attribute). (ALLE Attribute m&uuml;ssen zuvor gesetzt sein. Dieser Befehl schaltet den Timer nicht ein &rarr; 'timer on'.)</li>
  37821. <li><b>timer</b> [on|off] &ndash; Schaltet ein/aus den internen Wake&ndash;up Timer. <i>(Bemerkung: Der Timer wird basierend auf den im Ger&auml;t gespeicherten Parametern aktiviert. Um diese zu &auml;ndern, bitte den 'timerSet' Befehl benutzen.)</i></li>
  37822. <li><b>tunerFMFrequency</b> [87.50 ... 108.00] &ndash; Setzt die FM Frequenz. Der Wert muss zwischen 87.50 ... 108.00 liegen und muss den Digitalpunkt beinhalten ('.') mit zwei Nachkommastellen.</li>
  37823. <li><b>volume</b> [0...100] &ndash; Setzt den relativen Lautst&auml;rkepegel in &#037;</li>
  37824. <li><b>volumeStraight</b> [&lt;VOL_MIN&gt;...&lt;VOL_MAX&gt;] &ndash; Setzt die absolute Lautst&auml;rke wie vom Ger&auml;t benutzt und angezeigt. Die Parameter &lt;VOL_MIN&gt; and &lt;VOL_MAX&gt; werden automatisch ermittelt.</li>
  37825. <li><b>volumeUp</b> [&lt;VOL_MIN&gt;...&lt;VOL_MAX&gt;] &ndash; Erh&ouml;ht die Lautst&auml;rke um einen absoluten Schritt. Die Parameter &lt;VOL_MIN&gt; and &lt;VOL_MAX&gt; werden automatisch ermittelt.</li>
  37826. <li><b>volumeDown</b> [&lt;VOL_MIN&gt;...&lt;VOL_MAX&gt;] &ndash; Reduziert die Lautst&auml;rke um einen absoluten Schritt. Die Parameter &lt;VOL_MIN&gt; and &lt;VOL_MAX&gt; werden automatisch ermittelt.</li>
  37827. </ul>
  37828. </ul>
  37829. <br>
  37830. <a name="YAMAHA_NPget"></a>
  37831. <b>Get</b>
  37832. <ul>
  37833. <code>
  37834. get &lt;name&gt; &lt;reading&gt;
  37835. </code>
  37836. <br><br>
  37837. Der 'get' Befehl liest Readingwerte zur&uuml;ck. Die Readings sind kontextsensitiv und h&auml;ngen von dem/der jeweils gew&auml;hlten Eingang bzw. Aktion ab.<br><br>
  37838. </ul>
  37839. <a name="YAMAHA_NPattr"></a>
  37840. <b>Attributes</b><br><br>
  37841. <ul>
  37842. <ul>
  37843. <li><b>.DABList</b> &ndash; (internes) Attribut zum Speichern von DAB Presets</li>
  37844. <li><b>.favoriteList</b> &ndash; (internes) Attribut zum Speichern von Favoriten</li>
  37845. <li><b>autoUpdatePlayerReadings</b> &ndash; optionales Attribut zum automtischen aktualisieren der Player&ndash;Readings (Default 1)</li>
  37846. <li><b>autoUpdatePlayerlistReadings</b> &ndash; optionales Attribut zum automatischen Scannen der Playerlist (Men&uuml;) (Default 1). (Aufgrund des Kommunikationskonzeptes bei der &Uuml;bertragung der Playerlistinformation kann diese Funktion zu l&auml;ngeren Reaktionszeiten bei der Yamaha App f&uuml;hren, wenn gleichzeitig auf den Netzwerkplayer zugegriffen wird.)</li>
  37847. <li><b>autoUpdateTunerReadings</b> &ndash; optionales Attribut zum automtischen aktualisieren der Tuner&ndash;Readings (Default 1)</li>
  37848. <li><b>directPlaySleepNetradio</b> &ndash; optionales Attribut zum Definieren der Sleep-Zeit zwischen zwei netradio Anfragen zum vTuner Server, wenn der Befehl directPlay benutzt wird. Kann bei langsamen Interneverbindungen n&uuml;tzlich sein. (Default 5 Sek.).</li>
  37849. <li><b>directPlaySleepServer</b> &ndash; optionales Attribut zum Definieren der Sleep-Zeit zwischen zwei Multimediaserver-Anfragen, wenn der Befehl directPlay benutzt wird. Kann bei langsamen Verbindungen n&uuml;tzlich sein. (Default 2 Sek.).</li>
  37850. <li><b>disable</b> &ndash; optionales Attribut zum Deaktivieren des internen zyklischen Timers zum Aktualisieren des NP&ndash;Status. Manuelles Update ist nach wie vor m&ouml;glich. M&ouml;gliche Werte: 0 &rarr; Zyklisches Update aktiv., 1 &rarr; Zyklisches Update inaktiv (Default 1).</li>
  37851. <li><b>do_not_notify</b></li>
  37852. <li><b>maxPlayerListItems</b> &ndash; optionales Attribut zum Limitieren der maximalen Anzahl von Men&uuml;eintr&auml;gen (Default 999).</li>
  37853. <li><b>readingFnAttributes</b></li>
  37854. <li><b>requestTimeout</b> &ndash; optionales Attribut zum setzen des HTTP response Timeouts (Default 4)</li>
  37855. <li><b>searchAttempts</b> &ndash; optionales Attribut zur Definition von max. Anzahl der Suchversuche des angegebenen Direktoryinhalts bei der Benutzng des directPlay Befehls. M&ouml;gliche Werte: 15...100 (Default 15 Sek.).</li>
  37856. <li><b>smoothVolumeChange</b> &ndash; optionales Attribut zur sanften Lautst&auml;rke&auml;nderung (Erzeugt deutlich mehr Ethernetkommunikation w&auml;hrend der Lautst&auml;rke&auml;nderung). (Default 1)</li>
  37857. <li><b>timerHour</b> [0...23] &ndash; Setzt die Stunde des internen Wake&ndash;up Timers</li>
  37858. <li><b>timerMinute</b> [0...59] &ndash; Setzt die Minute des internen Wake&ndash;up Timers</li>
  37859. <li><b>timerRepeat</b> [once|every] &ndash; Setzt den Wiederholungsmodus des internen Wake&ndash;up Timers</li>
  37860. <br>
  37861. </ul>
  37862. </ul>
  37863. <b>Readings</b><br>
  37864. <ul>
  37865. <ul>
  37866. <br><u>Generelle Readings:</u><br><br>
  37867. <li><b>deviceInfo</b> &ndash; Devicespezifische, konsolidierte Informationen wie z.B. uuid, IP&ndash;Adresse, usw.</li>
  37868. <li><b>favoriteList</b> &ndash; Listet gespeicherte Favoriten auf</li>
  37869. <li><b>reading [reading]</b> &ndash; Gibt Readingwerte zur&uuml;ck</li>
  37870. <ul><br>
  37871. <li>.volumeStraightMax &ndash; Devicespezifische maximale Lautst&aumlrke</li>
  37872. <li>.volumeStraightMin &ndash; Devicespezifische minimale Lautst&aumlrke</li>
  37873. <li>.volumeStraightStep &ndash; Devicespezifischer minimales Lautst&aumlrkenin&ndash;&#47;dekrement</li>
  37874. <li>audioSource &ndash; Konsolidierte Audiostreaminformation mit aktuell gew&auml;hltem Eingang, Playerstatus (wenn aktiv) und Mute Information. (off|reading status...|input [(play|stop|pause[, muted])]])</li>
  37875. <li>directPlay &ndash; Status des directPlay Befehls</li>
  37876. <li>input &ndash; Aktuell gew&aumlhlter Eingang</li>
  37877. <li>mute &ndash; Mute status</li>
  37878. <li>power &ndash; Aktueller Devicestatus (on|off)</li>
  37879. <li>presence &ndash; Ger&aumlteverf&uuml;gbarkeit im Netzwerk (present|absent)</li>
  37880. <li>selectStream &ndash; Status des selectStream Befehls</li>
  37881. <li>sleep &ndash; Sleeptimer Wert (off|30 min|60 min|90 min|120 min)</li>
  37882. <li>standbyMode &ndash; Standby Mode Status (normal|eco)</li>
  37883. <li>state &ndash; Aktueller Ger&auml;tezusand (on|off)</li>
  37884. <li>volume &ndash; Relative Lautst&aumlrke [0 ... 100]</li>
  37885. <li>volumeStraight &ndash; Devicespezifische absolute Lautst&aumlrke [&lt;VOL_MIN&gt;...&lt;VOL_MAX&gt;]</li>
  37886. </ul>
  37887. <br><u>Playerspezifische Readings:</u><br><br>
  37888. <li><b>playerPlaybackInfo</b> &ndash; Abfrage des aktuellen Player Status (play|stop|pause)</li>
  37889. <li><b>playerAlbum</b> &ndash; Abfrage des Albumnamens (falls verf&uuml;gbar) der aktuellen Wiedergabe</li>
  37890. <li><b>playerAlbumArtURL</b> &ndash; Abfrage der Album URL (falls verf&uuml;gbar) der aktuellen Wiedergabe</li>
  37891. <li><b>playerAlbumArtID</b> &ndash; Abfrage der AlbumArtID (falls verf&uuml;gbar) der aktuellen Wiedergabe</li>
  37892. <li><b>playerAlbumArtFormat</b> &ndash; Abfrage des AlbumArt Formats (falls verf&uuml;gbar) der aktuellen Wiedergabe</li>
  37893. <li><b>playerArtist</b> &ndash; Abfrage des K&uuml;nstler (Artist) (falls verf&uuml;gbar) der aktuellen Wiedergabe</li>
  37894. <li><b>playerDeviceType</b> &ndash; Abfrage des Device Typs (ipod|msc)</li>
  37895. <li><b>playerIpodMode</b> &ndash; Abfrage des iP*d/iPh*ne Modus (normal|off)</li>
  37896. <li><b>playerPlayTime</b> &ndash; Abfrage der aktuellen Spielzeit (HH:MM:SS)</li>
  37897. <li><b>playerRepeat</b> &ndash; Abfrage des Wiederholungsmodus (one|all)</li>
  37898. <li><b>playerShuffle</b> &ndash; Abfrage des Zufallswiedergabemodus (on|off)</li>
  37899. <li><b>playerSong</b> &ndash; Abfrage des Tracknamens (falls verf&uuml;gbar) der aktuellen Wiedergabe</li>
  37900. <li><b>playerTotalTracks</b> &ndash; Abfrage der Gesamtzahl der zu wiedergebenden Tracks</li>
  37901. <li><b>playerTrackNb</b> &ndash; Abfrage der Audiotracknummer</li>
  37902. <br><u>Playerlistspezifische (Men&uuml;) Readings:</u><br><br>
  37903. <li>listItem_XXX &ndash; Inhalt der Men&uuml;eintr&auml;ge. Prefix 'c_' steht f&uuml;r Container (Directory), Prefix 'i_' f&uuml;r Item (Audiofile/Stream). Die Anzahl kann mit dem Attribut 'maxPlayerLineItems' limitiert werden (Default 999).</li>
  37904. <li>lvlX_ &ndash; Zeigt den hierarchischen Directorylevel im Directory Tree an</li>
  37905. <br><u>Tunerspezifische Readings:</u><br><br>
  37906. <li>listItem_XXX &ndash; Gespeicherter Preset</li>
  37907. <li>tunerBand &ndash; Tuner Band (DAB|FM)</li>
  37908. <br>
  37909. <li>DAB</li>
  37910. <ul><li>tunerDABStation &ndash; (DAB|DAB+), Channel: (value), Ensemble: (name)</li></ul>
  37911. <ul><li>tunerDABSignal &ndash; (Frequenz), (Signalqualit&auml;), (Bitrate), (Mono|Stereo)</li></ul>
  37912. <ul><li>tunerInfo1 &ndash; DAB program service</li></ul>
  37913. <ul><li>tunerPreset &ndash; (Preset number DAB Frequenz Sender) oder '&ndash;' wenn aktueller Sender nicht als Preset gespeichert wurde</li></ul>
  37914. <ul><li>tunerStation &ndash; DAB Sendername</li></ul>
  37915. <br>
  37916. <li>FM</li>
  37917. <ul><li>tunerFrequency &ndash; FM Frequenz</li></ul>
  37918. <ul><li>tunerInfo1 &ndash; FM Sendername</li></ul>
  37919. <ul><li>tunerInfo2_A &ndash; Zus&auml;tzliche RDS Information A</li></ul>
  37920. <ul><li>tunerInfo2_A &ndash; Zus&auml;tzliche RDS Information B</li></ul>
  37921. <ul><li>tunerPreset &ndash; (Presetnummer FM Frequenz Sender) oder '&ndash;' wenn aktueller Sender nicht als Preset gespeichert wurde</li></ul>
  37922. <br><u>Timerspezifische Readings:</u><br><br>
  37923. <li>timer &ndash; Aktueller Timerstatus (on|off)</li>
  37924. <li>timerRepeat &ndash; Timer repeat mode (once|every)</li>
  37925. <li>timerStartTime &ndash; Timer Startzeit HH:MM</li>
  37926. <li>timerVolume &ndash; Timerlautst&auml;rke [&lt;VOL_MIN&gt;...&lt;VOL_MAX&gt;]</li>
  37927. </ul>
  37928. </ul>
  37929. </ul>
  37930. <p><a name="ZM_Monitor"></a>
  37931. <h3>ZM_Monitor</h3>
  37932. <ul>
  37933. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37934. hier: <a href='commandref.html#ZM_Monitor'>ZM_Monitor</a><br/>
  37935. </ul>
  37936. <a name="ZWCUL"></a>
  37937. <h3>ZWCUL</h3>
  37938. <ul>
  37939. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37940. hier: <a href='commandref.html#ZWCUL'>ZWCUL</a><br/>
  37941. </ul>
  37942. <a name="ZWDongle"></a>
  37943. <h3>ZWDongle</h3>
  37944. <ul>
  37945. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37946. hier: <a href='commandref.html#ZWDongle'>ZWDongle</a><br/>
  37947. </ul>
  37948. <a name="ZWave"></a>
  37949. <h3>ZWave</h3>
  37950. <ul>
  37951. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37952. hier: <a href='commandref.html#ZWave'>ZWave</a><br/>
  37953. </ul>
  37954. <a name="ZoneMinder"></a>
  37955. <h3>ZoneMinder</h3>
  37956. <ul>
  37957. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37958. hier: <a href='commandref.html#ZoneMinder'>ZoneMinder</a><br/>
  37959. </ul>
  37960. <a name="alarmclock"></a>
  37961. <h3>alarmclock</h3>
  37962. <ul>
  37963. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37964. hier: <a href='commandref.html#alarmclock'>alarmclock</a><br/>
  37965. </ul>
  37966. <a name="alexa"></a>
  37967. <h3>alexa</h3>
  37968. <ul>
  37969. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  37970. hier: <a href='commandref.html#alexa'>alexa</a><br/>
  37971. </ul>
  37972. <a name="allergy"></a>
  37973. <h3>allergy</h3>
  37974. <div class='langLinks'>[<a href='commandref.html#allergy'>EN</a> DE]</div>
  37975. <ul>
  37976. <br>Dieses Modul prognostiziert Allergie Daten fĂźr Deutschland.</br>
  37977. Es erfordert dass das Perlmodul XML:: Simple installiert ist.
  37978. <br/><br/>
  37979. <b>Define</b>
  37980. <ul>
  37981. <code>define &lt;name&gt; allergy &lt;Postleitzahl&gt;</code>
  37982. <br>
  37983. Beispiel: <code>define allergydata allergy 12345</code>
  37984. <br><br>
  37985. <li><code>Postleitzahl</code>
  37986. <br>
  37987. Deutsche Postleitzahl
  37988. </li><br>
  37989. </ul>
  37990. <br>
  37991. <b>Get</b>
  37992. <ul>
  37993. <li><code>data</code>
  37994. <br>
  37995. Manuelles Datenupdate
  37996. </li><br>
  37997. </ul>
  37998. <br>
  37999. <b>Readings</b>
  38000. <ul>
  38001. <li><code>city</code>
  38002. <br>
  38003. Name der Stadt, fĂźr die Prognosen gelesen werden.
  38004. </li><br>
  38005. <li><code>fc<i>n</i>_total</code>
  38006. <br>
  38007. Täglicher HÜchstwerte fßr alle Allergene, die nicht aufgrund der Ignoreliste <i>(attr ignoreList)</i> ignoriert werden<br/>
  38008. </li><br>
  38009. <li><code>fc<i>n</i>_day_of_week</code>
  38010. <br>
  38011. Wochentag, kann durch <i>weekdaysFormat</i> lokalisiert werden.<br/>
  38012. </li><br>
  38013. <li><code>fc<i>n</i>_<i>allergen</i></code>
  38014. <br>
  38015. Tägliche Werte fßr alle Allergene, die nicht aufgrund der Ignoreliste <i>(attr ignoreList)</i> ignoriert werden.
  38016. </li><br>
  38017. </ul>
  38018. <br>
  38019. <b>Attribute</b>
  38020. <ul>
  38021. <li><code>ignoreList</code>
  38022. <br>
  38023. Kommagetrennte Liste von Allergen-Namen, die bei der Aktualisierung ignoriert werden sollen.
  38024. <br>
  38025. </li><br>
  38026. <li><code>updateEmpty (Standard: 0|1)</code>
  38027. <br>
  38028. Aktualisierung von Allergenen.
  38029. <code> <br>
  38030. 0 = nur Allergene mit Belastung.
  38031. <br>
  38032. 1 = auch Allergene die keine Belastung haben.
  38033. </code>
  38034. </li><br>
  38035. <li><code>updateIgnored (1)</code>
  38036. <br>
  38037. Aktualisierung von Allergenen, die sonst durch die ignoreList entfernt werden.
  38038. </li><br>
  38039. <li><code>extended5Days (1)</code>
  38040. <br>
  38041. Alternative Datenquelle mit 5 Tagen Vorhersage fĂźr mehr Allergene
  38042. </li><br>
  38043. <li><code>levelsFormat (Standard: -,low,moderate,high,extreme)</code>
  38044. <br>
  38045. Lokalisierte Levels, durch Kommas getrennt.
  38046. </li><br>
  38047. <li><code>weekdaysFormat (Standard: Sun,Mon,Tue,Wed,Thu,Fri,Sat)</code>
  38048. <br>
  38049. Lokalisierte Wochentage, durch Kommas getrennt.
  38050. </li><br>
  38051. </ul>
  38052. </ul>
  38053. <p><a name="allowed"></a>
  38054. <h3>allowed</h3>
  38055. <div class='langLinks'>[<a href='commandref.html#allowed'>EN</a> DE]</div>
  38056. <ul>
  38057. <br>
  38058. <a name="alloweddefine"></a>
  38059. <b>Define</b>
  38060. <ul>
  38061. <code>define &lt;name&gt; allowed &lt;deviceList&gt;</code>
  38062. <br><br>
  38063. Authorisiert das Ausf&uuml;hren von Kommandos oder das &Auml;ndern von
  38064. Ger&auml;ten abh&auml;ngig vom verwendeten Frontend.<br>
  38065. Falls man mehrere allowed Instanzen definiert hat, die f&uuml;r dasselbe
  38066. Frontend verantwortlich sind, dann m&uuml;ssen alle Authorisierungen
  38067. genehmigt sein, um das Befehl ausf&uuml;hren zu k&ouml;nnen. Auf der
  38068. anderen Seite reicht es, wenn einer der Authentifizierungen positiv
  38069. entschieden wird. Die Pr&uuml;fungen werden in alphabetischer Reihenfolge
  38070. der Instanznamen ausgef&uuml;hrt. <br><br>
  38071. <b>Achtung:</b> das Modul sollte wie hier beschrieben funktionieren,
  38072. allerdings k&ouml;nnen wir keine Garantie geben, da&szlig; man sie nicht
  38073. &uuml;berlisten, und Schaden anrichten kann.<br><br>
  38074. Beispiele:
  38075. <ul><code>
  38076. define allowedWEB allowed<br>
  38077. attr allowedWEB validFor WEB,WEBphone,WEBtablet<br>
  38078. attr allowedWEB basicAuth { "$user:$password" eq "admin:secret" }<br>
  38079. attr allowedWEB allowedCommands set,get<br><br>
  38080. define allowedTelnet allowed<br>
  38081. attr allowedTelnet validFor telnetPort<br>
  38082. attr allowedTelnet password secret<br>
  38083. </code></ul>
  38084. <br>
  38085. </ul>
  38086. <a name="allowedset"></a>
  38087. <b>Set</b>
  38088. <ul>
  38089. <li>basicAuth &lt;username&gt; &lt;password&gt;</li>
  38090. <li>password &lt;password&gt;</li>
  38091. <li>globalpassword &lt;password&gt;<br>
  38092. diese Befehle setzen das entsprechende Attribut, indem sie aus den
  38093. Parameter und ein Salt ein SHA256 Hashwert berechnen. Achtung: das perl
  38094. Modul Device::SHA wird ben&ouml;tigt.
  38095. </li>
  38096. </ul><br>
  38097. <a name="allowedget"></a>
  38098. <b>Get</b> <ul>N/A</ul><br>
  38099. <a name="allowedattr"></a>
  38100. <b>Attribute</b>
  38101. <ul>
  38102. <li><a href="#disable">disable</a>
  38103. </li><br>
  38104. <a name="allowedCommands"></a>
  38105. <li>allowedCommands<br>
  38106. Eine Komma getrennte Liste der erlaubten Befehle des passenden
  38107. Frontends (siehe validFor). Bei einer leeren Liste (, dh. nur ein
  38108. Komma) wird dieser Frontend "read-only".
  38109. Falls es auf <code>get,set</code> gesetzt ist, dann sind in dieser
  38110. Frontend keine Konfigurations&auml;nderungen m&ouml;glich, nur
  38111. "normale" Bedienung der Schalter/etc.
  38112. </li><br>
  38113. <a name="allowedDevices"></a>
  38114. <li>allowedDevices<br>
  38115. Komma getrennte Liste von Ger&auml;tenamen, die mit dem passenden
  38116. Frontend (siehe validFor) ge&auml;ndert werden k&ouml;nnen.
  38117. </li><br>
  38118. <a name="allowedDevicesRegexp"></a>
  38119. <li>allowedDevicesRegexp<br>
  38120. Regexp um die Ger&auml;te zu spezifizieren, die man bearbeiten darf.
  38121. Das Regexp wird (wie in FHEM &uuml;blich) mit ^ und $ erg&auml;nzt.
  38122. </li><br>
  38123. <a name="allowedIfAuthenticatedByMe"></a>
  38124. <li>allowedIfAuthenticatedByMe<br>
  38125. falls gesetzt (auf 1), dann werden die allowed Attribute nur dann
  38126. angewendet, falls auch die Authentifikation durch diese allowed Instanz
  38127. durchgef&uuml;hrt wurde.
  38128. </li><br>
  38129. <a name="basicAuth"></a>
  38130. <li>basicAuth, basicAuthMsg<br>
  38131. Erzwingt eine Authentifizierung mit Benutzername/Passwort f&uuml;r die
  38132. zugerdnete FHEMWEB Instanzen. Der Wert kann entweder das base64
  38133. kodierte Benutzername:Passwort sein, ein SHA256 hash (was man am besten
  38134. mit dem passenden set Befehl erzeugt), oder, falls er in {}
  38135. eingeschlossen ist, ein Perl Ausdruck. F&uuml;r Letzteres wird
  38136. $user und $passwort gesetzt, und muss wahr zur&uuml;ckliefern, falls
  38137. Benutzername und Passwort korrekt sind. Beispiele:
  38138. <ul><code>
  38139. attr allowed basicAuth ZmhlbXVzZXI6c2VjcmV0<br>
  38140. attr allowed basicAuth SHA256:F87740B5:q8dHeiClaPLaWVsR/rqkzcBhw/JvvwVi4bEwKmJc/Is<br>
  38141. attr allowed basicAuth {"$user:$password" eq "fhemuser:secret"}<br>
  38142. </code></ul>
  38143. basicAuthMsg wird (in manchen Browsern) in dem Passwort Dialog als
  38144. &Uuml;berschrift angezeigt.<br>
  38145. </li><br>
  38146. <a name="password"></a>
  38147. <li>password<br>
  38148. Betrifft nur telnet Instanzen (siehe validFor): Bezeichnet ein
  38149. Passwort, welches als allererster String eingegeben werden muss,
  38150. nachdem die Verbindung aufgebaut wurde. F&uuml;r die Werte gelten die
  38151. Regeln von basicAuth, mit der Ausnahme, dass nur Passwort und kein
  38152. Benutzername spezifiziert wird.<br> Falls dieser Parameter gesetzt
  38153. wird, sendet FHEM telnet IAC Requests, um ein Echo w&auml;hrend der
  38154. Passworteingabe zu unterdr&uuml;cken. Ebenso werden alle
  38155. zur&uuml;ckgegebenen Zeilen mit \r\n abgeschlossen.<br>
  38156. Falls dieses Attribut gesetzt wird, muss als erstes Argument ein
  38157. Passwort angegeben werden, wenn fhem.pl im Client-mode betrieben wird:
  38158. <ul><code>
  38159. perl fhem.pl localhost:7072 secret "set lamp on"
  38160. </code></ul>
  38161. </li><br>
  38162. <a name="globalpassword"></a>
  38163. <li>globalpassword<br>
  38164. Betrifft nur telnet Instanzen (siehe validFor): Entspricht dem
  38165. Attribut password; ein Passwort wird aber ausschlie&szlig;lich f&uuml;r
  38166. nicht-lokale Verbindungen verlangt.
  38167. </li><br>
  38168. <a name="validFor"></a>
  38169. <li>validFor<br>
  38170. Komma separierte Liste von Frontend-Instanznamen. Aktuell werden nur
  38171. Frontends unterst&uuml;tzt, die das FHEM TCP/IP Bibliothek verwenden,
  38172. z.Bsp. telnet und FHEMWEB. Falls nicht gesetzt, ist die allowed Instanz
  38173. nicht aktiv.
  38174. </li>
  38175. </ul>
  38176. <br>
  38177. </ul>
  38178. <p><a name="apptime"></a>
  38179. <h3>apptime</h3>
  38180. <ul>
  38181. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  38182. hier: <a href='commandref.html#apptime'>apptime</a><br/>
  38183. </ul>
  38184. <a name="archetype"></a>
  38185. <h3>archetype</h3>
  38186. <div class='langLinks'>[<a href='commandref.html#archetype'>EN</a> DE]</div>
  38187. ( <a href="commandref.html#archetype">en</a> | de )
  38188. <div>
  38189. <ul>
  38190. Mit einem archetype werden Attribute auf Erben (inheritors), andere
  38191. Ger&auml;te, &uuml;bertragen. Die Erben k&ouml;nnen, nach einem vorgegeben
  38192. Muster im archetype und f&uuml;r Beziehungen (relations), eine bestimmte
  38193. Gruppe von Ger&auml;ten, definiert werden.<br>
  38194. <br>
  38195. Hinweise:
  38196. <ul>
  38197. <li>
  38198. <code>$name</code><br>
  38199. Name des Erben
  38200. </li><br>
  38201. <li>
  38202. <code>$room</code><br>
  38203. Raum der Beziehung
  38204. </li><br>
  38205. <li>
  38206. <code>$relation</code><br>
  38207. Name der Beziehung
  38208. </li><br>
  38209. <li>
  38210. <code>$SELF</code><br>
  38211. Name des archetype
  38212. </li>
  38213. </ul>
  38214. <br>
  38215. <a name="archetypecommand"></a>
  38216. <b>Befehle</b>
  38217. <ul>
  38218. <code>clean [check]</code><br>
  38219. Definiert fĂźr alle Beziehungen aller archetype die Erben, vererbt fĂźr
  38220. alle archetype die unter dem Attribut attributes angegeben Attribute auf
  38221. alle Erben.<br>
  38222. Wird optinal der Parameter "check" angegeben werden alle ausstehenden
  38223. Attribute und Erben angezeigt.
  38224. </ul>
  38225. <br>
  38226. <a name="archetypedefine"></a>
  38227. <b>Define</b>
  38228. <ul>
  38229. <code>
  38230. define &lt;name&gt; archetype [&lt;devspec&gt;] [&lt;devspec&gt;] [...]
  38231. </code><br>
  38232. In den &lt;devspec&gt; werden alle Erben beschrieben die es fĂźr dieses
  38233. archetype gibt. Es sollte darauf geachtet werden, dass jeder Erbe nur
  38234. einem archetype zugeordnet ist.<br>
  38235. Wird keine &lt;devspec&gt; angegeben wird diese mit "defined_by=$SELF"
  38236. gesetzt. Diese devspec wird auch immer &uuml;berpr&uuml;ft, selbst wenn
  38237. sie nicht angegeben ist.<br>
  38238. Siehe den Abschnitt &uuml;ber
  38239. <a href="#devspec">Ger&auml;te-Spezifikation</a>
  38240. f&uuml;r Details der &lt;devspec&gt;.<br>
  38241. <br>
  38242. <code>define &lt;name&gt; archetype derive attributes</code><br>
  38243. Wird in der DEF "derive attributes" angegeben handelt es sich um ein
  38244. besonderes archetype. Es leitet Attribute anhand eines Musters ab.<br>
  38245. Das Muster wird mit den Attributen actual_.+ beschrieben.<br>
  38246. Als Erben werden alle Ger&auml;te aufgelistet welche alle Pflicht-
  38247. Attribute eines Musters besitzen.
  38248. </ul>
  38249. <br>
  38250. <a name="archetypeset"></a>
  38251. <b>Set</b>
  38252. <ul>
  38253. <li>
  38254. <code>addToAttrList &lt;attribute&gt;</code><br>
  38255. Der Befehl ist nur bei einem archetype mit der DEF "derive attributes"
  38256. m&ouml;glich.<br>
  38257. F&uuml;gt global einen Eintrag unter userattr hizu, sodass er f&uuml;r
  38258. alle Ge&auml;r&auml;te zur Verf&uuml;gung steht.<br>
  38259. Dies kann sinnvoll sein um den alias nach einem Muster abzuleiten.
  38260. </li>
  38261. <br>
  38262. <li>
  38263. <code>define inheritors</code><br>
  38264. Definiert f&uuml;r alle Beziehungen einen Erben nach dem Muster:<br>
  38265. <ul>
  38266. <code>
  38267. define &lt;metaNAME&gt; &lt;actualTYPE&gt; [&lt;metaDEF&gt;]
  38268. </code>
  38269. </ul>
  38270. Wenn ein Erbe definiert wird, wird er, mit den unter dem Attribut
  38271. initialize angegebenen Befehlen, initialisiert und ihm wir das Attribut
  38272. defined_by mit dem Wert $SELF zugewiesen.<br>
  38273. Die Beziehungen, metaNAME, actualTYPE und metaDEF werden in Attributen
  38274. beschrieben.
  38275. </li>
  38276. <br>
  38277. <li>
  38278. <code>derive attributes</code><br>
  38279. Der Befehl ist nur bei einem archetype mit der DEF "derive attributes"
  38280. m&ouml;glich.<br>
  38281. Leitet f&uuml;r alle Erben die unter dem Attribut attributes angegeben
  38282. Attribute ab.
  38283. </li>
  38284. <br>
  38285. <li>
  38286. <code>inheritance</code><br>
  38287. Vererbt die eigenen unter dem Attribut attributes angegeben Attribute
  38288. auf alle Erben.
  38289. </li>
  38290. <br>
  38291. <li>
  38292. <code>initialize inheritors</code><br>
  38293. F&uuml;hrt f&uuml;r alle Erben die unter dem Attribut initialize
  38294. angegebenen Befehle aus.
  38295. </li>
  38296. <br>
  38297. <li>
  38298. <code>raw &lt;Befehl&gt;</code><br>
  38299. F&uuml;hrt f&uuml;r alle Erben den Befehl aus.
  38300. </li>
  38301. </ul>
  38302. <br>
  38303. <a name="archetypeget"></a>
  38304. <b>Get</b>
  38305. <ul>
  38306. <li>
  38307. <code>inheritors</code><br>
  38308. Listet alle Erben auf.
  38309. </li>
  38310. <br>
  38311. <li>
  38312. <code>relations</code><br>
  38313. Listet alle Beziehungen auf.
  38314. </li>
  38315. <br>
  38316. <li>
  38317. <code>pending attributes</code><br>
  38318. Listet f&uuml;r jeden Erben die unter dem Attribut attributes angegeben
  38319. Attribute auf, die nicht mit den Attributen des archetype
  38320. &uuml;bereinstimmen.
  38321. </li>
  38322. <br>
  38323. <li>
  38324. <code>pending inheritors</code><br>
  38325. Listet alle Erben auf die aufgrund der Beziehungen noch definiert
  38326. werden sollen.
  38327. </li>
  38328. </ul>
  38329. <br>
  38330. <a name="archetypeattr"></a>
  38331. <b>Attribute</b>
  38332. <ul>
  38333. Hinweise:
  38334. <ul>
  38335. Alle Attribute die vererbt werden k&ouml;nnen, k&ouml;nnen vorab mit
  38336. einem Modifikator versehen werden.
  38337. <li>
  38338. <code>attr archetype &lt;attribute&gt; undef:&lt;...&gt;</code><br>
  38339. Wird <code>undef:</code> vorangestellt wird das Attribut nur vererbt,
  38340. sofern der Erbe dieses Attribut noch nicht besitzt.
  38341. </li><br>
  38342. <li>
  38343. <code>
  38344. attr archetype &lt;attribute&gt;
  38345. least[(&lt;Trennzeichen&gt;)]:&lt;...&gt;
  38346. </code><br>
  38347. Wird eine Liste vererbt kann mit dem voranstellen von
  38348. <code>least[(&lt;Trennzeichen&gt;)]:</code>
  38349. angegeben werden, dass diese Elemente mindestens vorhanden sein
  38350. sollen.<br>
  38351. Wird kein Trennzeichen angegeben wird das Leerzeichen als
  38352. Trennzeichen verwendet.
  38353. </li>
  38354. </ul>
  38355. <br>
  38356. <li>
  38357. <code>actual_&lt;attribute&gt; &lt;value&gt;</code><br>
  38358. &lt;value&gt; kann als &lt;Text&gt; oder als {perl code} angegeben
  38359. werden.<br>
  38360. Wir das Attribut &lt;attribute&gt; vererbt, ersetz die R&uuml;ckgabe
  38361. des actual_&lt;attribute&gt; Wert des Attributes.<br>
  38362. Bei dem archetype mit der DEF "derive attributes" kĂśnnen Muster
  38363. definiert werden.<br>
  38364. Beispiel:
  38365. <code>
  38366. actual_alias %captionRoom|room%: %description%[ %index%][%suffix%]
  38367. </code><br>
  38368. Alle in % eingeschlossenen AusdrĂźcke sind Attribute. Eine Reihenfolge
  38369. lässt sich durch | erreichen. Ist ein Ausdruck in [] eingeschlossen ist
  38370. er optional.<br>
  38371. Die AusdrĂźcke captionRoom, description, index und suffix sind hierbei
  38372. durch addToAttrList hinzugefĂźgte Attribute.<br>
  38373. </li>
  38374. <br>
  38375. <li>
  38376. <code>actualTYPE &lt;TYPE&gt;</code><br>
  38377. Legt den TYPE des Erben fest. Der Standardwert ist dummy.
  38378. </li>
  38379. <br>
  38380. <li>
  38381. <code>attributes &lt;attribute&gt; [&lt;attribute&gt;] [...]</code><br>
  38382. Leerzeichen-getrennte Liste der zu vererbenden Attribute.
  38383. </li>
  38384. <br>
  38385. <li>
  38386. <code>
  38387. attributesExclude &lt;attribute&gt; [&lt;attribute&gt;] [...]
  38388. </code><br>
  38389. Leerzeichen-getrennte Liste von Attributen die nicht auf diesen Erben
  38390. vererbt werden.
  38391. </li>
  38392. <br>
  38393. <li>
  38394. <code>autocreate 0</code><br>
  38395. Durch das archetype werden Attribute auf neue devices nicht automatisch
  38396. vererbt und Erben werden nicht automatisch fĂźr neue Beziehungen
  38397. angelegt.<br>
  38398. Der Standardwert ist 1.
  38399. </li>
  38400. <br>
  38401. <li>
  38402. <code>defined_by &lt;...&gt;</code><br>
  38403. Hilfsattribut um zu erkennen, durch welchen archetype der Erbe
  38404. definiert wurde.
  38405. </li>
  38406. <br>
  38407. <li>
  38408. <code>delteAttributes 1</code><br>
  38409. Wird ein Attribut im archetype gelĂśscht, wird es auch bei allen Erben
  38410. gelĂśscht.<br>
  38411. Der Standardwert ist 0.
  38412. </li>
  38413. <br>
  38414. <li>
  38415. <code>disable 1</code><br>
  38416. Es werden keine Attribute mehr vererbt und keine Erben definiert.
  38417. </li>
  38418. <br>
  38419. <li>
  38420. <code>initialize &lt;initialize&gt;</code><br>
  38421. &lt;initialize&gt; kann als &lt;Text&gt; oder als {perl code} angegeben
  38422. werden.<br>
  38423. Der &lt;Text&gt; oder die R&uuml;ckgabe vom {perl code} muss eine
  38424. durch Semikolon (;) getrennte Liste von FHEM-Befehlen sein. Mit diesen
  38425. werden die Erben initialisiert, wenn sie definiert werden.
  38426. </li>
  38427. <br>
  38428. <li>
  38429. <code>metaDEF &lt;metaDEF&gt;</code><br>
  38430. &lt;metaDEF&gt; kann als &lt;Text&gt; oder als {perl code} angegeben
  38431. werden und beschreibt den Aufbau der DEF f&uuml;r die Erben.
  38432. </li>
  38433. <br>
  38434. <li>
  38435. <code>metaNAME &lt;metaNAME&gt;</code><br>
  38436. &lt;metaNAME&gt; kann als &lt;Text&gt; oder als {perl code} angegeben
  38437. werden und beschreibt den Aufbau des Namen f&uuml;r die Erben.
  38438. </li>
  38439. <br>
  38440. <li>
  38441. <code><a href="#readingList">readingList</a></code>
  38442. </li>
  38443. <br>
  38444. <li>
  38445. <code>relations &lt;devspec&gt; [&lt;devspec&gt;] [...]</code><br>
  38446. In den &lt;relations&gt; werden alle Beziehungen beschrieben die es fĂźr
  38447. dieses archetype gibt.<br>
  38448. Siehe den Abschnitt &uuml;ber
  38449. <a href="#devspec">Ger&auml;te-Spezifikation</a>
  38450. f&uuml;r Details der &lt;devspec&gt;.
  38451. </li>
  38452. <br>
  38453. <li>
  38454. <code><a href="#setList">setList</a></code>
  38455. </li>
  38456. <br>
  38457. <li>
  38458. <code>splitRooms 1</code><br>
  38459. Gibt fĂźr jede Beziehung jeden Raum separat in $room zurĂźck.
  38460. </li>
  38461. <br>
  38462. </ul>
  38463. <br>
  38464. <a name="archetypeexamples"></a>
  38465. <b>Beispiele</b>
  38466. <ul>
  38467. <a href="https://wiki.fhem.de/wiki/Import_von_Code_Snippets">
  38468. <u>
  38469. Die folgenden beispiel Codes k&ouml;nnen per "Raw defnition"
  38470. importiert werden.
  38471. </u>
  38472. </a>
  38473. <br>
  38474. <br>
  38475. <li>
  38476. <b>
  38477. Es sollen alle Plots in die Gruppe "verlaufsdiagramm" verschoben
  38478. werden:
  38479. </b>
  38480. <br>
  38481. <pre>defmod SVG_archetype archetype TYPE=SVG
  38482. attr SVG_archetype group verlaufsdiagramm
  38483. attr SVG_archetype attributes group</pre>
  38484. </li>
  38485. <br>
  38486. <li>
  38487. <b>
  38488. Zus&auml;tzlich soll f&uuml;r alle Plots ein weblink angelegt werden:
  38489. </b>
  38490. <br>
  38491. <pre>defmod SVG_link_archetype archetype
  38492. attr SVG_link_archetype relations TYPE=SVG
  38493. attr SVG_link_archetype actualTYPE weblink
  38494. attr SVG_link_archetype metaNAME $relation\_link
  38495. attr SVG_link_archetype metaDEF link ?detail=$relation
  38496. attr SVG_link_archetype initialize attr $name room $room;;
  38497. attr SVG_link_archetype group verlaufsdiagramm
  38498. attr SVG_link_archetype attributes group</pre>
  38499. </li>
  38500. </ul>
  38501. </ul>
  38502. </div>
  38503. <p><a name="at"></a>
  38504. <h3>at</h3>
  38505. <div class='langLinks'>[<a href='commandref.html#at'>EN</a> DE]</div>
  38506. <ul>
  38507. Startet einen beliebigen FHEM Befehl zu einem sp&auml;teren Zeitpunkt.<br>
  38508. <br>
  38509. <a name="atdefine"></a>
  38510. <b>Define</b>
  38511. <ul>
  38512. <code>define &lt;name&gt; at [&lt;timespec&gt;|&lt;datespec&gt;]
  38513. &lt;command&gt;</code><br>
  38514. <br>
  38515. <code>&lt;timespec&gt;</code> Format: [+][*{N}]&lt;timedet&gt;<br>
  38516. <ul>
  38517. Das optionale <code>+</code> zeigt, dass die Angabe <i>relativ</i> ist
  38518. (also zur jetzigen Zeit dazugez&auml;hlt wird).<br>
  38519. Das optionale <code>*</code> zeigt, dass die Ausf&uuml;hrung
  38520. <i>wiederholt</i> erfolgen soll.<br>
  38521. Das optionale <code>{N}</code> nach dem * bedeutet, dass der Befehl genau
  38522. <i>N-mal</i> wiederholt werden soll.<br>
  38523. &lt;timespec&gt; ist entweder HH:MM, HH:MM:SS oder {perlfunc()}. perlfunc
  38524. muss ein String in timedet Format zurueckliefern. Achtung: {perlfunc()}
  38525. darf keine Leerzeichen enthalten.<br>
  38526. &lt;datespec&gt; ist entweder ISO8601 (YYYY-MM-DDTHH:MM:SS) oder Anzahl
  38527. der Sekunden seit 1970.
  38528. </ul>
  38529. <br>
  38530. Beispiele:
  38531. <PRE>
  38532. # Absolute Beispiele:
  38533. define a1 at 17:00:00 set lamp on # fhem Befehl
  38534. define a2 at 17:00:00 { Log 1, "Teatime" } # Perl Befehl
  38535. define a3 at 17:00:00 "/bin/echo "Teatime" > /dev/console" # shell Befehl
  38536. define a4 at *17:00:00 set lamp on # Jeden Tag
  38537. # Realtive Beispiele:
  38538. define a5 at +00:00:10 set lamp on # Einschalten in 10 Sekunden
  38539. define a6 at +00:00:02 set lamp on-for-timer 1 # Einmal blinken in 2 Sekunden
  38540. define a7 at +*{3}00:00:02 set lamp on-for-timer 1 # Blinke 3 mal
  38541. # Blinke 3 mal wenn piri einen Befehl sendet
  38542. define n1 notify piri:on.* define a8 at +*{3}00:00:02 set lamp on-for-timer 1
  38543. # Lampe von Sonnenuntergang bis 23:00 Uhr einschalten
  38544. define a9 at +*{sunset_rel()} set lamp on
  38545. define a10 at *23:00:00 set lamp off
  38546. # Elegantere Version, ebenfalls von Sonnenuntergang bis 23:00 Uhr
  38547. define a11 at +*{sunset_rel()} set lamp on-till 23:00
  38548. # Nur am Wochenende ausf&uuml;hren
  38549. define a12 at +*{sunset_rel()} { fhem("set lamp on-till 23:00") if($we) }
  38550. # Schalte lamp1 und lamp2 ein von 7:00 bis 10 Minuten nach Sonnenaufgang
  38551. define a13 at *07:00 set lamp1,lamp2 on-till {sunrise(+600)}
  38552. # Schalte lamp jeden Tag 2 Minuten nach Sonnenaufgang aus
  38553. define a14 at *{sunrise(+120)} set lamp on
  38554. # Schalte lamp1 zum Sonnenuntergang ein, aber nicht vor 18:00 und nicht nach 21:00
  38555. define a15 at *{sunset(0,"18:00","21:00")} set lamp1 on
  38556. </PRE>
  38557. Hinweise:<br>
  38558. <ul>
  38559. <li>wenn kein <code>*</code> angegeben wird, wird der Befehl nur einmal
  38560. ausgef&uuml;hrt und der entsprechende <code>at</code> Eintrag danach
  38561. gel&ouml;scht. In diesem Fall wird der Befehl im Statefile gespeichert
  38562. (da er nicht statisch ist) und steht nicht im Config-File (siehe auch <a
  38563. href="#save">save</a>).</li>
  38564. <li>wenn die aktuelle Zeit gr&ouml;&szlig;er ist als die angegebene Zeit,
  38565. dann wird der Befehl am folgenden Tag ausgef&uuml;hrt.</li>
  38566. <li>F&uuml;r noch komplexere Datums- und Zeitabl&auml;ufe muss man den
  38567. Aufruf entweder per cron starten oder Datum/Zeit mit perl weiter
  38568. filtern. Siehe hierzu das letzte Beispiel und das <a href="#perl">Perl
  38569. special</a>. </li>
  38570. </ul>
  38571. <br>
  38572. </ul>
  38573. <a name="atset"></a>
  38574. <b>Set</b>
  38575. <ul>
  38576. <a name="modifyTimeSpec"></a>
  38577. <li>modifyTimeSpec &lt;timespec&gt;<br>
  38578. &Auml;ndert die Ausf&uuml;hrungszeit. Achtung: die N-malige
  38579. Wiederholungseinstellung wird ignoriert. Gedacht zur einfacheren
  38580. Modifikation im FHEMWEB Raum&uuml;bersicht, dazu muss man
  38581. modifyTimeSpec in <a href="webCmd">webCmd</a> spezifizieren.
  38582. </li>
  38583. <li>inactive<br>
  38584. Deaktiviert das entsprechende Ger&auml;t. Beachte den leichten
  38585. semantischen Unterschied zum disable Attribut: "set inactive"
  38586. wird bei einem shutdown automatisch in fhem.state gespeichert, es ist
  38587. kein save notwendig.<br>
  38588. Der Einsatzzweck sind Skripte, um das at tempor&auml;r zu
  38589. deaktivieren.<br>
  38590. Das gleichzeitige Verwenden des disable Attributes wird nicht empfohlen.
  38591. </li>
  38592. <li>active<br>
  38593. Aktiviert das entsprechende Ger&auml;t, siehe inactive.
  38594. </li>
  38595. <li>execNow<br>
  38596. F&uuml;hrt das mit dem at spezifizierte Befehl aus. Beeinflu&szlig;t
  38597. nicht die Ausf&uuml;hrungszeiten relativer Spezifikationen.
  38598. </li>
  38599. </ul><br>
  38600. <a name="atget"></a>
  38601. <b>Get</b> <ul>N/A</ul><br>
  38602. <a name="atattr"></a>
  38603. <b>Attribute</b>
  38604. <ul>
  38605. <a name="alignTime"></a>
  38606. <li>alignTime<br>
  38607. Nur f&uuml;r relative Definitionen: Stellt den Zeitpunkt der
  38608. Ausf&uuml;hrung des Befehls so, dass er auch zur alignTime
  38609. ausgef&uuml;hrt wird. Dieses Argument ist ein timespec. Siehe oben
  38610. f&uuml; die Definition<br>
  38611. Beispiel:<br>
  38612. <ul>
  38613. # Stelle sicher das es gongt wenn eine neue Stunde beginnt.<br>
  38614. define at2 at +*01:00 set Chime on-for-timer 1<br>
  38615. attr at2 alignTime 00:00<br>
  38616. </ul>
  38617. </li><br>
  38618. <a name="computeAfterInit"></a>
  38619. <li>computeAfterInit<br>
  38620. Falls perlfunc() im timespec Readings or Statusinformationen
  38621. ben&ouml;gt, dann wird sie eine falsche Zeit beim FHEM-Start
  38622. zurueckliefern, da zu diesem Zeitpunkt die Readings noch nicht aktiv
  38623. sind. Mit gesetztem computeAfterInit wird perlfunc nach Setzen aller
  38624. Readings erneut ausgefuehrt. (Siehe Forum #56706)
  38625. </li><br>
  38626. <a name="disable"></a>
  38627. <li>disable<br>
  38628. Deaktiviert das entsprechende Ger&auml;t.<br>
  38629. Hinweis: Wenn angewendet auf ein <a href="#at">at</a>, dann wird der
  38630. Befehl nicht ausgef&uuml;hrt, jedoch die n&auml;chste
  38631. Ausf&uuml;hrungszeit berechnet.</li><br>
  38632. <a name="disabledForIntervals"></a>
  38633. <li>disabledForIntervals HH:MM-HH:MM HH:MM-HH:MM ...<br>
  38634. Das Argument ist eine Leerzeichengetrennte Liste von Minuszeichen-
  38635. getrennten HH:MM oder D@HH:MM Paaren. Falls die aktuelle Uhrzeit
  38636. zwischen diesen Werten f&auml;llt, dann wird die Ausf&uuml;hrung, wie
  38637. beim disable, ausgesetzt. Statt HH:MM kann man auch HH oder HH:MM:SS
  38638. angeben. D ist der Tag der Woche, mit 0 als Sonntag and 3 als
  38639. Mittwoch. Die Angabe des Wochentags f&uuml;r den "von" Wert impliziert
  38640. _nicht_ den gleichen Tag f&uuml;r den "bis" Wert, z.Bsp. deaktiviert
  38641. 1@00-24 die Asf&uuml;hrung von Montag bis Ende der Woche, aber nicht
  38642. Sonntag (da alle Zeitangaben am Montag vor 1@00 liegen).
  38643. Um einen Intervall um Mitternacht zu spezifizieren, muss man
  38644. zwei einzelne angeben, z.Bsp.:
  38645. <ul>
  38646. 23:00-24:00 00:00-01:00
  38647. </ul>
  38648. Falls Teile des Wertes in {} eingeschlossen sind, dann werden sie als
  38649. ein Perl Ausdruck ausgewertet:
  38650. <ul>
  38651. {sunset_abs()}-24 {sunrise_abs()}-08
  38652. </ul>
  38653. </li><br>
  38654. <a name="skip_next"></a>
  38655. <li>skip_next<br>
  38656. Wird bei at Befehlen verwendet um die n&auml;chste Ausf&uuml;hrung zu
  38657. &uuml;berspringen</li><br>
  38658. <li><a href="#perlSyntaxCheck">perlSyntaxCheck</a></li>
  38659. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  38660. </ul>
  38661. <br>
  38662. </ul>
  38663. <p><a name="autocreate"></a>
  38664. <h3>autocreate</h3>
  38665. <div class='langLinks'>[<a href='commandref.html#autocreate'>EN</a> DE]</div>
  38666. <ul>
  38667. Erzeugt f&uuml;r noch nicht definierte FHEM-Ger&auml;te automatisch die
  38668. geignete Definition (define). Diese Definition wird aus einer Nachricht
  38669. gewonnen, die von diesen neuen Ger&auml;ten empfangen wurde. Hinweis:
  38670. Ger&auml;te, die mit Polling arbeiten (wie z.B. der Zugriff auf EMEM/EMWZ
  38671. &uuml;ber EM1010PC) werden NICHT automatisch erzeugt.
  38672. <br><br>
  38673. <a name="autocreatedefine"></a>
  38674. <b>Define</b>
  38675. <ul>
  38676. <code>define &lt;name&gt; autocreate</code><br>
  38677. <br>
  38678. <ul>
  38679. Durch die Definition dieser Instanz wird das globale Attribut <a
  38680. href="#autoload_undefined_devices">autoload_undefined_devices</a>
  38681. gesetzt, sodass die Module f&uuml;r unbekannte Ger&auml;te automatisch
  38682. nachgeladen werden. Das autocreate-Modul interpretiert das
  38683. UNDEFINED-event, welches von jedem Modul gestartet wird, erzeugt ein
  38684. Ger&auml;t (device) und bei Bedarf ein FileLog sowie
  38685. SVG-Eintr&auml;ge.<br>
  38686. <b>Hinweis 1:</b> Ger&auml;te werden mit einem eindeutigen Namen erzeugt,
  38687. der den Typ und eine individuelle ID f&uuml;r diesen Typ enth&auml;lt.
  38688. Wird ein Ger&auml;t umbenannt (<a href="#rename">rename</a>), wird
  38689. gleichzeitig das automatisch erzeugte FileLog und die SVG Ger&auml;te
  38690. unbenannt.<br>
  38691. <b>Hinweis 2:</b> Durch das Setzen des <a
  38692. href="#disable">disable</a>-Attributes kann die automatische Erzeugung
  38693. ausgeschaltet werden. In diesem Fall ist ausschlie&szlig;lich die oben
  38694. erl&auml;uterte Umbenennung aktiv. Der <a
  38695. href="#createlog">createlog</a>-Befehl kann zum Hinzuf&uuml;gen von
  38696. FileLog und SVG eines bereits definierten Ger&auml;tes benutzt werden.
  38697. <br>
  38698. <b>Hinweis 3:</b>Es macht keinen Sinn, die Instanz dieses Moduls mehrmals
  38699. zu erzeugen.
  38700. </ul>
  38701. <br>
  38702. Beispiel:<PRE>
  38703. define autocreate autocreate
  38704. attr autocreate autosave
  38705. attr autocreate device_room %TYPE
  38706. attr autocreate filelog test2/log/%NAME-%Y.log
  38707. attr autocreate weblink
  38708. attr autocreate weblink_room Plots
  38709. </PRE>
  38710. </ul>
  38711. <a name="autocreateset"></a>
  38712. <b>Set</b> <ul>N/A</ul><br>
  38713. <a name="autocreateget"></a>
  38714. <b>Get</b> <ul>N/A</ul><br>
  38715. <a name="autocreateattr"></a>
  38716. <b>Attribute</b>
  38717. <ul>
  38718. <a name="autosave"></a>
  38719. <li>autosave<br>
  38720. Nach der Erzeugung eines neuen Ger&auml;tes wird automatisch die
  38721. Konfigurationsdatei mit dem Befehl <a href="#save">save</a>
  38722. gespeichert. Der Standardwert ist 1 (d.h. aktiviert), eine 0 schaltet
  38723. die automatische Speicherung aus.<br>
  38724. <b>Achtung:</b> Dieses Attribut ist unerw&uuml;nscht, bitte stattdessen
  38725. das global autosave Attribut verwenden.
  38726. </li><br>
  38727. <a name="device_room"></a>
  38728. <li>device_room<br>
  38729. "Schiebt" das neu erstellte Ger&auml;t in diesen Raum. Der Name kann
  38730. die Wildcards %NAME und %TYPE enthalten, siehe oben stehendes
  38731. Beispiel.</li><br>
  38732. <a name="filelogattr"></a>
  38733. <li>filelog<br>
  38734. Erstellt ein Filelog welches zu einem Ger&auml;t geh&ouml;rt. Der
  38735. Dateiname darf die Wildcards %NAME und %TYPE enthalten, siehe oben
  38736. stehendes Beispiel. Das Filelog wird in den gleichen Raum "geschoben"
  38737. wie das zugeh&ouml;rige Ger&auml;t.</li><br>
  38738. <a name="weblinkattr"></a>
  38739. <li>weblink<br>
  38740. Erzeugt ein SVG, welches mit dem Ger&auml;t/Filelog verkn&uuml;pft
  38741. ist.</li><br>
  38742. <a name="weblink_room"></a>
  38743. <li>weblink_room<br>
  38744. "Schiebt" das neu erstellte SVG in den bezeichneten Raum. Der Name kann
  38745. die Wildcards %NAME und %TYPE enthalten, siehe oben stehendes
  38746. Beispiel.</li><br>
  38747. <li><a href="#disable">disable</a></li>
  38748. <br>
  38749. <a name="ignoreTypes"></a>
  38750. <li>ignoreTypes<br>
  38751. Dies ist ein Regexp, um bestimmte Ger&auml;te zu ignorieren, z.b. der
  38752. Funk-Heizungsthermostat (FHT) des Nachbarn. In dem Ausdruck k&ouml;nnen
  38753. mehr als ein Ger&auml;t &uuml;ber die normale Regexp-Syntax angegeben
  38754. werden. Beispiel:<br>
  38755. attr autocreate ignoreTypes (CUL_HOERMANN.*|FHT_1234|CUL_WS_7)<br>
  38756. Das Wort "Types" ist etwas irref&uuml;hrend, da der Ger&auml;tename
  38757. gepr&uuml;ft wird, und nicht der Typ.<br>
  38758. <b>Achtung</b>: ab featurelevel 5.9 wird der Regexp automatisch mit
  38759. ^ und $ erg&auml;nzt, muss also den kompletten Namen matchen (genau wie
  38760. bei notify und FileLog).
  38761. </li><br>
  38762. <a name="autocreateThreshold"></a>
  38763. <li>autocreateThreshold<br>
  38764. Eine Liste of &lt;type&gt;:&lt;count&gt;:&lt;interval&gt; tripeln. Ein
  38765. neues Device wird nur dann erzeugt wenn es mindestens <code>count</code>
  38766. Events f&uuml;r den TYPE <code>type</code> in den letzten
  38767. <code>interval</code> Sekunden gegeben hat.<br>
  38768. Beispiel:<br>
  38769. <code>attr autocreateThreshold LaCrosse:2:30,EMT7110:2:60</code>
  38770. </li>
  38771. </ul>
  38772. <br>
  38773. <a name="createlog"></a>
  38774. <b>createlog</b>
  38775. <ul>
  38776. Dieser Befehl wird f&uuml;r ein manuelles Hinzuf&uuml;gen eines Logfile
  38777. oder eines SVG zu einem vorhandenen Ger&auml;t verwendet.
  38778. <br><br>
  38779. Dieser Befehl ist Bestandteilteil des autocreate-Modules.
  38780. </ul>
  38781. <br>
  38782. <a name="usb"></a>
  38783. <b>usb</b>
  38784. <ul>
  38785. Verwendung:
  38786. <ul><code>
  38787. usb scan<br>
  38788. usb create<br>
  38789. </code></ul>
  38790. Dieser Befehl durchsucht das /dev-Verzeichnis nach angeschlossenen
  38791. USB-Ger&auml;ten und versucht gleichzeitig sie zu identifizieren. Mit dem
  38792. Argument scan wird eine Liste von ausf&uuml;hrbaren FHEM-Befehlen
  38793. zur&uuml;ckgegeben. Das Argument create gibt keine Liste o.&auml;.
  38794. zur&uuml;ck, die Ger&auml;te werden stattdessen erzeugt.<br><br>
  38795. Es ist zu beachten, dass ein CUL immer noch manuell in den
  38796. HomeMatic-Modus umgeschaltet werden muss. <br><br>
  38797. Unter Linux wird gleichzeitig mit dem lsusb-befehl &uuml;berpr&uuml;ft,
  38798. ob nichtgeflashte CULs angeschlossen sind. Ist dies der Fall, ruft Linux
  38799. CULflash mit den geeigneten Parametern auf (oder zeigt den
  38800. CULflash-Befehl an, falls scan aufgef&uuml;hrt wurde).
  38801. Pro usb Befehl wird nur ein Ger&auml;t geflasht.<br><br>
  38802. Dieser Befehl ist Bestandteilteil des autocreate-Modules.
  38803. </ul>
  38804. </ul> <!-- End of autocreate -->
  38805. <br>
  38806. <p><a name="average"></a>
  38807. <h3>average</h3>
  38808. <ul>
  38809. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  38810. hier: <a href='commandref.html#average'>average</a><br/>
  38811. </ul>
  38812. <a name="backup"></a>
  38813. <h3>backup</h3>
  38814. <ul>
  38815. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  38816. hier: <a href='commandref.html#backup'>backup</a><br/>
  38817. </ul>
  38818. <a name="cloneDummy"></a>
  38819. <h3>cloneDummy</h3>
  38820. <div class='langLinks'>[<a href='commandref.html#cloneDummy'>EN</a> DE]</div>
  38821. <ul>Definiert einen Klon eines lokalen Devices oder von FHEM2FHEM im Logmodus uebergebenen Devices
  38822. und uebernimmt dessen Readings. Sinnvoll um entfernte FHEM-Installationen lesend einzubinden,
  38823. zum Testen oder Programmieren. Dabei werden die von FHEM2FHEM in Form von Events weitergereichten
  38824. entfernten Device-Readings in eigene Readings Ăźbernommen. Identische Events, die innerhalb der
  38825. durch das globale Attribut <a href="#dupTimeout">dupTimeout</a> vorgegebenen Zeit auftreten, werden
  38826. zusammengefasst, um ßberflßssige Events zu verhindern. Dieses Attribut ist mit bedacht zu ändern,
  38827. da sich seine Auswirkungen auch auf andere Bereiche von FHEM erstreckt.<br>
  38828. Die Rangfolge fĂźr den STATE ist:
  38829. <ul><li>wenn keine Vorgabe gemacht wurde, dann die Meldung von cloneDummy (initialized, active)</li>
  38830. <li>wenn addStateEvent gesetzt ist, dann der "state" vom geklonten Device (dann kein "state" mehr
  38831. vom cloneDummy)</li>
  38832. <li>wenn das optionale reading im define gesetzt ist, dann der Wert davon (Ăźberstimmt die beiden
  38833. vorherigen Zeilen)</li>
  38834. <li>wenn stateFormat als attr gesetzt ist, toppt das alles</li>
  38835. </ul>
  38836. <br>
  38837. <a name="cloneDummydefine"></a>
  38838. <b>Define</b>
  38839. <ul><code>define &lt;name&gt; cloneDummy &lt;Quelldevice&gt; [reading]</code><br>
  38840. <br>
  38841. Aktiviert den cloneDummy, der dann an das Device &lt;Quelldevice&gt; gebunden ist.
  38842. Mit dem optionalen Parameter reading wird bestimmt, welches reading im STATE angezeigt wird,
  38843. stateFormat ist auch weiterhin mĂśglich.<br>
  38844. <br>
  38845. <ul>Beispiel:<br>
  38846. <br>
  38847. Der cloneDummy wird lesend an den Sensor OWX_26_09FF26010000 gebunden und zeigt im
  38848. State temperature an.<br>
  38849. <br>
  38850. <ul><code>define Feuchte cloneDummy OWX_26_09FF26010000 temperature</code><br>
  38851. </ul>
  38852. </ul>
  38853. </ul>
  38854. <br>
  38855. <a name="cloneDummyset"></a>
  38856. <b>Set</b>
  38857. <ul>N/A
  38858. </ul>
  38859. <br>
  38860. <a name="cloneDummyget"></a>
  38861. <b>Get</b>
  38862. <ul>N/A
  38863. </ul>
  38864. <br>
  38865. <a name="cloneDummyattr"></a>
  38866. <b>Attributes</b>
  38867. <ul>
  38868. <li>addStateEvent<br>
  38869. 0 ist Vorgabe im Modul, bei 1 wird der Originalstate des original Devices als STATE verwendet
  38870. (geht z.Z. nicht in Verbindung mit FHEM2FHEM)</li>
  38871. <br>
  38872. <li>clonIgnore<br>
  38873. Eine durch Kommata getrennte Liste der readings, die cloneDummy nicht in eigene readings
  38874. umwandelt</li>
  38875. <br>
  38876. <li>deleteBeforeUpdate<br>
  38877. Ist dieses Attribut auf 1 gesetzt, werden alle readings zuerst gelĂśscht, bevor neue Readings geschrieben werden.</li>
  38878. <br> <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  38879. </ul>
  38880. <br>
  38881. <b>Wichtig: Es mĂźssen unterschiedliche Namen fĂźr &lt;name&gt; und &lt;Quelldevice&gt; verwendet
  38882. werden!</b><br/>
  38883. <br>
  38884. </ul>
  38885. <p><a name="cmdalias"></a>
  38886. <h3>cmdalias</h3>
  38887. <ul>
  38888. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  38889. hier: <a href='commandref.html#cmdalias'>cmdalias</a><br/>
  38890. </ul>
  38891. <a name="configDB"></a>
  38892. <h3>configDB</h3>
  38893. <div class='langLinks'>[<a href='commandref.html#configDB'>EN</a> DE]</div>
  38894. <ul>
  38895. configDB ist die Funktionsbibliothek f&uuml;r die Konfiguration aus einer SQL Datenbank.<br/>
  38896. Die ausf&uuml;hrliche Dokumentation findet sich in der <a href="#configdb">configdb Befehlsbeschreibung</a>.
  38897. </ul>
  38898. <p><a name="configdb"></a>
  38899. <h3>configdb</h3>
  38900. <ul>
  38901. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  38902. hier: <a href='commandref.html#configdb'>configdb</a><br/>
  38903. </ul>
  38904. <a name="copy"></a>
  38905. <h3>copy</h3>
  38906. <div class='langLinks'>[<a href='commandref.html#copy'>EN</a> DE]</div>
  38907. <ul>
  38908. <code>copy &lt;orig name&gt; &lt;copy name&gt; [&lt;type dependent arguments&gt;]</code><br>
  38909. <br>
  38910. Erzeugt eine Kopie des Device &lt;orig name&gt; mit dem namen &lt;copy name&gt;.<br>
  38911. Wenn &lt;type dependent arguments&gt; angegeben sind ersetzen die die DEF von &lt;orig name&gt; beim anlegen von &lt;copy name&gt;.
  38912. </ul>
  38913. <p><a name="count"></a>
  38914. <h3>count</h3>
  38915. <ul>
  38916. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  38917. hier: <a href='commandref.html#count'>count</a><br/>
  38918. </ul>
  38919. <a name="dash_dhcp"></a>
  38920. <h3>dash_dhcp</h3>
  38921. <ul>
  38922. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  38923. hier: <a href='commandref.html#dash_dhcp'>dash_dhcp</a><br/>
  38924. </ul>
  38925. <a name="deletefile"></a>
  38926. <h3>deletefile</h3>
  38927. <ul>
  38928. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  38929. hier: <a href='commandref.html#deletefile'>deletefile</a><br/>
  38930. </ul>
  38931. <a name="dewpoint"></a>
  38932. <h3>dewpoint</h3>
  38933. <div class='langLinks'>[<a href='commandref.html#dewpoint'>EN</a> DE]</div>
  38934. <ul>
  38935. Berechnungen des Taupunkts. Es gibt drei Varianten, das Modul dewpoint zu verwenden: <br>
  38936. <ul>
  38937. <li><b>dewpoint</b>: Taupunkt<br>
  38938. Erzeugt ein zus&auml;tzliches Ereignis "dewpoint" aus Temperatur- und Luftfeuchtewerten eines F&uuml;hlers.</li>
  38939. <li><b>fan</b>: L&uuml;fter<br>
  38940. Erzeugt ein Ereignis, um einen L&uuml;fter einzuschalten, wenn die Au&szlig;enluft
  38941. weniger Wasser als die Raumluft enth&auml;lt.</li>
  38942. <li><b>alarm</b>: Alarm<br>
  38943. Erzeugt einen Schimmel-Alarm, wenn eine Referenz-Temperatur unter den Taupunkt f&auml;llt.</li>
  38944. </ul>
  38945. <br/>
  38946. <a name="dewpointdefine"></a>
  38947. <b>Define</b>
  38948. <ul>
  38949. <code>define &lt;name&gt; dewpoint dewpoint &lt;devicename-regex&gt; [&lt;temp_name&gt;
  38950. &lt;hum_name&gt; &lt;new_name&gt;]</code><br>
  38951. <br/>
  38952. Berechnet den Taupunkt des Ger&auml;ts &lt;devicename-regex&gt; basierend auf Temperatur
  38953. und Luftfeuchte und erzeugt daraus ein neues Reading namens dewpoint.<br/>
  38954. Wenn &lt;temp_name&gt;, &lt;hum_name&gt; und &lt;new_name&gt; angegeben sind,
  38955. werden die Temperatur aus dem Reading &lt;temp_name&gt;, die Luftfeuchte aus dem
  38956. Reading &lt;hum_name&gt; gelesen und als berechneter Taupunkt ins Reading &lt;new_name&gt; geschrieben.<br><br>
  38957. <b>Veraltet, f&uuml;r neue Definitionen nicht mehr benutzen</b><br>
  38958. &nbsp;&nbsp;Wenn &lt;temp_name&gt; T lautet, wird die Temperatur aus state T: H: benutzt
  38959. und &lt;new_name&gt; zu STATE hinzugef&uuml;gt. Das hinzuf&uuml;gen zu STATE erfolgt nur, falls im Zielger&auml;t
  38960. das Attribut "stateFormat" nicht definiert ist.<br>
  38961. Falls das veraltete Verhalten zum Update unbedingt gew&uuml;scht ist,
  38962. kann das Attribut <code>legacyStateHandling</code> gesetzt werden.
  38963. <br/>
  38964. Beispiele:
  38965. <pre>
  38966. # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
  38967. # in Ereignissen, die vom Ger&auml;t temp1 erzeugt wurden und erzeugt ein Reading dewpoint.
  38968. define dew_temp1 dewpoint dewpoint temp1
  38969. define dew_temp1 dewpoint dewpoint temp1 temperature humidity dewpoint
  38970. # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
  38971. # in Ereignissen, die von allen Ger&auml;ten erzeugt wurden die diese Werte ausgeben
  38972. # und erzeugt ein Reading dewpoint.
  38973. define dew_all dewpoint dewpoint .*
  38974. define dew_all dewpoint dewpoint .* temperature humidity dewpoint
  38975. # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
  38976. # in Ereignissen, die vom Ger&auml;t Aussen_1 erzeugt wurden und erg&auml;nzt
  38977. # mit diesem Wert den Status STATE, falls in Aussen_1 das Attribut "stateFormat" nicht definiert ist.
  38978. # Falls "stateFormat" definiert ist, wird das reading "D" angelegt.
  38979. define dew_state dewpoint dewpoint Aussen_1 T H D
  38980. # Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
  38981. # in Ereignissen, die von allen Ger&auml;ten erzeugt wurden die diese Werte ausgeben
  38982. # und erg&auml;nzt mit diesem Wert den Status STATE. (Siehe Beispiel oben).
  38983. # Beispiel STATE: "T: 10 H: 62.5" wird ver&auml;ndert nach
  38984. # "T: 10 H: 62.5 D: 3.2"
  38985. define dew_state dewpoint dewpoint .* T H D
  38986. </pre>
  38987. <br/>
  38988. <br/>
  38989. <code>define &lt;name&gt; dewpoint fan &lt;devicename-regex&gt; &lt;devicename-outside&gt; &lt;min-temp&gt; [&lt;diff_temp&gt;]</code><br>
  38990. <br>
  38991. <ul>
  38992. <li>Erzeugt ein Ereignis, um einen L&uuml;fter einzuschalten, wenn die Au&szlig;enluft
  38993. weniger Wasser als die Raumluft enth&auml;lt.</li>
  38994. <li>Erzeugt das Ereignis "fan: on" wenn (Taupunkt von &lt;devicename-outside&gt;) +
  38995. &lt;diff_temp&gt; ist niedriger als der Taupunkt von &lt;devicename&gt; und die Temperatur
  38996. von &lt;devicename-outside&gt; &gt;= min-temp ist. Das Ereignis wird nur erzeugt wenn das
  38997. Reading "fan" nicht schon "on" war. Das Ereignis wird f&uuml;r das Ger&auml;t &lt;devicename&gt; erzeugt.
  38998. Der Parameter &lt;diff-temp&gt; ist optional.</li>
  38999. <li>Andernfalls wird das Ereignis "fan: off" erzeugt, wenn das Reading von "fan" nicht bereits "off" war.</li>
  39000. </ul>
  39001. <br>
  39002. Beispiel:
  39003. <pre>
  39004. # Erzeugt das Ereignis "fan: on", wenn der Taupunkt des Ger&auml;ts Aussen_1 zum ersten Mal
  39005. # niedriger ist als der Taupunkt des Ger&auml;ts basement_tempsensor und die
  39006. # Au&szlig;entemperatur &gt;= 0 ist und wechselt nach "fan: off" wenn diese Bedingungen nicht
  39007. # mehr zutreffen.
  39008. # Schaltet den Schalter fan_switch abh&auml;ngig vom Zustand ein oder aus.
  39009. define dew_fan1 dewpoint fan basement_tempsensor Aussen_1 0
  39010. define dew_fan1_on notify basement_tempsensor.*fan:.*on set fan_switch on
  39011. define dew_fan1_off notify basement_tempsensor.*fan:.*off set fan_switch off
  39012. </pre>
  39013. <code>define &lt;name&gt; dewpoint alarm &lt;devicename-regex&gt; &lt;devicename-reference&gt; &lt;diff-temp&gt;</code><br>
  39014. <br>
  39015. <ul>
  39016. <li>Erzeugt einen Schimmel-Alarm, wenn eine Referenz-Temperatur unter den Taupunkt f&auml;llt.</li>
  39017. <li>Erzeugt ein Reading/Ereignis "alarm: on" wenn die Temperatur von
  39018. &lt;devicename-reference&gt; - &lt;diff-temp&gt; unter den Taupunkt von
  39019. &lt;devicename&gt; f&auml;llt und das Reading "alarm" nicht bereits "on" ist.
  39020. Das Ereignis wird f&uuml;r &lt;devicename&gt; erzeugt.</li>
  39021. <li>Erzeugt ein Reading/Ereignis "alarm: off" wenn die Temperatur von
  39022. &lt;devicename-reference&gt; - &lt;diff-temp&gt; &uuml;ber den Taupunkt
  39023. von &lt;devicename&gt; steigt und das Reading "alarm" nicht bereits "off" ist.</li>
  39024. </ul>
  39025. <br>
  39026. Beispiel:
  39027. <pre>
  39028. # Es wird ein Anlegef&uuml;hler (Wandsensor) und ein Thermo-/Hygrometer (Raumf&uuml;hler)
  39029. # verwendet, um einen Alarm zu erzeugen, wenn die Wandtemperatur
  39030. # unter den Taupunkt der Luft f&auml;llt. In diesem Fall w&uuml;rde sich Wasser an der Wand
  39031. # niederschlagen (kondensieren), weil die Wand zu kalt ist.
  39032. # Der Schalter einer Sirene (alarm_siren) wird &uuml;ber ein notify geschaltet.
  39033. define dew_alarm1 dewpoint alarm roomsensor wallsensor 0
  39034. define roomsensor_alarm_on notify roomsensor.*alarm:.*on set alarm_siren on
  39035. define roomsensor_alarm_off notify roomsensor.*alarm:.*off set alarm_siren off
  39036. # Ohne Wandsensor l&auml;sst sich auch der Taupunkt eines Raums mit der Temperatur desselben
  39037. # (oder eines anderen) F&uuml;hlers vergleichen.
  39038. # Die Alarmtemperatur ist 5 Grad niedriger gesetzt als die des Vergleichsthermostats.
  39039. define dev_alarm2 dewpoint alarm roomsensor roomsensor 5
  39040. </pre>
  39041. </ul>
  39042. <a name="dewpointset"></a>
  39043. <b>Set</b> <ul>N/A</ul><br>
  39044. <a name="dewpointget"></a>
  39045. <b>Get</b> <ul>N/A</ul><br>
  39046. <a name="dewpointattr"></a>
  39047. <b>Attributes</b>
  39048. <ul>
  39049. <li><a href="#disable">disable</a></li>
  39050. <li>absoluteHumidity &lt;reading_name&gt;</li>
  39051. <ul>
  39052. Zus&auml;tzlich wird die absolute Feuchte in g/m&sup3; als Reading &lt;reading_name&gt; berechnet.
  39053. </ul><br>
  39054. <li>vapourPressure &lt;reading_name&gt;</li>
  39055. <ul>
  39056. Zus&auml;tzlich wird der Dampfdruck in hPa als Reading &lt;reading_name&gt; berechnet.
  39057. </ul><br>
  39058. <li>max_timediff</li>
  39059. <ul>
  39060. Maximale erlaubter Zeitunterschied in Sekunden zwischen den Temperatur- und Luftfeuchtewerten eines
  39061. Ger&auml;ts. dewpoint verwendet Readings von Temperatur oder Luftfeuchte wenn sie nicht im Ereignis
  39062. mitgeliefert werden. Das ist sowohl f&uuml;r den Betrieb mit event-on-change-reading n&ouml;tig
  39063. als auch bei Sensoren die Temperatur und Luftfeuchte in getrennten Ereignissen kommunizieren
  39064. (z.B. Technoline Sensoren TX3TH).<br>
  39065. Der Standardwert ist 1 Sekunde.
  39066. <br><br>
  39067. Beispiel:
  39068. <pre>
  39069. # Maximal erlaubter Zeitunterschied soll 60 Sekunden sein
  39070. define dew_all dewpoint dewpoint .*
  39071. attr dew_all max_timediff 60
  39072. </pre>
  39073. </ul>
  39074. </ul>
  39075. </ul>
  39076. <p><a name="dummy"></a>
  39077. <h3>dummy</h3>
  39078. <div class='langLinks'>[<a href='commandref.html#dummy'>EN</a> DE]</div>
  39079. <ul>
  39080. Definiert eine Pseudovariable, der mit <a href="#set">set</a> jeder beliebige
  39081. Wert zugewiesen werden kann. Sinnvoll zum Programmieren.
  39082. <br><br>
  39083. <a name="dummydefine"></a>
  39084. <b>Define</b>
  39085. <ul>
  39086. <code>define &lt;name&gt; dummy</code>
  39087. <br><br>
  39088. Beispiel:
  39089. <ul>
  39090. <code>define myvar dummy</code><br>
  39091. <code>set myvar 7</code><br>
  39092. </ul>
  39093. </ul>
  39094. <br>
  39095. <a name="dummyset"></a>
  39096. <b>Set</b>
  39097. <ul>
  39098. <code>set &lt;name&gt; &lt;value&gt</code><br>
  39099. Weist einen Wert zu.
  39100. </ul>
  39101. <br>
  39102. <a name="dummyget"></a>
  39103. <b>Get</b> <ul>N/A</ul><br>
  39104. <a name="dummyattr"></a>
  39105. <b>Attributes</b>
  39106. <ul>
  39107. <li><a href="#disable">disable</a></li>
  39108. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  39109. <li><a name="readingList">readingList</a><br>
  39110. Leerzeichen getrennte Liste mit Readings, die mit "set" gesetzt werden
  39111. k&ouml;nnen.</li>
  39112. <li><a name="setList">setList</a><br>
  39113. Liste mit Werten durch Leerzeichen getrennt. Diese Liste wird mit "set
  39114. name ?" ausgegeben. Damit kann das FHEMWEB-Frontend Auswahl-Men&uuml;s
  39115. oder Schalter erzeugen.<br> Beispiel: attr dummyName setList on off </li>
  39116. <li><a name="useSetExtensions">useSetExtensions</a><br>
  39117. Falls gesetzt, und setList enth&auml;lt on und off, dann die <a
  39118. href="#setExtensions">set extensions</a> Befehle sind auch aktiv. In
  39119. diesem Fall werden nur die Befehle aus setList und die set exensions
  39120. akzeptiert.</li>
  39121. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  39122. </ul>
  39123. <br>
  39124. </ul>
  39125. <p><a name="eventTypes"></a>
  39126. <h3>eventTypes</h3>
  39127. <ul>
  39128. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39129. hier: <a href='commandref.html#eventTypes'>eventTypes</a><br/>
  39130. </ul>
  39131. <a name="expandJSON"></a>
  39132. <h3>expandJSON</h3>
  39133. <ul>
  39134. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39135. hier: <a href='commandref.html#expandJSON'>expandJSON</a><br/>
  39136. </ul>
  39137. <a name="fakeRoku"></a>
  39138. <h3>fakeRoku</h3>
  39139. <ul>
  39140. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39141. hier: <a href='commandref.html#fakeRoku'>fakeRoku</a><br/>
  39142. </ul>
  39143. <a name="feels_like"></a>
  39144. <h3>feels_like</h3>
  39145. <ul>
  39146. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39147. hier: <a href='commandref.html#feels_like'>feels_like</a><br/>
  39148. </ul>
  39149. <a name="fhemdebug"></a>
  39150. <h3>fhemdebug</h3>
  39151. <ul>
  39152. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39153. hier: <a href='commandref.html#fhemdebug'>fhemdebug</a><br/>
  39154. </ul>
  39155. <a name="fheminfo"></a>
  39156. <h3>fheminfo</h3>
  39157. <ul>
  39158. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39159. hier: <a href='commandref.html#fheminfo'>fheminfo</a><br/>
  39160. </ul>
  39161. <a name="freezemon"></a>
  39162. <h3>freezemon</h3>
  39163. <div class='langLinks'>[<a href='commandref.html#freezemon'>EN</a> DE]</div>
  39164. <div>
  39165. <ul>
  39166. FREEZEMON �berwacht - �hnlich wie PERFMON mÜgliche Freezes, allerdings ist FREEZEMON ein echtes Modul und hat daher:<br>
  39167. <ul>
  39168. <li>Readings - die geloggt werden kĂśnnen und damit viel einfacher ausgewertet werden kĂśnnen</li>
  39169. <li>Attribute - mit denen das Verhalten von freezemon beeinflusst werden kann</li>
  39170. <li>zus�¤tzliche Funktionalität - die versucht das den Freeze verursachende Device zu identifizieren</li>
  39171. </ul>
  39172. Ich wĂźrde empfehlen, PERFMON zu deaktivieren, wenn FREEZEMON aktiv ist, da beide auf die selbe Art Freezes erkennen und dann nur alles doppelt kommt.
  39173. <b>Bitte beachten!</b> FREEZEMON versucht nur intelligent zu erraten, welches Device einen freeze verursacht haben kĂśnnte (basierend auf den Timern die laufen sollten). Es gibt eine Menge anderer Faktoren (intern oder extern) die einen Freeze verursachen kĂśnnen. FREEZEMON ersetzt keine detaillierte Analyse. Das Modul versucht nur Hinweise zu geben, was optimiert werden kĂśnnte.<br><br>
  39174. <br>
  39175. <br>
  39176. <a name="freezemonDefine"></a>
  39177. <b>Define</b>
  39178. <ul>
  39179. FREEZEMON wird ohne Parameter definiert.<br><br>
  39180. <code>define &lt;devicename&gt; freezemon</code><br><br>
  39181. damit ist der Freezemon aktiv (im Log sollte eine entsprechende Meldung geschrieben werden)
  39182. <br><br>
  39183. </ul>
  39184. <a name="freezemonSet"></a>
  39185. <b>Set</b>
  39186. <ul>
  39187. <ul>
  39188. <li>inactive: deaktiviert das Device (identisch zum Attribut "disable", aber ohne die Notwendigkeit su "saven".</li>
  39189. <li>active: reaktiviert das Device nachdem es auf inactive gesetzt wurde</li>
  39190. <li>clear: LĂśscht alle readings (inklusive der Liste der letzten 20 Freezes).</li>
  39191. </ul>
  39192. </ul>
  39193. <a name="freezemonGet"></a>
  39194. <b>Get</b>
  39195. <ul>
  39196. <ul>
  39197. <li>freeze: gibt die letzten 20 freezes zurßck (in Kompakter Darstellung, wie im state) - Dies dient einem schnellen �berblick, fßr detailliertere Auswertungen empfehle ich die Daten zu loggen.</li>
  39198. <li>log: gibt Zugriff auf die Logfiles die geschrieben werden, wenn fm_logFile aktiv ist</li>
  39199. </ul>
  39200. </ul>
  39201. <a name="freezemonReadings"></a>
  39202. <b>Readings</b>
  39203. <ul>
  39204. <ul>
  39205. <li>freezeTime: Dauer des Freezes</li>
  39206. <li>freezeDevice: Liste von mĂśglicherweise den Freeze auslĂśsenden Funktionen(Devices)</li>
  39207. <li>fcDay: kumulierte Anzahl der Freezes pro Tag</li>
  39208. <li>ftDay: kumulierte Dauer der Freezes pro Tag </li>
  39209. <li>fcDayLast: speichert die kumulierte Anzahl der Freezes des vergangenen Tages (um tageweise plots zu erstellen)</li>
  39210. <li>fcDayLast: speichert die kumulierte Dauer der Freezes des vergangenen Tages (um tageweise plots zu erstellen)</li>
  39211. <li>state: s:&lt;StartZeit&gt; e:&lt;EndeZeit&gt; f:&lt;Dauer&gt; d:&lt;Devices&gt;</li>
  39212. </ul>
  39213. </ul>
  39214. <a name="freezemonAttributes"></a>
  39215. <b>Attribute</b>
  39216. <ul>
  39217. <ul>
  39218. <li>fm_catchCallFn: wenn aktiviert, werden zusätzlich FHEM-interne Funktionsaufrufe ßberwacht, in einigen Fällen kann das zusätzliche Hinweise auf den Freeze-Verursacher geben</li>
  39219. <li>fm_catchCmds: wenn aktiviert, werden zusätzlich FHEM-Kommandos ßberwacht, in einigen Fällen kann das zusätzliche Hinweise auf den Freeze-Verursacher geben</li>
  39220. <li>fm_extDetail: stellt in einigen Fällen zusätzliche Details bei erkannten Freezes zur Verfßgung. In wenigen Fällen wurde berichtet, dass FHEM crasht, also vorsichtig verwenden.</li>
  39221. <li>fm_freezeThreshold: Wert in Sekunden (Default: 1) - Nur Freezes länger als fm_freezeThreshold werden als Freeze betrachtet </li>
  39222. <li>fm_forceApptime: Wenn FREEZEMON aktiv ist wird automatisch apptime gestartet (falls nicht aktiv)</li>
  39223. <li>fm_ignoreDev: Liste von Komma-getrennten Devices. Wenn einzelne mĂśglicherweise einen Freeze verursachenden Device in dieser Liste sind, wird der Freeze ignoriert (nicht geloggt). Bitte das Attribut fm_ignoreMode beachten</li>
  39224. <li>fm_ignoreMode: Kann die Werte off,single oder all annehmen. Wenn in fm_ignoreDev Devices angegeben sind wirken sich der ignoreMode wie folgt aus: <br>
  39225. all: Ein Freeze wird nur dann ignoriert, wenn alle mÜglicherweise den Freeze verursachenden Devices in der Ignore-Liste enthalten sind. Dies fßhrt unter Umständen dazu, dass mehr Freezes geloggt werden als erwartet.<br>
  39226. single: Ein Freeze wird ignoriert, sobald ein mĂśglicher Verursacher in der Ignorierliste enthalten ist. Dies fĂźhrt mĂśglicherweise dazu, dass Freezes Ăźbersehen werden.<br>
  39227. off: Alle Freezes werden geloggt.<br>
  39228. Sofern das Attribut nicht gesetzt ist, aber Ignore-Devices angegeben sind, wird im Modus "all" ignoriert.</li>
  39229. <li>fm_log: dynamischer Loglevel, nimmt einen String der Form 10:1 5:2 1:3 entgegen, was bedeutet: Freezes > 10 Sekunden werden mit Loglevel 1 geloggt, >5 Sekunden mit Loglevel 2 usw...</li>
  39230. <li>fm_logFile: ist ein gĂźltiger Filename (wie z.B. ./log/freeze-%Y%m%d-%H%M%S.log). Wenn gesetzt, werdn Meldungen auf Loglevel 5 (auch wenn global Loglevel < 5 ist) vor einem Freeze in einem seperaten File geloggt.</li>
  39231. <li>fm_logExtraSeconds: dobsoletes Attribut, wird nicht mehr genutzt und sollte gelĂśscht werden</li>
  39232. <li>fm_logKeep: Eine Zahl, die angibt wieviele Logfiles behalten werden sollen. Wenn gesetzt, werden alle Logfiles ausser den letzten n Freezemon Logfiles regelmä�ig gelÜscht.</li>
  39233. <li>fm_whitelistSub: Komma-getrennte Liste von Subroutinen wo du sicher bist, dass sie keinen Freeze verursachen. Whitelisted Subs erscheinen nicht in der "possibly caused by" Liste. Typischerweise listet man hier Subroutinen, die regelmä�ig in der "possibly caused by" Liste auftauchen, wo du aber wirklich sicher bist, dass sie nicht die Ursache sind. Anmerkung: Die Subroutine ist der initiale Teil (vor dem devicename in Klammern) in Freezemon Logmeldungen.</li>
  39234. <li>disable: aktivieren/deaktivieren der Freeze-Erkennung</li>
  39235. </ul>
  39236. </ul>
  39237. </ul>
  39238. </div>
  39239. <p><a name="harmony"></a>
  39240. <h3>harmony</h3>
  39241. <ul>
  39242. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39243. hier: <a href='commandref.html#harmony'>harmony</a><br/>
  39244. </ul>
  39245. <a name="help"></a>
  39246. <h3>?, help</h3>
  39247. <div class='langLinks'>[<a href='commandref.html#help'>EN</a> DE]</div>
  39248. <ul>
  39249. <code>? [&lt;moduleName|deviceName&gt;] [<language>]</code><br/>
  39250. <code>help [&lt;moduleName|deviceName&gt;] [<language>]</code><br/>
  39251. <br>
  39252. <ul>
  39253. <li>Liefert eine Liste aller Befehle mit einer Kurzbeschreibung zur&uuml;ck.</li>
  39254. <li>Falls moduleName oder deviceName spezifiziert ist, wird die modul-spezifische Hilfe
  39255. aus commandref zur&uuml;ckgeliefert.</li>
  39256. <li>Die anzuzeigende Sprache wird in folgender Reihenfolge bestimmt:
  39257. <ul>
  39258. <li>g&uuml;ltiger Parameter &lt;language&gt; beim Aufruf &uuml;bergeben</li>
  39259. <li>globales Attribut language</li>
  39260. <li>falls alles fehlt: englisch</li>
  39261. </ul>
  39262. </li>
  39263. </ul>
  39264. </ul>
  39265. <p><a name="holiday"></a>
  39266. <h3>holiday</h3>
  39267. <div class='langLinks'>[<a href='commandref.html#holiday'>EN</a> DE]</div>
  39268. <ul>
  39269. <a name="holidaydefine"></a>
  39270. <b>Define</b>
  39271. <ul>
  39272. <code>define &lt;name&gt; holiday</code>
  39273. <br><br>
  39274. Definiert einen Satz mit Urlaubsinformationen. Das Modul versucht die
  39275. Datei &lt;name&gt;.holiday erst in <a href="#modpath">modpath</a>/FHEM zu
  39276. &ouml;ffnen, und dann in modpath/FHEM/holiday, Letzteres enth&auml;lt eine
  39277. Liste von per FHEM-update verteilten Dateien f&uuml;r diverse
  39278. (Bundes-)L&auml;nder. Diese Liste wird bei einer Fehlermeldung angezeigt.
  39279. Wenn Eintr&auml;ge im der Datei auf den aktuellen Tag passen wird der STATE
  39280. der Holiday-Instanz die im <a href="#list">list</a> Befehl angezeigt wird
  39281. auf die entsprechenden Werte gesetzt. Andernfalls ist der STATE auf den
  39282. Text "none" gesetzt.
  39283. Meistens wird dieser Wert mit einem Perl Script abgefragt: siehe Value() im
  39284. <a href="#perl">perl</a> Abschnitt oder im globalen Attribut <a
  39285. href="#holiday2we"> holiday2we</a>.<br> Die Datei wird jede Nacht neu
  39286. eingelesen um den Wert des aktuellen Tages zu erzeugen. Auch jeder "get"
  39287. Befehl liest die Datei neu ein.
  39288. <br><br>
  39289. Holiday file Definition:<br>
  39290. Die Datei darf Kommentare, beginnend mit #, und Leerzeilen enthalten. Die
  39291. entscheidenden Zeilen beginnen mit einer Zahl (Typ) und enthalten durch
  39292. Leerzeichen getrennte W&ouml;rter, je nach Typ. Die verschiedenen Typen
  39293. sind:<br>
  39294. <ul>
  39295. <li>1<br>
  39296. Genaues Datum. Argument: &lt;MM-TT&gt; &lt;Feiertag-Name&gt;<br>
  39297. Beispiel: 1 12-24 Weihnachten
  39298. </li>
  39299. <li>2<br>
  39300. Oster-abh&auml;ngiges Datum. Argument: &lt;Tag-Offset&gt;
  39301. &lt;Feiertag-Name&gt;.
  39302. Der Offset wird vom Oster-Sonntag an gez&auml;hlt.
  39303. <br>
  39304. Beispiel: 2 1 Oster-Montag<br>
  39305. Hinweis: Das Osterdatum kann vorher gepr&uuml;ft werden:
  39306. fhem> { join("-", western_easter(2011)) }
  39307. </li>
  39308. <li>3<br>
  39309. Monats-abh&auml;ngiges Datum. Argument: &lt;X&gt; &lt;Wochentag&gt;
  39310. &lt;Monat&gt; &lt;Feiertag-Name&gt;.<br>
  39311. Beispiel:<br>
  39312. <ul>
  39313. 3 1 Mon 05 Erster Montag In Mai<br>
  39314. 3 2 Mon 05 Zweiter Montag In Mai<br>
  39315. 3 -1 Mon 05 Letzter Montag In Mai<br>
  39316. 3 0 Mon 05 Jeder Montag In Mai<br>
  39317. </ul>
  39318. </li>
  39319. <li>4<br>
  39320. Intervall. Argument: &lt;MM-TT&gt; &lt;MM-TT&gt; &lt;Feiertag-Name&gt;
  39321. .<br>
  39322. Achtung: Ein Intervall darf kein Jahresende enthalten.
  39323. Beispiel:<br>
  39324. <ul>
  39325. 4 06-01 06-30 Sommerferien<br>
  39326. 4 12-20 01-10 Winterferien # FUNKTIONIER NICHT,
  39327. stattdessen folgendes verwenden:<br>
  39328. 4 12-20 12-31 Winterferien<br>
  39329. 4 01-01 01-10 Winterferien<br>
  39330. </ul>
  39331. </li>
  39332. <li>5<br>
  39333. Datum relativ, Wochentags ein fester Urlaubstag/Feiertag. Argument:
  39334. &lt;X&gt; &lt;Wochentag&gt; &lt;Monat&gt; &lt;Tag&gt;
  39335. &lt;Feiertag-Name&gt;<br> Hinweis: Da +0 oder -0 als Offset nicht
  39336. verboten sind, ist das Verhalten hier nicht definiert, kann sich also
  39337. ohne Info &auml;ndern;<br>
  39338. Beispiel:<br>
  39339. <ul>
  39340. 5 -1 Wed 11 23 Buss und Bettag (erster Mittwoch vor dem 23. Nov)<br>
  39341. 5 1 Mon 01 31 Erster Montag in Februar<br>
  39342. </ul>
  39343. </li>
  39344. </ul>
  39345. </ul>
  39346. <br>
  39347. <a name="holidayset"></a>
  39348. <b>Set</b>
  39349. <ul>
  39350. <li>createPrivateCopy<br>
  39351. <ul>
  39352. Falls die Datei in der FHEM/holiday Verzeichnis ge&ouml;ffnet wurde,
  39353. dann ist sie nicht beschreibbar, da dieses Verzeichnis mit FHEM
  39354. update aktualisiert wird. Mit createPrivateCopy kann eine private Kopie
  39355. im FHEM Verzeichnis erstellt werden.
  39356. </ul></li>
  39357. <li>deletePrivateCopy<br>
  39358. <ul>
  39359. Entfernt die private Kopie, siehe auch createPrivateCopy
  39360. </ul></li>
  39361. <li>reload<br>
  39362. <ul>
  39363. setzt die state, tomorrow und yesterday Readings. Wird nach einem
  39364. manuellen Bearbeiten der .holiday Datei ben&ouml;tigt.
  39365. </ul></li>
  39366. </ul><br>
  39367. <a name="holidayget"></a>
  39368. <b>Get</b>
  39369. <ul>
  39370. <code>get &lt;name&gt; &lt;MM-DD&gt;</code><br>
  39371. <code>get &lt;name&gt; yesterday</code><br>
  39372. <code>get &lt;name&gt; today</code><br>
  39373. <code>get &lt;name&gt; tomorrow</code><br>
  39374. <code>get &lt;name&gt; days &lt;offset&gt;</code><br>
  39375. <br><br>
  39376. Gibt den Name des Feiertages zum angebenenen Datum zur&uuml;ck oder den
  39377. Text none.
  39378. <br><br>
  39379. </ul>
  39380. <br>
  39381. <a name="holidayattr"></a>
  39382. <b>Attributes</b><ul>
  39383. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  39384. </ul><br>
  39385. </ul>
  39386. <p><a name="km200"></a>
  39387. <h3>KM200</h3>
  39388. <div class='langLinks'>[<a href='commandref.html#km200'>EN</a> DE]</div>
  39389. <ul>
  39390. <table>
  39391. <tr>
  39392. <td>
  39393. Das Buderus <a href="https://www.buderus.de/de/produkte/catalogue/alle-produkte/7719_Gateway-Logamatic-web-KM200-KM100-KM50">KM200, KM100 or KM50 (ab hier als KMxxx beschrieben)</a> ist eine Schnittstelle zwischen der Buderus Zentralheizungssteuerung un dem Internet.<BR>
  39394. Es wurde entwickelt um den Bewohnern den Zugang zu Ihrem Heizungssystem durch die Buderus App <a href="http://www.buderus.de/Online_Anwendungen/Apps/fuer_den_Endverbraucher/EasyControl-4848514.html"> EasyControl zu erlauben.</a>.<BR>
  39395. Dar&uuml;ber hinaus erlaubt es nach vorheriger Freigabe dem Heizungs- bzw. Wartungsbetrieb die Heizungsanlage von aussen zu warten und Werte zu ver&auml;ndern.<BR>
  39396. Das km200 fhem-Modul erlaubt den Lese-/Schreibzugriff dieser Parameter durch fhem.<BR>
  39397. <BR>
  39398. Um das KMxxx Ger&auml;t mit fhem nutzen zu k&ouml;nnen, mu&szlig; zun&auml;chst ein privates Passwort mit der Buderus Buderus App <a href="http://www.buderus.de/Online_Anwendungen/Apps/fuer_den_Endverbraucher/EasyControl-4848514.html"> EasyControl</a> - App gesetzt werden.<BR>
  39399. <BR>
  39400. <b><u>Anmerkung:</u></b><BR>
  39401. Unabh&auml;ngig der Installationsanleitung des Buderus KMxxx Ger&auml;ts, sollten die Ports 5222 und 5223 am Router geschlossen bleiben um keinen Zugriff von au&szlig;en auf das Ger&auml;t zu erlauben.<BR>
  39402. Der Router sollte entsprechend Konfiguriert bzw. so belassen werden.<BR>
  39403. Wenn der Lese-/Schreibzugriff von aussen gew&uuml;nscht ist, so sollte man ausschlie&szlig;lich &uuml;ber das fhem-System auf die Zentralheizung zugreifen.<BR>
  39404. <BR>
  39405. Sobald das Modul in der fhem.cfg definiert ist, wird das Modul versuchen alle bekannten Services abzuklopfen ob diese in der angeschlossenen Konstellation &uuml;berhaupt vorhanden sind.<BR>
  39406. Nach diesem Initial-Kontakt unterscheidet das Modul zwisachen einem Satz an Services die sich st&auml;ndig (dynamisch) &auml;ndern (z.B.: Vorlauftemperatur) sowie sich nicht st&auml;ndig (statisch) &auml;ndernden Werten (z.B.: Firmware Version).<BR>
  39407. Diese beiden S&auml;tze an Services k&ouml;nnen mir einem individuellen Abfrageintervall versehen werden. Siehe <a href="#KM200Attr">Attributes</a><BR>
  39408. <BR>
  39409. </td>
  39410. </tr>
  39411. </table>
  39412. <table>
  39413. <tr><td><a name="KM200define"></a><b>Define</b></td></tr>
  39414. </table>
  39415. <table><tr><td><ul><code>define &lt;name&gt; km200 &lt;IPv4-address&gt; &lt;GatewayPassword&gt; &lt;PrivatePassword&gt;</code></ul></td></tr></table>
  39416. <ul><ul>
  39417. <table>
  39418. <tr><td><code>&lt;name&gt;</code> : </td><td>Der Name des Ger&auml;tes. Empfehlung: "myKm200".</td></tr>
  39419. <tr><td><code>&lt;IPv4-address&gt;</code> : </td><td>Eine g&uuml;ltige IPv4 Adresse des KM200. Eventuell im Router nachschauen welche DHCP - Addresse dem KM200/KM50 vergeben wurde.</td></tr>
  39420. <tr><td><code>&lt;GatewayPassword&gt;</code> : </td><td>Das gateway Passwort, welches auf dem Typenschild des KM200/KM50 zu finden ist.</td></tr>
  39421. <tr><td><code>&lt;PrivatePassword&gt;</code> : </td><td>Das private Passwort, welches durch den User mit Hilfe der <a href="http://www.buderus.de/Online_Anwendungen/Apps/fuer_den_Endverbraucher/EasyControl-4848514.html"> EasyControl</a> - App vergeben wurde.</td></tr>
  39422. </table>
  39423. </ul></ul>
  39424. <BR>
  39425. <table>
  39426. <tr><td><a name="KM200Set"></a><b>Set</b></td></tr>
  39427. <tr><td>
  39428. <ul>
  39429. Die set Funktion &auml;ndert die Werte der Services welche das Flag "schreibbar" innerhalb der KMxxx Service Struktur besitzen.<BR>
  39430. Die meisten dieser beschreibbaren Werte haben eine exklusive Liste von m&ouml;glichen Werten innerhalb dessen sich der neue Wert bewegen muss.<BR>
  39431. Andere Flie&szlig;komma Werte haben einen maximum und minumum Wert, in dessen sich der neue Wert bewegen mu&szlig;.<BR>
  39432. </ul>
  39433. </td></tr>
  39434. </table>
  39435. <table><tr><td><ul><code>set &lt;service&gt; &lt;value&gt;</code></ul></td></tr></table>
  39436. <ul><ul>
  39437. <table>
  39438. <tr><td><code>&lt;service&gt;</code> : </td><td>Der Name des Service welcher gesetzt werden soll. Z.B.: "<code>/heatingCircuits/hc1/operationMode</code>"<BR></td></tr>
  39439. <tr><td><code>&lt;value&gt;</code> : </td><td>Ein g&uuml;ltiger Wert f&uuml;r diesen Service.<BR></td></tr>
  39440. </table>
  39441. </ul></ul>
  39442. <BR>
  39443. <table>
  39444. <tr><td><a name="KM200Get"></a><b>Get</b></td></tr>
  39445. <tr><td>
  39446. <ul>
  39447. Die get-Funktion ist in der Lage einen Wert eines Service innerhalb der KMxxx Service Struktur auszulesen.<BR>
  39448. Die zus&auml;tzliche Liste von erlaubten Werten oder der Wertebereich zwischen Minimum und Maximum wird nicht zur&uuml;ck gegeben.<BR>
  39449. </ul>
  39450. </td></tr>
  39451. </table>
  39452. <table><tr><td><ul><code>get &lt;service&gt; &lt;option&gt;</code></ul></td></tr></table>
  39453. <ul><ul>
  39454. <table>
  39455. <tr>
  39456. <td><code>&lt;service&gt;</code> : </td><td>Der Name des Service welcher ausgelesen werden soll. Z.B.: "<code>/heatingCircuits/hc1/operationMode</code>"<BR>
  39457. &nbsp;&nbsp;Es gibt nur den Wert, aber nicht die Werteliste oder den m&ouml;glichen Wertebereich zur&uuml;ck.<BR>
  39458. </td>
  39459. </tr>
  39460. </table>
  39461. </ul></ul>
  39462. <ul><ul>
  39463. <table>
  39464. <tr>
  39465. <td><code>&lt;option&gt;</code> : </td><td>Das optionelle Argument f&uuml;r Ausgabe des get-Befehls Z.B.: "<code>json</code>"<BR>
  39466. &nbsp;&nbsp;Folgende Optionen sind verf&uuml;gbar:<BR>
  39467. &nbsp;&nbsp;json - Gibt anstelle des Wertes, die gesamte Json Antwort des KMxxx als String zur&uuml;ck
  39468. </td>
  39469. </tr>
  39470. </table>
  39471. </ul></ul>
  39472. <BR>
  39473. <table>
  39474. <tr><td><a name="KM200Attr"></a><b>Attributes</b></td></tr>
  39475. <tr><td>
  39476. <ul>
  39477. Die folgenden Modul-spezifischen Attribute k&ouml;nnen neben den bekannten globalen Attributen gesetzt werden wie z.B.: <a href="#room">room</a>.<BR>
  39478. </ul>
  39479. </td></tr>
  39480. </table>
  39481. <ul><ul>
  39482. <table>
  39483. <tr>
  39484. <td>
  39485. <tr><td><li><code>IntervalDynVal</code> : </li></td><td>Ein g&uuml;ltiges Abfrageintervall f&uuml;r die sich st&auml;ndig ver&auml;ndernden - dynamischen Werte der KMxxx Services. Der Wert muss gr&ouml;&szlig;er gleich >=20s sein um dem Modul gen&uuml;gend Zeit einzur&auml;umen eine volle Abfrage auszuf&uuml;hren bevor die n&auml;chste Abfrage startet.<BR>
  39486. Der Default-Wert ist 300s.<BR>
  39487. </td></tr>
  39488. </td>
  39489. </tr>
  39490. </table>
  39491. </ul></ul>
  39492. <ul><ul>
  39493. <table>
  39494. <tr>
  39495. <td>
  39496. <tr><td><li><code>PollingTimeout</code> : </li></td><td>Ein g&uuml;ltiger Zeitwert um dem KMxxx gen&uuml;gend Zeit zur Antwort einzelner Werte einzur&auml;umen. Normalerweise braucht dieser Wert nicht ver&auml;ndert werden, muss jedoch im Falle eines langsamen Netzwerks erh&ouml;ht werden<BR>
  39497. Der Default-Wert ist 5s.<BR>
  39498. </td></tr>
  39499. </td>
  39500. </tr>
  39501. </table>
  39502. </ul></ul>
  39503. <ul><ul>
  39504. <table>
  39505. <tr>
  39506. <td>
  39507. <tr><td><li><code>DoNotPoll</code> : </li></td><td>Eine durch Leerzeichen (Blank) getrennte Liste von Services welche von der Abfrage aufgrund irrelevanter Werte oder fhem - Abst&uuml;rzen ausgenommen werden sollen.<BR>
  39508. Die Liste kann auch Hierarchien von services enthalten. Dies bedeutet, das alle Services unterhalb dieses Services ebenfalls gel&ouml;scht werden.<BR>
  39509. Der Default Wert ist (empty) somit werden alle bekannten Services abgefragt.<BR>
  39510. </td></tr>
  39511. </td>
  39512. </tr>
  39513. </table>
  39514. </ul></ul>
  39515. <ul><ul>
  39516. <table>
  39517. <tr>
  39518. <td>
  39519. <tr><td><li><code>ReadBackDelay</code> : </li></td><td>Ein g&uuml;ltiger Zeitwert in Mllisekunden [ms] f&uuml;r die Pause zwischen schreiben und zur&uuml;cklesen des Wertes durch den "set" - Befehl. Der Wert muss >=0ms sein.<BR>
  39520. Der Default-Wert ist 100 = 100ms = 0,1s.<BR>
  39521. </td></tr>
  39522. </td>
  39523. </tr>
  39524. </table>
  39525. </ul></ul>
  39526. <ul><ul>
  39527. <table>
  39528. <tr>
  39529. <td>
  39530. <tr><td><li><code>disable</code> : </li></td><td>Deaktiviert das Device und l&ouml;scht alle bestehenden Readings.<BR>
  39531. Der Default-Wert ist 0 = aktiviert<BR>
  39532. </td></tr>
  39533. </td>
  39534. </tr>
  39535. </table>
  39536. </ul></ul>
  39537. </ul>
  39538. <p><a name="livetracking"></a>
  39539. <h3>livetracking</h3>
  39540. <ul>
  39541. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39542. hier: <a href='commandref.html#livetracking'>livetracking</a><br/>
  39543. </ul>
  39544. <a name="logProxy"></a>
  39545. <h3>logProxy</h3>
  39546. <ul>
  39547. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39548. hier: <a href='commandref.html#logProxy'>logProxy</a><br/>
  39549. </ul>
  39550. <a name="mailcheck"></a>
  39551. <h3>mailcheck</h3>
  39552. <ul>
  39553. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  39554. hier: <a href='commandref.html#mailcheck'>mailcheck</a><br/>
  39555. </ul>
  39556. <a name="monitoring"></a>
  39557. <h3>monitoring</h3>
  39558. <div class='langLinks'>[<a href='commandref.html#monitoring'>EN</a> DE]</div>
  39559. ( <a href="commandref.html#monitoring"><u>en</u></a> | de )
  39560. <div>
  39561. <ul>
  39562. Jedes monitoring verf&uuml;gt &uuml;ber eine warning- und eine error-Liste,
  39563. welche als Readings gespeichert werden.<br>
  39564. Beim auftreten eines definierten add-events wird das Ger&auml;t nach einer
  39565. vorgegeben Zeit auf die warning-Liste gesetzt.<br>
  39566. Nach einer weiteren vorgegeben Zeit wird das Ger&auml;t von der
  39567. warning-Liste gel&ouml;scht und auf die error-Liste gesetzt.<br>
  39568. Beim auftreten eines definierten remove-events wird das Ger&auml;t von
  39569. beiden Listen gel&ouml;scht und noch laufende Timer abgebrochen.<br>
  39570. Hiermit lassen sich auf einfache Weise Sammelmeldungen erstellen und durch
  39571. zwei Attribute formatiert ausgeben.<br>
  39572. <br>
  39573. Folgende Anwendungen sind m&ouml;glich und werden
  39574. <a href="#monitoringexamples"><u>unten</u></a> beschrieben:<br>
  39575. <ul>
  39576. <li>ge&ouml;ffnete Fenster</li>
  39577. <li>Batterie Warnungen</li>
  39578. <li>Activity Monitor</li>
  39579. <li>
  39580. regelm&auml;&szlig;ige Wartungsarbeiten
  39581. (z.B. Tischwasserfilter wechseln oder Räume putzen)
  39582. </li>
  39583. <li>
  39584. Betriebsstunden abh&auml;ngige Wartungsarbeiten
  39585. (z.B. Beamer Filter reinigen)
  39586. </li>
  39587. </ul>
  39588. <br>
  39589. Das monitor sendet selbst keine Benachrichtung, hierf&uuml;r ist ein notify
  39590. oder DOIF notwendig, welches auf das Event "&lt;monitoring-name&gt; error
  39591. add: &lt;name&gt;" reagiert und dann den R&uuml;ckgabewert von
  39592. "get &lt;monitoring-name&gt; default" versendet.
  39593. <br>
  39594. <br>
  39595. <a name="monitoringdefine"></a>
  39596. <b>Define</b>
  39597. <ul>
  39598. <code>
  39599. define &lt;name&gt; mointoring &lt;add-event&gt; [&lt;remove-event&gt;]
  39600. </code>
  39601. <br>
  39602. Die Syntax f&uuml;r &lt;add-event&gt; und &lt;remove-event&gt; ist die
  39603. gleiche wie f&uuml;r das Suchmuster von
  39604. <a href="commandref_DE.html#notify"><u>notify</u></a> (Ger&auml;tename
  39605. oder Ger&auml;tename:Event).<br>
  39606. Ist nur ein &lt;add-event&gt; definiert wird beim auftreten das
  39607. Ger&auml;t von beiden Listen gel&ouml;scht und die Timer f&uuml;r warning
  39608. und error werden gestartet.<br>
  39609. </ul>
  39610. <br>
  39611. <a name="monitoringset"></a>
  39612. <b>Set</b>
  39613. <ul>
  39614. <li>
  39615. <code>active</code><br>
  39616. Es passieren zwei Dinge:<br>
  39617. 1. Stellt noch ausstehende Timer wieder her, bzw. setzt die Ger&auml;te
  39618. sofort auf die entsprechende Liste, falls der Zeitpunkt in der
  39619. Vergangenheit liegt.<br>
  39620. 2. F&uuml;hrt die unter dem Attribut "setActiveFunc" angegeben Befehle
  39621. aus.
  39622. </li>
  39623. <li>
  39624. <code>clear (warning|error|all)</code><br>
  39625. Entfernt alle Ger&auml;te von der angegeben Liste und bricht f&uuml;r
  39626. diese Liste laufende Timer ab. Bei "all" werden alle Ger&auml;te von
  39627. beiden Listen entfernt und alle laufenden Timer abgebrochen.
  39628. </li>
  39629. <li>
  39630. <code>errorAdd &lt;name&gt;</code><br>
  39631. F&uuml;gt &lt;name&gt; zu der error-Liste hinzu.
  39632. </li>
  39633. <li>
  39634. <code>errorRemove &lt;name&gt;</code><br>
  39635. Entfernt &lt;name&gt; von der error-Liste.
  39636. </li>
  39637. <li>
  39638. <code>inactive</code><br>
  39639. Deaktiviert das monitoring. Beachte den leichten semantischen
  39640. Unterschied zum disable Attribut: "set inactive" wird bei einem
  39641. shutdown automatisch in fhem.state gespeichert, es ist kein save
  39642. notwendig.
  39643. </li>
  39644. <li>
  39645. <code>warningAdd &lt;name&gt;</code><br>
  39646. F&uuml;gt &lt;name&gt; zu der warning-Liste hinzu.
  39647. </li>
  39648. <li>
  39649. <code>warningRemove &lt;name&gt;</code><br>
  39650. Entfernt &lt;name&gt; von der warning-Liste.
  39651. </li>
  39652. </ul>
  39653. <br>
  39654. <a name="monitoringget"></a>
  39655. <b>Get</b>
  39656. <ul>
  39657. <li>
  39658. <code>all</code><br>
  39659. Gibt, durch eine Leerzeile getrennt, die error- und warning-Liste
  39660. zur&uuml;ck.<br>
  39661. Die Formatierung kann dabei mit den Attributen "errorReturn" und
  39662. "warningReturn" eingestellt werden.
  39663. </li>
  39664. <li>
  39665. <code>default</code><br>
  39666. Der "default" Wert kann in dem Attribut "getDefault" festgelegt werden
  39667. und ist dazu gedacht um die Konfiguration f&uuml;r den
  39668. R&uuml;ckgabewert im monitoring Ger&auml;t zu belassen. Wird nichts
  39669. angegeben wird "all" verwendent.
  39670. </li>
  39671. <li>
  39672. <code>error</code><br>
  39673. Gibt die error-Liste zur&uuml;ck.<br>
  39674. Die Formatierung kann dabei mit dem Attribut "errorReturn" eingestellt
  39675. werden.
  39676. </li>
  39677. <li>
  39678. <code>warning</code><br>
  39679. Gibt die warning-Liste zur&uuml;ck.<br>
  39680. Die Formatierung kann dabei mit dem Attribut "warningReturn"
  39681. eingestellt werden.
  39682. </li>
  39683. </ul>
  39684. <br>
  39685. <a name="monitoringreadings"></a>
  39686. <b>Readings</b><br>
  39687. <ul>
  39688. <li>
  39689. <code>allCount</code><br>
  39690. Zeigt die Anzahl der Geräte in der warning- und error-Liste an.
  39691. </li>
  39692. <li>
  39693. <code>error</code><br>
  39694. Durch Komma getrennte Liste von Ger&auml;ten.
  39695. </li>
  39696. <li>
  39697. <code>errorAdd_&lt;name&gt;</code><br>
  39698. Zeigt den Zeitpunkt an wann das Ger&auml;t auf die error-Liste gesetzt
  39699. wird.
  39700. </li>
  39701. <li>
  39702. <code>errorCount</code><br>
  39703. Zeigt die Anzahl der Geräte in der error-Liste an.
  39704. </li>
  39705. <li>
  39706. <code>state</code><br>
  39707. Zeigt den Status (active, inactive oder disabled) an. Bei "active" wird
  39708. angezeigt welches Gerät zu welcher Liste hinzugefßgt bzw. von welcher
  39709. Liste entfernt wurde.
  39710. </li>
  39711. <li>
  39712. <code>warning</code><br>
  39713. Durch Komma getrennte Liste von Ger&auml;ten.
  39714. </li>
  39715. <li>
  39716. <code>warningAdd_&lt;name&gt;</code><br>
  39717. Zeigt den Zeitpunkt an wann das Ger&auml;t auf die warning-Liste
  39718. gesetzt wird.
  39719. </li>
  39720. <li>
  39721. <code>warningCount</code><br>
  39722. Zeigt die Anzahl der Geräte in der warning-Liste an.
  39723. </li>
  39724. </ul>
  39725. <br>
  39726. <a name="monitoringattr"></a>
  39727. <b>Attribute</b>
  39728. <ul>
  39729. <li>
  39730. <a href="#addStateEvent">
  39731. <u><code>addStateEvent</code></u>
  39732. </a>
  39733. </li>
  39734. <li>
  39735. <code>blacklist</code><br>
  39736. Durch Leerzeichen getrennte Liste von devspecs die ignoriert werden.<br>
  39737. Wenn das Attribut gesetzt wird werden alle Geräte die durch die
  39738. devspecs definiert sind von beiden Listen gelĂśscht.
  39739. </li>
  39740. <li>
  39741. <code>disable (1|0)</code><br>
  39742. 1: Deaktiviert das monitoring.<br>
  39743. 0: siehe "set active"
  39744. </li>
  39745. <li>
  39746. <a href="#disabledForIntervals">
  39747. <u><code>disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM ...</code></u>
  39748. </a>
  39749. </li>
  39750. <li>
  39751. <code>errorFuncAdd {&lt;perl code&gt;}</code><br>
  39752. In dieser Funktion stehen die folgende Variablen zur Verf&uuml;gung:
  39753. <br>
  39754. <ul>
  39755. <li>
  39756. <code>$name</code><br>
  39757. Name des Event ausl&ouml;senden Ger&auml;tes
  39758. </li>
  39759. <li>
  39760. <code>$event</code><br>
  39761. Beinhaltet das komplette Event, z.B.
  39762. <code>measured-temp: 21.7 (Celsius)</code>
  39763. </li>
  39764. <li>
  39765. <code>$addMatch</code><br>
  39766. Hat den Wert 1, falls das add-event zutrifft
  39767. </li>
  39768. <li>
  39769. <code>$removeMatch</code><br>
  39770. Hat den Wert 1, falls das remove-event zutrifft
  39771. </li>
  39772. <li>
  39773. <code>$SELF</code><br>
  39774. Eigenname des monitoring
  39775. </li>
  39776. </ul>
  39777. Gibt die Funktion eine 1 zur&uuml;ck, wird das Ger&auml;t, nach der
  39778. Wartezeit, auf die error-Liste gesetzt.<br>
  39779. Wenn das Attribut nicht gesetzt ist wird auf <code>$addMatch</code>
  39780. gepr&uuml;ft.
  39781. </li>
  39782. <li>
  39783. <code>errorFuncRemove {&lt;perl code&gt;}</code><br>
  39784. In dieser Funktion stehen die selben Variablen wie bei "errorFuncAdd"
  39785. zur Verf&uuml;gung.<br>
  39786. Gibt die Funktion eine 1 zur&uuml;ck, wird das Ger&auml;t von der
  39787. error-Liste entfernt und noch laufende Timer werden abgebrochen.<br>
  39788. Wenn das Attribut nicht gesetzt ist wird bei einer DEF mit
  39789. <code>&lt;remove-event&gt;</code> auf <code>$removeMatch</code>
  39790. gepr&uuml;ft und bei einer DEF ohne <code>&lt;remove-event&gt;</code>
  39791. auf <code>errorFuncAdd</code>.
  39792. </li>
  39793. <li>
  39794. <code>errorWait &lt;perl code&gt;</code><br>
  39795. Wartezeit bis das Ger&auml;t auf die error-Liste gesetzt wird.
  39796. </li>
  39797. <li>
  39798. <code>errorReturn {&lt;perl code&gt;}</code><br>
  39799. In diesem Attribut stehen folgende Variablen zur Verf&uuml;gung:
  39800. <ul>
  39801. <li>
  39802. <code>@errors</code><br>
  39803. Array mit allen Ger&auml;ten auf der error-Liste.
  39804. </li>
  39805. <li>
  39806. <code>@warnings</code><br>
  39807. Array mit allen Ger&auml;ten auf der warning-Liste.
  39808. </li>
  39809. <li>
  39810. <code>$SELF</code><br>
  39811. Eigenname des monitoring
  39812. </li>
  39813. </ul>
  39814. Mit diesem Attribut kann die Ausgabe die mit "get &lt;name&gt; error"
  39815. erzeugt wird angepasst werden.
  39816. </li>
  39817. <li>
  39818. <code>getDefault (all|error|warning)</code><br>
  39819. Mit diesem Attribut kann festgelegt werden welche Liste/n mit "get
  39820. &lt;name&gt; default" zur&uuml;ck gegeben wird/werden. Wenn das
  39821. Attribut nicht gesetzt ist wird "all" verwendet.
  39822. </li>
  39823. <li>
  39824. <code>setActiveFunc &lt;Anweisung&gt;</code><br>
  39825. Die Anweisung ist einer der FHEM
  39826. <a href="#command"><u>Befehlstypen</u></a> und wird beim definieren des
  39827. monitoring oder bei "set active" ausgef&uuml;hrt.<br>
  39828. F&uuml;r eine Batterie Meldung kann <code>"trigger battery=low
  39829. battery:low"</code> sinnvoll sein.
  39830. </li>
  39831. <li>
  39832. <code>warningFuncAdd {&lt;perl code&gt;}</code><br>
  39833. Wie errorFuncAdd, nur f&uuml;r die warning-Liste.
  39834. </li>
  39835. <li>
  39836. <code>warningFuncRemove {&lt;perl code&gt;}</code><br>
  39837. Wie errorFuncRemove, nur f&uuml;r die warning-Liste.
  39838. </li>
  39839. <li>
  39840. <code>warningWait &lt;perl code&gt;</code><br>
  39841. Wie errorWait, nur f&uuml;r die warning-Liste.
  39842. </li>
  39843. <li>
  39844. <code>warningReturn {&lt;perl code&gt;}</code><br>
  39845. Wie errorReturn, nur f&uuml;r die warning-Liste.
  39846. </li>
  39847. <li>
  39848. <code>whitelist {&lt;perl code&gt;}</code><br>
  39849. Durch Leerzeichen getrennte Liste von devspecs die erlaubt sind
  39850. werden.<br>
  39851. Wenn das Attribut gesetzt wird werden alle Geräte die nicht durch die
  39852. devspecs definiert sind von beiden Listen gelĂśscht.
  39853. </li>
  39854. <li>
  39855. <a href="#readingFnAttributes">
  39856. <u><code>readingFnAttributes</code></u>
  39857. </a>
  39858. </li>
  39859. </ul>
  39860. <br>
  39861. <a name="monitoringexamples"></a>
  39862. <b>Beispiele</b>
  39863. <ul>
  39864. <a href="https://wiki.fhem.de/wiki/Import_von_Code_Snippets">
  39865. <u>
  39866. Die folgenden beispiel Codes k&ouml;nnen per "Raw defnition"
  39867. importiert werden.
  39868. </u>
  39869. </a>
  39870. <br><br>
  39871. <li>
  39872. <b>
  39873. Globale, flexible Fenster-/T&uuml;r-Offen-Meldungen
  39874. <a href="https://forum.fhem.de/index.php/topic,36504">
  39875. <u>(&auml;hnlich wie im Forum beschrieben)</u>
  39876. </a>
  39877. </b>
  39878. <br>
  39879. <pre>defmod Fenster_monitoring monitoring .*:(open|tilted) .*:closed
  39880. attr Fenster_monitoring errorReturn {return unless(@errors);;\
  39881. $_ = AttrVal($_, "alias", $_) foreach(@errors);;\
  39882. return("Das Fenster \"$errors[0]\" ist schon l&auml;nger ge&ouml;ffnet.") if(int(@errors) == 1);;\
  39883. @errors = sort {lc($a) cmp lc($b)} @errors;;\
  39884. return(join("\n - ", "Die folgenden ".@errors." Fenster sind schon l&auml;nger ge&ouml;ffnet:", @errors))\
  39885. }
  39886. attr Fenster_monitoring errorWait {AttrVal($name, "winOpenTimer", 60*10)}
  39887. attr Fenster_monitoring warningReturn {return unless(@warnings);;\
  39888. $_ = AttrVal($_, "alias", $_) foreach(@warnings);;\
  39889. return("Das Fenster \"$warnings[0]\" ist seit kurzem ge&ouml;ffnet.") if(int(@warnings) == 1);;\
  39890. @warnings = sort {lc($a) cmp lc($b)} @warnings;;\
  39891. return(join("\n - ", "Die folgenden ".@warnings." Fenster sind seit kurzem ge&ouml;ffnet:", @warnings))\
  39892. }</pre>
  39893. Sobald ein Ger&auml;t ein "open" oder "tilded" Event ausl&ouml;st wird
  39894. das Ger&auml;t auf die warning-Liste gesetzt und es wird ein Timer
  39895. gestartet nach dessen Ablauf das Ger&auml;t von der warning- auf die
  39896. error-Liste verschoben wird. Die Wartezeit kann f&uuml;r jedes
  39897. Ger&auml;t per userattr "winOpenTimer" festgelegt werden. Der
  39898. Vorgabewert sind 10 Minuten.<br>
  39899. Sobald ein Ger&auml;t ein "closed" Event ausl&ouml;st wird das
  39900. Ger&auml;t von beiden Listen gel&ouml;scht und noch laufende Timer
  39901. werden gestoppt.
  39902. </li>
  39903. <br>
  39904. <li>
  39905. <b>Batterie&uuml;berwachung</b><br>
  39906. <pre>defmod Batterie_monitoring monitoring .*:battery:.low .*:battery:.ok
  39907. attr Batterie_monitoring errorReturn {return unless(@errors);;\
  39908. $_ = AttrVal($_, "alias", $_) foreach(@errors);;\
  39909. return("Bei dem Ger&auml;t \"$errors[0]\" muss die Batterie gewechselt werden.") if(int(@errors) == 1);;\
  39910. @errors = sort {lc($a) cmp lc($b)} @errors;;\
  39911. return(join("\n - ", "Die folgenden ".@errors." Ger&auml;ten muss die Batterie gewechselt werden:", @errors))\
  39912. }
  39913. attr Batterie_monitoring errorWait 60*60*24*14
  39914. attr Batterie_monitoring warningReturn {return unless(@warnings);;\
  39915. $_ = AttrVal($_, "alias", $_) foreach(@warnings);;\
  39916. return("Bei dem Ger&auml;t \"$warnings[0]\" muss die Batterie demn&auml;chst gewechselt werden.") if(int(@warnings) == 1);;\
  39917. @warnings = sort {lc($a) cmp lc($b)} @warnings;;\
  39918. return(join("\n - ", "Die folgenden ".@warnings." Ger&auml;ten muss die Batterie demn&auml;chst gewechselt werden:", @warnings))\
  39919. }</pre>
  39920. Sobald ein Ger&auml;t ein "battery: low" Event ausl&ouml;st wird das
  39921. Ger&auml;t auf die warning-Liste gesetzt und es wird ein Timer
  39922. gestartet nach dessen Ablauf das Ger&auml;t von der warning- auf die
  39923. error-Liste verschoben wird. Die Wartezeit ist auf 14 Tage
  39924. eingestellt.<br>
  39925. Sobald ein Ger&auml;t ein "battery: ok" Event ausl&ouml;st wird das
  39926. Ger&auml;t von beiden Listen gel&ouml;scht und noch laufende Timer
  39927. werden gestoppt.
  39928. </li>
  39929. <br>
  39930. <li>
  39931. <b>Activity Monitor</b><br>
  39932. <pre>defmod Activity_monitoring monitoring .*:.*
  39933. attr Activity_monitoring errorReturn {return unless(@errors);;\
  39934. $_ = AttrVal($_, "alias", $_) foreach(@errors);;\
  39935. return("Das Ger&auml;t \"$errors[0]\" hat sich seit mehr als 24 Stunden nicht mehr gemeldet.") if(int(@errors) == 1);;\
  39936. @errors = sort {lc($a) cmp lc($b)} @errors;;\
  39937. return(join("\n - ", "Die folgenden ".@errors." Ger&auml;ten haben sich seit mehr als 24 Stunden nicht mehr gemeldet:", @errors))\
  39938. }
  39939. attr Activity_monitoring errorWait 60*60*24
  39940. attr Activity_monitoring warningReturn {return unless(@warnings);;\
  39941. $_ = AttrVal($_, "alias", $_) foreach(@warnings);;\
  39942. return("Das Ger&auml;t \"$warnings[0]\" hat sich seit mehr als 12 Stunden nicht mehr gemeldet.") if(int(@warnings) == 1);;\
  39943. @warnings = sort {lc($a) cmp lc($b)} @warnings;;\
  39944. return(join("\n - ", "Die folgenden ".@warnings." Ger&auml;ten haben sich seit mehr als 12 Stunden nicht mehr gemeldet:", @warnings))\
  39945. }
  39946. attr Activity_monitoring warningWait 60*60*12</pre>
  39947. Ger&auml;te werden erst &uuml;berwacht, wenn sie mindestens ein Event
  39948. ausgel&ouml;st haben. Sollte das Ger&auml;t in 12 Stunden kein weiterer
  39949. Event ausl&ouml;sen, wird es auf die warning-Liste gesetzt. Sollte das
  39950. Ger&auml;t in 24 Stunden kein weiteres Event ausl&ouml;sen, wird es von
  39951. der warning- auf die error-Liste verschoben.<br>
  39952. <br>
  39953. Hinweis: Es ist empfehlenswert das whitelist Attribut zu verwenden.
  39954. </li>
  39955. <br>
  39956. <li>
  39957. <b>
  39958. regelm&auml;&szlig;ige Wartungsarbeiten
  39959. (z.B. Tischwasserfilter wechseln)
  39960. </b>
  39961. <br>
  39962. <pre>defmod Wasserfilter_monitoring monitoring Wasserfilter_DashButton:.*:.short
  39963. attr Wasserfilter_monitoring errorReturn {return unless(@errors);;\
  39964. return "Der Wasserfilter muss gewechselt werden.";;\
  39965. }
  39966. attr Wasserfilter_monitoring errorWait 60*60*24*30
  39967. attr Wasserfilter_monitoring warningReturn {return unless(@warnings);;\
  39968. return "Der Wasserfilter muss demn&auml;chst gewechselt werden.";;\
  39969. }
  39970. attr Wasserfilter_monitoring warningWait 60*60*24*25</pre>
  39971. Hierbei wird ein <a href="#dash_dhcp"><u>DashButton</u></a> genutzt um
  39972. FHEM mitzuteilen, dass der Wasserfilter gewechselt wurde.<br>
  39973. Nach 30 Tagen wird der DashButton auf die error-Liste gesetzt.
  39974. </li>
  39975. <br>
  39976. <li>
  39977. <b>
  39978. regelm&auml;&szlig;ige Wartungsarbeiten
  39979. (z.B. Räume putzen)
  39980. </b>
  39981. <br>
  39982. <pre>defmod putzen_DashButton dash_dhcp
  39983. attr putzen_DashButton allowed AC:63:BE:2E:19:AF,AC:63:BE:49:23:48,AC:63:BE:49:5E:FD,50:F5:DA:93:2B:EE,AC:63:BE:B2:07:78
  39984. attr putzen_DashButton devAlias ac-63-be-2e-19-af:Badezimmer\
  39985. ac-63-be-49-23-48:KĂźche\
  39986. ac-63-be-49-5e-fd:Schlafzimmer\
  39987. 50-f5-da-93-2b-ee:Arbeitszimmer\
  39988. ac-63-be-b2-07-78:Wohnzimmer
  39989. attr putzen_DashButton event-min-interval .*:5
  39990. attr putzen_DashButton port 6767
  39991. attr putzen_DashButton userReadings state {return (split(":", @{$hash->{CHANGED}}[0]))[0];;}
  39992. attr putzen_DashButton widgetOverride allowed:textField-long devAlias:textField-long
  39993. defmod putzen_monitoring monitoring putzen_DashButton:.*:.short
  39994. attr putzen_monitoring errorFuncAdd {$event =~ m/^(.+):/;;\
  39995. $name = $1;;\
  39996. return 1;;\
  39997. }
  39998. attr putzen_monitoring errorReturn {return unless(@errors);;\
  39999. return("Der Raum \"$errors[0]\" muss wieder geputzt werden.") if(int(@errors) == 1);;\
  40000. return(join("\n - ", "Die folgenden Räume mßssen wieder geputzt werden:", @errors))\
  40001. }
  40002. attr putzen_monitoring errorWait 60*60*24*7</pre>
  40003. Hierbei werden mehrere <a href="#dash_dhcp"><u>DashButton</u></a>
  40004. genutzt um FHEM mitzuteilen, dass die Räume geputzt wurden.<br>
  40005. Nach 7 Tagen wird der Raum auf die error-Liste gesetzt.<br>
  40006. Der Raum Name ist hierbei jedoch nicht der Geräte-Name, sondern der
  40007. Readings-Name und wird in dem <code>errorFuncAdd</code>-Attribut
  40008. geändert.
  40009. </li>
  40010. <br>
  40011. <li>
  40012. <b>
  40013. Betriebsstunden abh&auml;ngige Wartungsarbeiten
  40014. (z.B. Beamer Filter reinigen)
  40015. </b>
  40016. <br>
  40017. <pre>defmod BeamerFilter_monitoring monitoring Beamer_HourCounter:pulseTimeOverall BeamerFilter_DashButton:.*:.short
  40018. attr BeamerFilter_monitoring userattr errorInterval
  40019. attr BeamerFilter_monitoring errorFuncAdd {return 1\
  40020. if(ReadingsVal($name, "pulseTimeOverall", 0) >= \
  40021. ReadingsVal($name, "pulseTimeService", 0)\
  40022. + (AttrVal($SELF, "errorInterval", 0))\
  40023. && $addMatch\
  40024. );;\
  40025. return;;\
  40026. }
  40027. attr BeamerFilter_monitoring errorFuncRemove {return unless($removeMatch);;\
  40028. $name = "Beamer_HourCounter";;\
  40029. fhem(\
  40030. "setreading $name pulseTimeService "\
  40031. .ReadingsVal($name, "pulseTimeOverall", 0)\
  40032. );;\
  40033. return 1;;\
  40034. }
  40035. attr BeamerFilter_monitoring errorInterval 60*60*200
  40036. attr BeamerFilter_monitoring errorReturn {return unless(@errors);;\
  40037. return "Der Filter vom Beamer muss gereinigt werden.";;\
  40038. }
  40039. attr BeamerFilter_monitoring warningFuncAdd {return}
  40040. attr BeamerFilter_monitoring warningFuncRemove {return}</pre>
  40041. Hierbei wird ein <a href="#HourCounter"><u>HourCounter</u></a> genutzt
  40042. um die Betriebsstunden eine Beamer zu erfassen und ein
  40043. <a href="#dash_dhcp"><u>DashButton</u></a> um FHEM mitzuteilen, dass der
  40044. Filter gereinigt wurde.<br>
  40045. Wurde der Filter l&auml;nger als 200 Betriebsstunden nicht gereinigt
  40046. wird das Ger&auml;t auf die error-Liste gesetzt.<br>
  40047. Wurde die Reinigung mit dem DashButton quittiert wird das Ger&auml;t
  40048. von der error-Liste entfernt und der aktuelle Betriebsstunden-Stand in
  40049. dem HourCounter Ger&auml;t gespeichert.
  40050. </li>
  40051. </ul>
  40052. </ul>
  40053. </div>
  40054. <p> <p>
  40055. <a name="msgConfig" id="msgConfig"></a>
  40056. </p>
  40057. <h3>
  40058. msgConfig
  40059. </h3>
  40060. <div class='langLinks'>[<a href='commandref.html#msgConfig'>EN</a> DE]</div>
  40061. <ul>
  40062. Stellt globale Einstellungen und Tools f&uuml;r das FHEM Kommando <a href="#MSG">msg</a> bereit.<br>
  40063. Ein Device mit dem Namen globalMsg wird automatisch bei der ersten Benutzung des msg Kommandos angelegt, sofern kein msgConfig Device gefunden wurde.<br>
  40064. Der Device Name kann anschlie&szlig;end beliebig umbenannt und umkonfiguriert werden.<br>
  40065. <br>
  40066. <a name="msgConfigdefine" id="msgConfigdefine"></a> <b>Define</b>
  40067. <ul>
  40068. <code>define &lt;name&gt; msgConfig</code><br>
  40069. </ul><br>
  40070. <br>
  40071. <a name="msgConfigset" id="msgConfigset"></a> <b>Set</b>
  40072. <ul>
  40073. <ul>
  40074. <li>
  40075. <b>addLocation</b> &nbsp;&nbsp;<Name der Lokation>&nbsp;&nbsp;<br>
  40076. Erstellt auf einfache Weise ein Dummy Device basierend auf dem &uuml;bergebenen Lokationsnamen. Es wird for die lokations-basierte Verwendung mit dem msg-Kommando vorkonfiguriert. Das Dummy Device wird automatisch zum Attribut msgLocationDevs hinzugef&uuml;gt. Anschlie&szlig;end ist eine weitere Konfiguration &uuml;ber die Attribute msgContact* oder msgRecipient* notwendig, die auf entsprechende Gateway Devices verweisen, die an dieser Lokation stehen.
  40077. </li>
  40078. </ul>
  40079. </ul>
  40080. </ul>
  40081. <p><a name="msgDialog"></a>
  40082. <h3>msgDialog</h3>
  40083. <div class='langLinks'>[<a href='commandref.html#msgDialog'>EN</a> DE]</div>
  40084. <ul>
  40085. Mit msgDialog k&ouml;nnen Dialoge f&uuml;r Sofortnachrichten &uuml;ber
  40086. TelegramBot, Jabber und yowsup (WhatsApp) definiert werden.<br>
  40087. Die Kommunikation erfolgt &uuml;ber den msg Befehl. Daher muss ein Ger&auml;t
  40088. vom Typ msgConfig zuerst definiert werden.<br>
  40089. F&uuml;r jeden Dialog kann festgelegt werden welche Person dazu berechtigt
  40090. ist. Dazu sind Ger&auml;te vom Typ ROOMMATE oder GUEST mit definiertem
  40091. msgContactPush Attribut erforderlich. Es ist darauf zu achten, dass das
  40092. Reading fhemMsgRcvPush ein Event erzeugt.<br>
  40093. <br>
  40094. Vorraussetzungen:
  40095. <ul>
  40096. Das Perl-Modul "JSON" wird ben&ouml;tigt.<br>
  40097. Unter Debian (basierten) System, kann dies mittels
  40098. <code>"apt-get install libjson-perl"</code> installiert werden.
  40099. </ul>
  40100. <br>
  40101. <a name="msgDialogdefine"></a>
  40102. <b>Define</b>
  40103. <ul>
  40104. <code>define &lt;name&gt; msgDialog &lt;JSON&gt;</code><br>
  40105. Aufgrunder komplexit&auml;t ist es am einfachsten erst einen leeren Dialog
  40106. zu definieren.
  40107. <code>define &lt;name&gt; msgDialog {}</code>
  40108. Anschlie�end die DEF dann in der Detail-Ansicht bearbeiten.
  40109. <PRE>
  40110. {
  40111. "&lt;TRIGGER&gt;": {
  40112. "match": "&lt;regex&gt;",
  40113. "setOnly": (true|false),
  40114. "commands": "(fhem command|{perl code})",
  40115. "message": [
  40116. "{perl code}",
  40117. "text"
  40118. ],
  40119. "&lt;NEXT TRIGGER 1&gt;": {
  40120. ...
  40121. },
  40122. "&lt;NEXT TRIGGER 2&gt;": {
  40123. ...
  40124. }
  40125. }
  40126. }
  40127. </PRE>
  40128. <li>
  40129. <code>TRIGGER</code><br>
  40130. Kann ein beliebiger Text sein. Es wird gepr&uuml;ft ob die eingehende
  40131. Nachricht damit &uuml;bereinstimmt. Falls ja, wird der Dialog an dieser
  40132. Stelle fortgesetzt.
  40133. </li>
  40134. <br>
  40135. <li>
  40136. <code>match</code><br>
  40137. Wenn nicht nur genau eine Nachricht zugelassen werden soll, kann noch
  40138. eine regex angegeben werden. Die regex muss auf die gesamte eingehnde
  40139. Nachricht zutreffen.
  40140. </li>
  40141. <br>
  40142. <li>
  40143. <code>setOnly</code><br>
  40144. Kann optional auf true oder false gestellt werden. In beiden
  40145. f&auml;llen wird der TRIGGER dann nicht bei "get &lt;name&gt; trigger"
  40146. zur&uuml;ck gegeben.<br>
  40147. Wenn setOnly auf true gestellt wird kann der Dialog an dieser Stelle
  40148. nicht durch eingehnde Nachrichten ausgel&ouml;st werden, sondern nur
  40149. &uuml;ber "set &lt;name&gt; say TRIGGER".<br>
  40150. Dies kann dazu genutzt werden um einen Dialog von FHEM zu aus zu
  40151. initieren.
  40152. </li>
  40153. <br>
  40154. <li>
  40155. <code>commands</code><br>
  40156. Kann einen einzelnen oder mehrere Befehle enthalten:
  40157. <PRE>
  40158. "commands": "single command"
  40159. "commands": [
  40160. "command 1",
  40161. "command 2",
  40162. "{perl command}"
  40163. ]
  40164. </PRE>
  40165. </li>
  40166. <li>
  40167. <code>message</code><br>
  40168. Kann einen einzelnen oder mehrere Textte enthalten die mit einen
  40169. Zeilenumbruch verbunden werden:
  40170. <PRE>
  40171. "message": "text"
  40172. "message": [
  40173. "text 1",
  40174. "text 2",
  40175. "{return from perl command}"
  40176. ]
  40177. </PRE>
  40178. </li>
  40179. Bei mehrstufigen Dialogen wird diese Struktur ineinander verschachtelt
  40180. angegeben.<br>
  40181. <br>
  40182. Es werden Variablen und unter dem Attribut evalSpecials definierte
  40183. Platzhalter ausgewertet.<br>
  40184. Variablen:
  40185. <li>
  40186. <code>$SELF</code><br>
  40187. Eigenname des msgDialog
  40188. </li>
  40189. <br>
  40190. <li>
  40191. <code>$message</code><br>
  40192. eingegangene Nachricht
  40193. </li>
  40194. <br>
  40195. <li>
  40196. <code>$recipient</code><br>
  40197. Name des Dialogpartners
  40198. </li>
  40199. </ul>
  40200. <br>
  40201. <a name="msgDialogset"></a>
  40202. <b>Set</b>
  40203. <ul>
  40204. <li>
  40205. <code>reset</code><br>
  40206. Setzt den Dialog f&uuml;r alle Benutzer zur&uuml;ck.
  40207. </li>
  40208. <br>
  40209. <li>
  40210. <code>
  40211. say [@&lt;recipient1&gt;[,&lt;recipient2&gt;,...]]
  40212. &lt;TRIGGER&gt;[|&lt;NEXT TRIGGER&gt;|...]
  40213. </code><br>
  40214. Der Dialog wird f&uuml;r alle angegeben Emp&auml;nger an der angegeben
  40215. Stelle fortgef&uuml;hrt.<br>
  40216. Sind keine Empf&auml;nger angegeben wird der Dialog f&uuml;r alle unter
  40217. dem Attribut allowed angegebenen Empf&auml;nger fortgef&uuml;hrt.
  40218. </li>
  40219. <br>
  40220. <li>
  40221. <code>updateAllowed</code><br>
  40222. Aktualisiert die Auswahl f&uuml;r das Attribut allowed.
  40223. </li>
  40224. </ul>
  40225. <br>
  40226. <a name="msgDialogget"></a>
  40227. <b>Get</b>
  40228. <ul>
  40229. <li>
  40230. <code>trigger</code><br>
  40231. Listet alle TRIGGER der ersten Ebene auf bei denen nicht setOnly
  40232. angegeben ist.
  40233. </li>
  40234. </ul>
  40235. <br>
  40236. <a name="msgDialogattr"></a>
  40237. <b>Attribute</b>
  40238. <ul>
  40239. <li>
  40240. <code>allowed</code><br>
  40241. Liste mit allen RESIDENTS und ROOMMATE die f&uuml;r diesen Dialog
  40242. berechtigt sind.
  40243. </li>
  40244. <br>
  40245. <li>
  40246. <code>disable 1</code><br>
  40247. Dialog ist deaktiviert.
  40248. </li>
  40249. <br>
  40250. <li>
  40251. <a href="#disabledForIntervals">
  40252. <u><code>disabledForIntervals HH:MM-HH:MM HH:MM-HH-MM ...</code></u>
  40253. </a>
  40254. </li>
  40255. <br>
  40256. <li>
  40257. <code>evalSpecials key1=value1 key2=value2 ...</code><br>
  40258. Leerzeichen getrennte Liste von Name=Wert Paaren.<br>
  40259. Wert kann Leerzeichen enthalten, falls es in "" oder {} eingeschlossen
  40260. ist.<br>
  40261. Wert wird als
  40262. perl-Ausdruck ausgewertet, falls es in {} eingeschlossen ist.<br>
  40263. In der DEF werden %Name% Zeichenketten durch den zugeh&ouml;rigen Wert
  40264. ersetzt.<br>
  40265. Dieses Attribut ist als "msgDialog_evalSpecials" im msgConfig Gerät
  40266. vorhanden.<br>
  40267. Wenn der selbe Name im msgConfig und msgDialog definiert wurde, wird der
  40268. Wert aus msgDialog verwendet.
  40269. </li>
  40270. <br>
  40271. <li>
  40272. <code>msgCommand &lt;command&gt;</code><br>
  40273. Befehl der zum Versenden einer Nachricht verwendet wird.<br>
  40274. Die Vorgabe ist
  40275. <code>"msg push \@$recipients $message"</code><br>
  40276. Dieses Attribut ist als "msgDialog_msgCommand" im msgConfig Gerät
  40277. vorhanden.
  40278. </li>
  40279. </ul>
  40280. <br>
  40281. <a name="msgDialogreadings"></a>
  40282. <b>Reading</b>
  40283. <ul>
  40284. <li>
  40285. <code>$recipient_history</code><br>
  40286. Durch | getrennte Liste von TRIGGERN um den aktuellen Zustand des Dialogs
  40287. zu sichern.<br>
  40288. F&uuml;r jeden Dialogpartner wird ein Readings angelegt. Wenn der Dialog
  40289. beendet ist wird das Reading zur&uuml;ckgesetzt.
  40290. </li>
  40291. </ul>
  40292. <br>
  40293. <a name="msgDialogTelegramBot"></a>
  40294. <b>Hinweise zur Benutzung mit Telegram:</b>
  40295. <ul>
  40296. Es kann notwendig sein, dass im TelegramBot das Attribut "utf8specials" auf
  40297. 1 gesetzt wird, damit Nachrichten mit Umlauten gesendert werden.<br>
  40298. <br>
  40299. Bei dem msg Befehl kann der TelegramBot_MTYPE angegeben werden. Die Vorgabe
  40300. ist message. Durch den Wert queryInline lässt sich ein inline Keyboard
  40301. erzeugen.
  40302. </ul>
  40303. <br>
  40304. <a name="msgDialogJabber"></a>
  40305. <b>Hinweise zur Benutzung mit Jabber:</b>
  40306. <ul>
  40307. Bei dem msg Befehl kann der Jabber_MTYPE angegeben werden. Die Vorgabe ist
  40308. leer. Durch den Wert otr lässt sich eine OTR Nachricht versenden.
  40309. </ul>
  40310. <br>
  40311. <a name="msgDialogyowsub"></a>
  40312. <b>Hinweise zur Benutzung mit yowsub (WhatsApp):</b>
  40313. <ul>
  40314. Bisher noch keine Erfahungen.
  40315. </ul>
  40316. <br>
  40317. <a name="msgDialogexamples"></a>
  40318. <b>Beispiele:</b>
  40319. <ul>
  40320. <a href="https://wiki.fhem.de/wiki/Import_von_Code_Snippets">
  40321. <u>
  40322. Die folgenden beispiel Codes k&ouml;nnen nur per "Raw defnition"
  40323. importiert werden.
  40324. </u>
  40325. </a>
  40326. <br>
  40327. <br>
  40328. Alle Beispiele sind f&uuml;r die Kommunikation &uuml;ber den TelegramBot
  40329. ausgelegt. Bei der Verwendung von Jabber oder yowsup m&uuml;ssen diese
  40330. gegebenenfalls angepasst werden.<br>
  40331. Es wird davon ausgegangen, dass im msgConfig Ger&auml;t das evalSpecials
  40332. "me" mit einem Namen gepflegt ist, &uuml;ber welchen der Bot angesprochen
  40333. wird.<br>
  40334. <br>
  40335. <b>Meta Dialog zur auflistung aller Berechtigten Dialoge:</b>
  40336. <ul>
  40337. <PRE>
  40338. defmod meta_Dialog msgDialog {\
  40339. "%me%": {\
  40340. "match": "\/?(start|%me%)",\
  40341. "commands": "deletereading TYPE=msgDialog $recipient_history",\
  40342. "message": [\
  40343. "{return('(' . join(') (', sort(split('\n', fhem('get TYPE=msgDialog:FILTER=NAME!=$SELF:FILTER=allowed=.*($recipient|everyone).* trigger'))), 'abbrechen') . ') ')}",\
  40344. "Ich kann folgendes f&uuml;r dich tun:"\
  40345. ]\
  40346. },\
  40347. "zur&uuml;ck": {\
  40348. "commands": "set $recipient_history=.+|.+ say @$recipient {(ReadingsVal($DEV, '$recipient_history', '') =~ m/(.+)\\|.+$/;; return $2 ? $2 : $1;;)}"\
  40349. },\
  40350. "abbrechen": {\
  40351. "match": "\/?abbrechen",\
  40352. "commands": "deletereading TYPE=msgDialog $recipient_history",\
  40353. "message": [\
  40354. "TelegramBot_MTYPE=queryInline (%me%) ",\
  40355. "Dialog abgebrochen."\
  40356. ]\
  40357. },\
  40358. "beenden": {\
  40359. "match": "\/?beenden",\
  40360. "commands": "deletereading TYPE=msgDialog $recipient_history",\
  40361. "message": [\
  40362. "TelegramBot_MTYPE=queryInline (%me%) ",\
  40363. "Dialog beendet."\
  40364. ]\
  40365. }\
  40366. }
  40367. attr meta_Dialog allowed everyone
  40368. </PRE>
  40369. </ul>
  40370. <b>Abfrage der aktuellen Krafstoffpreise</b>
  40371. <ul>
  40372. <PRE>
  40373. defmod Tankstelle_Dialog msgDialog {\
  40374. "Tankstelle": {\
  40375. "message": [\
  40376. "TelegramBot_MTYPE=queryInline (%me%) ",\
  40377. "Die Krafstoffpreise der betragen aktuell folgende Werte:",\
  40378. "",\
  40379. "AIVA",\
  40380. "",\
  40381. "[%AIVA%:Diesel] �/l Diesel",\
  40382. "[%AIVA%:Super] �/l Super",\
  40383. "[%AIVA%:E10] �/l E10",\
  40384. "[%AIVA%:Autogas] �/l Autogas"\
  40385. ]\
  40386. }\
  40387. }
  40388. attr Tankstelle_Dialog evalSpecials AIVA=AIVA_petrolStation
  40389. </PRE>
  40390. </ul>
  40391. <b>Programmierung der Waschmaschine</b>
  40392. <ul>
  40393. <PRE>
  40394. defmod Waschmaschine_Dialog msgDialog { "Waschmaschine": {\
  40395. "message": [\
  40396. "{return('(Zeitprogramm stoppen) ') if(ReadingsVal('%controlUnit%', 'controlMode', '') eq 'auto')}",\
  40397. "{return('(programmieren) ') if(ReadingsVal('%actor%', 'state', '') ne 'on')}",\
  40398. "{return('(einschalten) ') if(ReadingsVal('%actor%', 'state', '') ne 'on')}",\
  40399. "(Verlaufsdiagramm) ",\
  40400. "(abbrechen) ",\
  40401. "{return('Waschmaschine: ' . (ReadingsVal('%actor%', 'state', '') eq 'on' ? 'eingeschaltet' : 'ausgeschaltet'))}",\
  40402. "{return('Modus: ' . (ReadingsVal('%controlUnit%', 'controlMode', '') eq 'auto' ? 'Automatik' : 'Manuell (' . ReadingsVal('%controlUnit%', 'time', '') . ')'))}"\
  40403. ],\
  40404. "Zeitprogramm stoppen": {\
  40405. "commands": "set %controlUnit% controlMode manual",\
  40406. "message": [\
  40407. "TelegramBot_MTYPE=queryInline (%me%) ",\
  40408. "Das Zeitprogramm wurde gestoppt."\
  40409. ]\
  40410. },\
  40411. "programmieren": {\
  40412. "message": [\
  40413. "(best&auml;tigen|zur&uuml;ck|abbrechen) ",\
  40414. "( 00:00 | 00:15 | 00:30 | 00:45 ) ",\
  40415. "( 01:00 | 01:15 | 01:30 | 01:45 ) ",\
  40416. "( 02:00 | 02:15 | 02:30 | 02:45 ) ",\
  40417. "( 03:00 | 03:15 | 03:30 | 03:45 ) ",\
  40418. "( 04:00 | 04:15 | 04:30 | 04:45 ) ",\
  40419. "( 05:00 | 05:15 | 05:30 | 05:45 ) ",\
  40420. "( 06:00 | 06:15 | 06:30 | 06:45 ) ",\
  40421. "( 07:00 | 07:15 | 07:30 | 07:45 ) ",\
  40422. "( 08:00 | 08:15 | 08:30 | 08:45 ) ",\
  40423. "( 09:00 | 09:15 | 09:30 | 09:45 ) ",\
  40424. "( 10:00 | 10:15 | 10:30 | 10:45 ) ",\
  40425. "( 11:00 | 11:15 | 11:30 | 11:45 ) ",\
  40426. "( 12:00 | 12:15 | 12:30 | 12:45 ) ",\
  40427. "( 13:00 | 13:15 | 13:30 | 13:45 ) ",\
  40428. "( 14:00 | 14:15 | 14:30 | 14:45 ) ",\
  40429. "( 15:00 | 15:15 | 15:30 | 15:45 ) ",\
  40430. "( 16:00 | 16:15 | 16:30 | 16:45 ) ",\
  40431. "( 17:00 | 17:15 | 17:30 | 17:45 ) ",\
  40432. "( 18:00 | 18:15 | 18:30 | 18:45 ) ",\
  40433. "( 19:00 | 19:15 | 19:30 | 19:45 ) ",\
  40434. "( 20:00 | 20:15 | 20:30 | 20:45 ) ",\
  40435. "( 21:00 | 21:15 | 21:30 | 21:45 ) ",\
  40436. "( 22:00 | 22:15 | 22:30 | 22:45 ) ",\
  40437. "( 23:00 | 23:15 | 23:30 | 23:45 ) ",\
  40438. "Wann soll die W&auml;sche fertig sein?",\
  40439. "Bitte Uhrzeit in HH:MM angeben.",\
  40440. "Aktuell ist [%controlUnit%:time] Uhr eingestellt."\
  40441. ],\
  40442. "Uhrzeit": {\
  40443. "match": " ?([0-1][0-9]|2[0-3]):[0-5][0-9] ?",\
  40444. "commands": [\
  40445. "set %controlUnit% time $message",\
  40446. "set $SELF say @$recipient Waschmaschine|programmieren|best&auml;tigen"\
  40447. ]\
  40448. },\
  40449. "best&auml;tigen": {\
  40450. "commands": "set %controlUnit% controlMode auto",\
  40451. "message": [\
  40452. "TelegramBot_MTYPE=queryInline (%me%) ",\
  40453. "Das Zeitprogramm wurde eingestellt.",\
  40454. "Die W&auml;sche wird voraussichtlich um [%controlUnit%:time] Uhr fertig sein.",\
  40455. "Bitte die Waschmaschine vorbereiten."\
  40456. ]\
  40457. }\
  40458. },\
  40459. "einschalten": {\
  40460. "commands": [\
  40461. "set %controlUnit% controlMode manual",\
  40462. "set %actor% on"\
  40463. ]\
  40464. },\
  40465. "Verlaufsdiagramm": {\
  40466. "commands": "set %TelegramBot% cmdSend {plotAsPng('%plot%')}",\
  40467. "message": "TelegramBot_MTYPE=queryInline (%me%) $message"\
  40468. }\
  40469. },\
  40470. "auto": {\
  40471. "setOnly": true,\
  40472. "commands": [\
  40473. "set %actor% on",\
  40474. "set %controlUnit% controlMode manual"\
  40475. ],\
  40476. "message": [\
  40477. "TelegramBot_MTYPE=queryInline (%me%) ",\
  40478. "Die Wachmaschine wurde automatisch eingeschaltet."\
  40479. ]\
  40480. },\
  40481. "manual": {\
  40482. "setOnly": true,\
  40483. "message": [\
  40484. "TelegramBot_MTYPE=queryInline (%me%) ",\
  40485. "Die Wachmaschine wurde manuell eingeschaltet."\
  40486. ]\
  40487. },\
  40488. "done": {\
  40489. "setOnly": true,\
  40490. "commands": "set %actor% off",\
  40491. "message": [\
  40492. "TelegramBot_MTYPE=queryInline (%me%) ",\
  40493. "Die Wachmaschine ist fertig."\
  40494. ]\
  40495. }\
  40496. }
  40497. attr Waschmaschine_Dialog evalSpecials actor=HM_2C10D8_Sw\
  40498. controlUnit=Waschkeller_washer_controlUnit\
  40499. plot=Waschkeller_washer_SVG
  40500. </PRE>
  40501. </ul>
  40502. </ul>
  40503. </ul>
  40504. <p><a name="netatmo"></a>
  40505. <h3>netatmo</h3>
  40506. <ul>
  40507. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40508. hier: <a href='commandref.html#netatmo'>netatmo</a><br/>
  40509. </ul>
  40510. <a name="notice"></a>
  40511. <h3>notice</h3>
  40512. <ul>
  40513. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40514. hier: <a href='commandref.html#notice'>notice</a><br/>
  40515. </ul>
  40516. <a name="notify"></a>
  40517. <h3>notify</h3>
  40518. <div class='langLinks'>[<a href='commandref.html#notify'>EN</a> DE]</div>
  40519. <ul>
  40520. <br>
  40521. <a name="notifydefine"></a>
  40522. <b>Define</b>
  40523. <ul>
  40524. <code>define &lt;name&gt; notify &lt;Suchmuster&gt; &lt;Anweisung&gt;</code>
  40525. <br><br>
  40526. F&uuml;hrt eine oder mehrere Anweisungen aus, wenn ein Event generiert
  40527. wurde, was dem &lt;Suchmuster&gt; (Ger&auml;tename oder
  40528. Ger&auml;tename:Event) entspricht.
  40529. Die Anweisung ist einer der FHEM <a href="#command">Befehlstypen</a>.
  40530. Zum Test dient das <a href="#trigger">trigger</a>-Kommando.
  40531. <br><br>
  40532. Beispiele:
  40533. <ul>
  40534. <code>define b3lampV1 notify btn3 set lamp $EVENT</code><br>
  40535. <code>define b3lampV2 notify btn3 { fhem "set lamp $EVENT" }</code><br>
  40536. <code>define b3lampV3 notify btn3 "/usr/local/bin/setlamp
  40537. "$EVENT""</code><br>
  40538. <code>define b3lampV3 notify btn3 set lamp1 $EVENT;;set lamp2
  40539. $EVENT</code><br>
  40540. <code>define wzMessLg notify wz:measured.* "/usr/local/bin/logfht $NAME
  40541. "$EVENT""</code><br>
  40542. <code>define LogUndef notify global:UNDEFINED.* "send-me-mail.sh
  40543. "$EVENT""</code><br>
  40544. </ul>
  40545. <br>
  40546. Hinweise:
  40547. <ul>
  40548. <li><code>&lt;Suchmuster&gt;</code> ist entweder der Name des
  40549. ausl&ouml;senden ("triggernden") Ger&auml;tes oder die Kombination aus
  40550. Ger&auml;t und ausl&ouml;sendem Ereignis (Event)
  40551. <code>Ger&auml;tename:Event</code>.</li>
  40552. <li>Das <code>&lt;Suchmuster&gt;</code> muss exakt (!)
  40553. entweder dem Ger&auml;tenamen entsprechen oder der Zusammenf&uuml;gung
  40554. aus Ger&auml;tename:Event. Events lassen sich mit "inform" in Telnet
  40555. oder durch Beobachtung des "Event-Monitors" in FHEMWEB ermitteln.</li>
  40556. <li>In der Anweisung von Notify kann das ausl&ouml;sende Ereignis (Event)
  40557. genutzt werden:
  40558. <ul>
  40559. <li>Die Anweisung $EVENT wird das komplette Ereignis (Event)
  40560. beinhalten, z.B. <code>measured-temp: 21.7 (Celsius)</code></li>
  40561. <li>$EVTPART0,$EVTPART1,$EVTPART2,etc enthalten die durch Leerzeichen
  40562. getrennten Teile des Events der Reihe nach (im Beispiel also
  40563. <code>$EVTPART0="measured-temp:", $EVTPART1="21.7",
  40564. $EVTPART2="(Celsius)"</code>.<br> Diese Daten sind verf&uuml;gbar
  40565. als lokale Variablen in Perl, als Umgebungs-Variablen f&uuml;r
  40566. Shell-Scripts, und werden als Text ausgetauscht in
  40567. FHEM-Kommandos.</li>
  40568. <li>$NAME und $TYPE enthalten den Namen bzw. Typ des Ereignis
  40569. ausl&ouml;senden Ger&auml;tes, z.B. myFht und FHT</li>
  40570. </ul></li>
  40571. <li>Achtung: Folgende Vorgehensweise ist abgek&uuml;ndigt, funktioniert
  40572. bis featurelevel 5.6 und wird in einem zuk&uuml;nftigen Release von
  40573. FHEM nicht mehr unterst&uuml;tzt. Wenn keine der oben genannten
  40574. Variablen ($NAME/$EVENT/usw.) in der Anweisung gefunden wird, werden
  40575. Platzhalter ersetzt.
  40576. <ul>
  40577. <li>Das Zeichen % wird ersetzt mit dem empfangenen
  40578. Ereignis (Event), z.B. mit on oder off oder
  40579. <code>measured-temp: 21.7 (Celsius)</code>.
  40580. </li>
  40581. <li>Das Zeichen @ wird ersetzt durch den
  40582. Ger&auml;tenamen.</li>
  40583. <li>Um % oder @ im Text selbst benutzen zu k&ouml;nnen, m&uuml;ssen
  40584. sie verdoppelt werden (%% oder @@).</li>
  40585. <li>Anstelle von % und @, k&ouml;nnen die
  40586. Parameter %EVENT (funktionsgleich mit %),
  40587. %NAME (funktionsgleich mit @) und
  40588. %TYPE (enth&auml;lt den Typ des Ger&auml;tes, z.B.
  40589. FHT) benutzt werden. Die von Leerzeichen unterbrochenen
  40590. Teile eines Ereignisses (Event) sind verf&uuml;gbar als %EVTPART0,
  40591. %EVTPART1, usw. Ein einzeln stehendes % verliert seine
  40592. oben beschriebene Bedeutung, falls auch nur einer dieser Parameter
  40593. in der Definition auftaucht.</li>
  40594. </ul></li>
  40595. <li>Folgende spezielle Ereignisse werden f&uuml;r das Ger&auml;t "global"
  40596. erzeugt:
  40597. <ul>
  40598. <li>INITIALIZED sobald die Initialization vollst&auml;ndig ist.</li>
  40599. <li>REREADCFG nachdem die Konfiguration erneut eingelesen wurde.</li>
  40600. <li>SAVE bevor die Konfiguration gespeichert wird.</li>
  40601. <li>SHUTDOWN bevor FHEM heruntergefahren wird.</li>
  40602. <li>DEFINED &lt;devname&gt; nach dem Definieren eines
  40603. Ger&auml;tes.</li>
  40604. <li>DELETED &lt;devname&gt; nach dem L&ouml;schen eines
  40605. Ger&auml;tes.</li>
  40606. <li>RENAMED &lt;old&gt; &lt;new&gt; nach dem Umbenennen eines
  40607. Ger&auml;tes.</li>
  40608. <li>UNDEFINED &lt;defspec&gt; beim Auftreten einer Nachricht f&uuml;r
  40609. ein undefiniertes Ger&auml;t.</li>
  40610. </ul></li>
  40611. <li>Notify kann dazu benutzt werden, um Makros f&uuml;r eine manuelle
  40612. Ausf&uuml;hrung zu speichern. Mit einem <a
  40613. href="#trigger">trigger</a> Kommando k&ouml;nnen solche Makros dann
  40614. ausgef&uuml;hrt werden. Z.B.<br> <code>fhem> define MyMacro notify
  40615. MyMacro { Log 1, "Hello"}</code><br> <code>fhem> trigger
  40616. MyMacro</code><br> </li>
  40617. </ul>
  40618. </ul>
  40619. <br>
  40620. <a name="notifyset"></a>
  40621. <b>Set </b>
  40622. <ul>
  40623. <li>addRegexpPart &lt;device&gt; &lt;regexp&gt;<br>
  40624. F&uuml;gt ein regexp Teil hinzu, der als device:regexp aufgebaut ist.
  40625. Die Teile werden nach Regexp-Regeln mit | getrennt. Achtung: durch
  40626. hinzuf&uuml;gen k&ouml;nnen manuell erzeugte Regexps ung&uuml;ltig
  40627. werden.</li>
  40628. <li>removeRegexpPart &lt;re&gt;<br>
  40629. Entfernt ein regexp Teil. Die Inkonsistenz von addRegexpPart /
  40630. removeRegexPart-Argumenten hat seinen Ursprung in der Wiederverwendung
  40631. von Javascript-Funktionen.</li>
  40632. <li>inactive<br>
  40633. Deaktiviert das entsprechende Ger&auml;t. Beachte den leichten
  40634. semantischen Unterschied zum disable Attribut: "set inactive"
  40635. wird bei einem shutdown automatisch in fhem.state gespeichert, es ist
  40636. kein save notwendig.<br>
  40637. Der Einsatzzweck sind Skripte, um das notify tempor&auml;r zu
  40638. deaktivieren.<br>
  40639. Das gleichzeitige Verwenden des disable Attributes wird nicht empfohlen.
  40640. </li>
  40641. <li>active<br>
  40642. Aktiviert das entsprechende Ger&auml;t, siehe inactive.
  40643. </li>
  40644. </ul>
  40645. <br>
  40646. <a name="notifyget"></a>
  40647. <b>Get</b> <ul>N/A</ul><br>
  40648. <a name="notifyattr"></a>
  40649. <b>Attribute</b>
  40650. <ul>
  40651. <li><a href="#disable">disable</a></li>
  40652. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  40653. <a name="addStateEvent"></a>
  40654. <li>addStateEvent<br>
  40655. Das mit dem state Reading verkn&uuml;pfte Event ist speziell, da das
  40656. dazugeh&ouml;rige Prefix "state: " entfernt wird, d.h. $EVENT ist nicht
  40657. "state: on", sondern nur "on". In manchen F&auml;llen ist es aber
  40658. erw&uuml;nscht das unmodifizierte Event zu bekommen, d.h. wo "state: "
  40659. nicht entfernt ist. F&uuml;r diese F&auml;lle sollte addStateEvent auf 1
  40660. gesetzt werden, die Voreinstellung ist 0 (deaktiviert).<br>
  40661. Achtung:
  40662. <ul>
  40663. <li>dieses Attribut muss beim Empf&auml;nger (notify, FileLog, etc)
  40664. gesetzt werden.</li>
  40665. <li>dieses Attribut zeigt nur f&uuml;r solche Ger&auml;te-Events eine
  40666. Wirkung, die <a href="#readingFnAttributes">readingFnAttributes</a>
  40667. unterst&uuml;tzen.</li>
  40668. </ul>
  40669. </li>
  40670. <a name="forwardReturnValue"></a>
  40671. <li>forwardReturnValue<br>
  40672. R&uuml;ckgabe der Werte eines ausgef&uuml;hrten Kommandos an den
  40673. Aufrufer. Die Voreinstellung ist 0 (ausgeschaltet), um weniger
  40674. Meldungen im Log zu haben.
  40675. </li>
  40676. <a name="ignoreRegexp"></a>
  40677. <li>ignoreRegexp regexp<br>
  40678. Es ist nicht immer einfach ein Regexp zu bauen, was etwas _nicht_
  40679. matcht. Dieses Attribu hilft in diesen F&auml;llen: das Event wird
  40680. ignoriert, falls den angegebenen Regexp. Syntax ist gleich wie in der
  40681. Definition.
  40682. </li>
  40683. <a name="readLog"></a>
  40684. <li>readLog<br>
  40685. Das notify wird f&uuml;r Meldungen, die im FHEM-Log erscheinen,
  40686. ausgegef&uuml;hrt. Das "Event-Generierende-Ger&auml;t" wird auf dem
  40687. notify selbst gesetzt. Z.Bsp. kann man mit folgendem notify auf die
  40688. Startup Meldung reagieren:
  40689. <ul><code>
  40690. define n notify n:.*Server.started.* { Log 1, "Wirklich" }<br>
  40691. attr n readLog
  40692. </code></ul>
  40693. </li>
  40694. <a name="perlSyntaxCheck"></a>
  40695. <li>perlSyntaxCheck<br>
  40696. nach setzen des <b>global</b> Attributes perlSyntaxCheck wird eine
  40697. Syntax-Pr&uuml;fung der Anweisung durchgef&uuml;hrt bei jeder
  40698. &Auml;nderung (define oder modify), falls die Anweisung Perl ist, und
  40699. FHEM bereits gestartet ist. </li>
  40700. </ul>
  40701. <br>
  40702. </ul>
  40703. <p><a name="panStamp"></a>
  40704. <h3>panStamp</h3>
  40705. <ul>
  40706. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40707. hier: <a href='commandref.html#panStamp'>panStamp</a><br/>
  40708. </ul>
  40709. <a name="pilight"></a>
  40710. <h3>pilight</h3>
  40711. <ul>
  40712. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40713. hier: <a href='commandref.html#pilight'>pilight</a><br/>
  40714. </ul>
  40715. <a name="pilight_contact"></a>
  40716. <h3>pilight_contact</h3>
  40717. <ul>
  40718. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40719. hier: <a href='commandref.html#pilight_contact'>pilight_contact</a><br/>
  40720. </ul>
  40721. <a name="pilight_ctrl"></a>
  40722. <h3>pilight_ctrl</h3>
  40723. <ul>
  40724. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40725. hier: <a href='commandref.html#pilight_ctrl'>pilight_ctrl</a><br/>
  40726. </ul>
  40727. <a name="pilight_dimmer"></a>
  40728. <h3>pilight_dimmer</h3>
  40729. <ul>
  40730. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40731. hier: <a href='commandref.html#pilight_dimmer'>pilight_dimmer</a><br/>
  40732. </ul>
  40733. <a name="pilight_raw"></a>
  40734. <h3>pilight_raw</h3>
  40735. <ul>
  40736. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40737. hier: <a href='commandref.html#pilight_raw'>pilight_raw</a><br/>
  40738. </ul>
  40739. <a name="pilight_smoke"></a>
  40740. <h3>pilight_smoke</h3>
  40741. <ul>
  40742. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40743. hier: <a href='commandref.html#pilight_smoke'>pilight_smoke</a><br/>
  40744. </ul>
  40745. <a name="pilight_switch"></a>
  40746. <h3>pilight_switch</h3>
  40747. <ul>
  40748. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40749. hier: <a href='commandref.html#pilight_switch'>pilight_switch</a><br/>
  40750. </ul>
  40751. <a name="pilight_temp"></a>
  40752. <h3>pilight_temp</h3>
  40753. <ul>
  40754. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40755. hier: <a href='commandref.html#pilight_temp'>pilight_temp</a><br/>
  40756. </ul>
  40757. <a name="ping"></a>
  40758. <h3>ping</h3>
  40759. <ul>
  40760. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40761. hier: <a href='commandref.html#ping'>ping</a><br/>
  40762. </ul>
  40763. <a name="plex"></a>
  40764. <h3>plex</h3>
  40765. <ul>
  40766. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40767. hier: <a href='commandref.html#plex'>plex</a><br/>
  40768. </ul>
  40769. <a name="powerMap"></a>
  40770. <h3>powerMap</h3>
  40771. <div class='langLinks'>[<a href='commandref.html#powerMap'>EN</a> DE]</div>
  40772. (<a href="commandref.html#powerMap">en</a> | de)
  40773. <div>
  40774. <ul>
  40775. powerMap ermittelt die aktuelle Leistungsaufnahme eines Ger&auml;ts und
  40776. berechnet den Energieverbrauch bei &Auml;nderung oder in einem
  40777. regelm&auml;&szlig;igen Intervall.<br>
  40778. Diese neuen Werte k&ouml;nnen genutzt werden, um den Stromverbrauch f&uuml;r
  40779. Ger&auml;te ohne Z&auml;hler (z.B. K&uuml;hlschrank, Beleuchtung oder
  40780. FHEM-Server) zu erfassen und mit dem Modul ElectricityCalculator weiter
  40781. zu verarbeiten.<br>
  40782. <br>
  40783. <a name="powerMapdefine"></a>
  40784. <b>Define</b>
  40785. <ul>
  40786. <code>define &lt;name&gt; powerMap</code><br>
  40787. Es kann immer nur eine powerMap Instanz definiert sein.
  40788. </ul><br>
  40789. <a name="powerMapset"></a>
  40790. <b>Set</b>
  40791. <ul>
  40792. <li>
  40793. <code>assign <a href="#devspec">&lt;devspec&gt;</a></code><br>
  40794. Weist einem oder mehreren Ger&auml;ten vordefinierte powerMap Attribute zu,
  40795. um diese anschlie&szlig;end anpassen zu k&ouml;nnen.
  40796. </li>
  40797. </ul><br>
  40798. <a name="powerMapget"></a>
  40799. <b>Get</b>
  40800. <ul>
  40801. <li>
  40802. <code>devices</code><br>
  40803. Listet alle Ger&auml;te auf, die das Attribut 'powerMap' gesetzt haben.
  40804. </li>
  40805. </ul><br>
  40806. <a name="powerMapreadings"></a>
  40807. <b>Readings</b><br>
  40808. <ul>
  40809. Ger&auml;tespezifische Readings:
  40810. <ul>
  40811. <li>
  40812. <code>pM_energy</code><br>
  40813. Ein Z&auml;hler f&uuml;r die bisher bezogene Energie in Wh.<br>
  40814. Hinweis: F&uuml;r eine korrekte Berechnung darf das Attribut
  40815. <code>timestamp-on-change-reading</code> nicht fĂźr das Reading
  40816. pM_energy gesetzt sein!
  40817. </li><br>
  40818. <li>
  40819. <code>pM_energy_begin</code><br>
  40820. Unix Timestamp, an dem die Aufzeichnung begonnen wurde und das
  40821. Ger&auml;t erstmalig Energie verbraucht hat.
  40822. </li><br>
  40823. <li>
  40824. <code>pM_consumption</code><br>
  40825. Die aktuelle Leistungsaufnahme des Ger&auml;tes in W.
  40826. </li>
  40827. </ul><br>
  40828. </ul>
  40829. <a name="powerMapattr"></a>
  40830. <b>Attribute</b>
  40831. <ul>
  40832. <li>
  40833. <code>disable 1</code><br>
  40834. Es werden keine Readings mehr durch das Modul erzeugt oder berechnet.
  40835. </li><br>
  40836. <li>
  40837. <code>powerMap_eventChainWarnOnly &lt;1&gt;</code><br>
  40838. Sofern gesetzt, wird die Ereigniskette NICHT automatisch repariert, falls
  40839. Readings zwar als f&uuml;r powerMap notwendig identifiziert wurden, ihre
  40840. Events jedoch derzeit dadurch unterdr&uuml;ckt werden, weil sie nicht in
  40841. einem der Attribute event-on-change-reading oder event-on-update-reading
  40842. enthalten sind. Stattdessen ist ein manueller Eingriff erforderlich.
  40843. </li><br>
  40844. <li>
  40845. <code>powerMap_interval &lt;seconds&gt;</code><br>
  40846. Intervall in Sekunden, in dem neue Werte f&uuml;r die Energie berechnet
  40847. werden.<br>
  40848. Der Vorgabewert ist 900 Sekunden.
  40849. </li><br>
  40850. <li>
  40851. <code>powerMap_noEnergy 1</code><br>
  40852. F&uuml;r das Ger&auml;t wird kein Energieverbrauch berechnet.
  40853. </li><br>
  40854. <li>
  40855. <code>powerMap_noPower 1</code><br>
  40856. F&uuml;r das Ger&auml;t wird keine Leistungsaufnahme abgeleitet und
  40857. daher auch kein Energieverbrauch berechnet.
  40858. </li><br>
  40859. <li>
  40860. <code>powerMap_rname_E</code><br>
  40861. Definiert den Reading Namen, in dem der Z&auml;hler f&uuml;r die bisher
  40862. bezogene Energie gespeichert wird.<br>
  40863. Der Vorgabewert ist 'pM_energy'.
  40864. </li><br>
  40865. <li>
  40866. <code>powerMap_rname_P</code><br>
  40867. Definiert den Reading Namen, in dem die aktuelle Leistungsaufnahme
  40868. des Ger&auml;tes gespeichert wird.<br>
  40869. Der Vorgabewert ist 'pM_consumption'.
  40870. </li><br>
  40871. <li>
  40872. <code>powerMap<pre>
  40873. {
  40874. '&lt;reading&gt;' =&gt; {
  40875. '&lt;value&gt;' =&gt; &lt;power&gt;,
  40876. '&lt;value&gt;' =&gt; &lt;power&gt;,
  40877. ...
  40878. },
  40879. '&lt;reading&gt;' {
  40880. '&lt;value&gt;' =&gt; &lt;power&gt;,
  40881. '&lt;value&gt;' =&gt; &lt;power&gt;,
  40882. ...
  40883. },
  40884. ...
  40885. }</pre>
  40886. </code> (ger&auml;tespezifisch)<br>
  40887. Ein Hash mit den Event(=Reading) Namen und seinen mĂśglichen Werten, um diesen
  40888. die dazugeh&ouml;rige Leistungsaufnahme zuzuordnen.<br>
  40889. Bei dimmbaren Ger&auml;ten wird f&uuml;r die Zwischenschritte der Wert
  40890. durch eine lineare Interpolation ermittelt, so dass mindestens zwei Zahlenwerte ausreichen.<br>
  40891. <br>
  40892. Aus Textwerten, die eine Zahl enthalten, wird automatisch die Zahl extrahiert und
  40893. f&uuml;r die Interpolation verwendet (Beispiel: dim50% wird automatisch als 50 interpretiert).<br>
  40894. Au&szlig;erdem werden "off" und "on" automatisch als 0 respektive 100 interpretiert.<br>
  40895. Nicht interpretierbare Werte f&uuml;hren dazu, dass eine Leistungsaufnahme von 0 angenommen wird.<br>
  40896. Explizit in powerMap enthaltene Definitionen haben immer vorrang.<br>
  40897. <br>
  40898. F&uuml;r den Fall, dass mehrere Verbrauchswerte addiert werden sollen, kann der Name von anderen
  40899. Readings direkt hinter dem eigentliche Wert mit einem Komma abgetrennt angegeben werden.
  40900. Der aktuelle Status dieses Readings wird dann bei der Berechnung des Gesamtverbrauchs ebenfalls
  40901. ber&uumL;cksichtigt. Sollen alle in powerMap bekannten Readings ber&uuml;cksichtigt werden, kann
  40902. auch einfach ein * angegeben werden.<br>
  40903. <br>
  40904. Beispiel f&uuml;r einen FS20 Stecker:
  40905. <ul>
  40906. <code><pre>
  40907. 'state' =&gt; {
  40908. '0' =&gt; 0,
  40909. '100' =&gt; 60,
  40910. },
  40911. </pre></code><br>
  40912. </ul><br>
  40913. Beispiel f&uuml;r eine HUE white Gl&uuml;hlampe:
  40914. <ul>
  40915. <code><pre>
  40916. 'pct' =&gt; {
  40917. '0' =&gt; 0.4,
  40918. '10' =&gt; 1.2,
  40919. '20' =&gt; 1.7,
  40920. '30' =&gt; 1.9,
  40921. '40' =&gt; 2.3,
  40922. '50' =&gt; 2.7,
  40923. '60' =&gt; 3.4,
  40924. '70' =&gt; 4.7,
  40925. '80' =&gt; 5.9,
  40926. '90' =&gt; 7.5,
  40927. '100' =&gt; 9.2,
  40928. },
  40929. 'state' =&gt; {
  40930. 'unreachable' =&gt; 0,
  40931. '*' =&gt; 'pct',
  40932. },
  40933. </pre></code><br>
  40934. </ul>
  40935. </li>
  40936. </ul>
  40937. </ul>
  40938. </div>
  40939. <p><a name="rain"></a>
  40940. <h3>rain</h3>
  40941. <ul>
  40942. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40943. hier: <a href='commandref.html#rain'>rain</a><br/>
  40944. </ul>
  40945. <a name="readingsChange"></a>
  40946. <h3>readingsChange</h3>
  40947. <ul>
  40948. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  40949. hier: <a href='commandref.html#readingsChange'>readingsChange</a><br/>
  40950. </ul>
  40951. <a name="readingsGroup"></a>
  40952. <h3>readingsGroup</h3>
  40953. <div class='langLinks'>[<a href='commandref.html#readingsGroup'>EN</a> DE]</div>
  40954. <ul>
  40955. Zeigt eine Sammlung von Messwerten von einem oder mehreren Ger&auml;ten an.
  40956. <br><br>
  40957. <a name="readingsGroup_Define"></a>
  40958. <b>Define</b>
  40959. <ul>
  40960. <code>define &lt;name&gt; readingsGroup &lt;device&gt;[:regex] [&lt;device-2&gt;[:regex-2]] ... [&lt;device-n&gt;[:regex-n]]</code><br>
  40961. <br>
  40962. Anmerkungen:
  40963. <ul>
  40964. <li>&lt;device&gt; kann die Form INTERNAL=VALUE haben, wobei INTERNAL der Name eines internen Wertes ist und VALUE ein Regex.</li>
  40965. <li>&lt;device&gt; kann die Form ATTRIBUTE&VALUE haben, wobei ATTRIBUTE der Name eines Attributs ist und VALUE ein Regex.</li>
  40966. <li>&lt;device&gt; kann die Form &lt;STRING&gt; oder &lt;{perl}&gt; haben, wobei STRING oder die von Perl zur&uuml;ckgegebene Zeichenfolge als Zeile in die Readings List eingef&uuml;gt wird. Wird &uuml;bersprungen, wenn STRING undef ist.</li>
  40967. <li>&lt;device&gt; kann ein devspec sein (siehe <a href="#devspec">devspec</a>) mit mindestens einem FILTER-Ausdruck sein.</li>
  40968. <li>Wenn Regex eine Komma separarierte Liste ist, werden die Reading-Values in einer einzelnen Zeile angezeigt.</li>
  40969. <li>Wenn Regex mit einem "+" beginnt, wird es mit den internen Werten (Internals) des Ger&auml;ts anstelle der Readings verglichen.</li>
  40970. <li>Wenn Regex mit einem '?' beginnt, wird es mit den Attributen des Ger&auml;ts verglichen und nicht mit den Werten (Readings) verglichen.</li>
  40971. <li>Wenn Regex mit einem '!' beginnt, wird die Anzeige des Wertes erzwungen, auch wenn kein Reading mit diesem Namen verf&uuml;gbar ist.</li>
  40972. <li>Wenn Regex mit einem '$' beginnt, ist die Berechnung mit Wert-Spalten und Zeilen m&ouml;glich.</li>
  40973. <li>Die folgenden <a href="#set">"set magic"</a> Pr&auml;fixe und Suffixe k&ouml;nnen mit Regex verwendet werden:
  40974. <ul>
  40975. <li>Sie k&ouml;nnen anstelle von + und ? ein Pr&auml;fix i :, r: oder a: verwenden. Analog zur devspec-Filterung.</li>
  40976. <li>Der Suffix :d ruft die erste Nummer ab.</li>
  40977. <li>Der Suffix :i ruft den ganzzahligen Teil der ersten Zahl ab.</li>
  40978. <li>Der Suffix :r&lt;n&gt; ruft die erste Zahl ab und rundet sie auf &lt;n&gt; Nachkommastellen ab. Wenn &lt;n&gt; fehlt, wird es auf eine Dezimalstelle gerundet.</li>
  40979. <li>Der Suffix :t gibt den Zeitstempel zur&uuml;ck (funktioniert nur mit Readings).</li>
  40980. <li>Der Suffix :sec gibt die Anzahl der Sekunden seit dem das Reading gesetzt wurde zur&uuml;ck. Wahrscheinlich nicht n&uuml;tzlich mit readingsGroups.</li>
  40981. </ul></li>
  40982. <li>Regex kann von der Form &lt;regex&gt;@device sein, um Readings von einem anderen Ger&auml;t zu verwenden.<br>
  40983. Wenn der Ger&auml;tename mit einem '!' beginnt, wird die Anzeige deaktiviert. Verwenden Sie in Verbindung mit ! den Reading-Name.</li>
  40984. <li>Regex kann die Form &lt;regex&gt;@{perl} haben, um Readings von einem anderen Ger&auml;t zu verwenden.</li>
  40985. <li>Regex kann von der Form &lt;STRING&gt; oder &lt;{perl}[@readings]&gt; sein, wobei STRING oder die von Perl zur&uuml;ckgegebene Zeichenfolge als Reading eingef&uuml;gt wird, oder:
  40986. <ul><li>das Element wird &uuml;bersprungen, wenn STRING undef ist</li>
  40987. <li>wenn STRING br ist, wird eine neue Zeile gestartet</li>
  40988. <li>wenn STRING hr ist, wird eine horizontale Linie eingef&uuml;gt</li>
  40989. <li>wenn STRING tfoot ist, wird der Tabellenfu&szlig; gestartet</li>
  40990. <li>wenn STRING die Form hat, %ICON[%CMD] ICON wird als Name eines Symbols anstelle von Text und CMD als der Befehl verwendet, der ausgef&uuml;hrt werden soll, wenn auf das Symbol geklickt wird. Siehe auch die Befehlsattribute.</li></ul>
  40991. Wenn Readings aktualisiert werden, wird der Perl-Ausdruck bei Longpoll-Aktualisierungen erneut ausgewertet.</li>
  40992. <li>Wenn der erste Regex '@&lt;index&gt;' ist, gibt es den Index der folgenden Regex an, mit dem die Messwerte gruppiert werden sollen. Wenn Erfassungsgruppen verwendet werden, k&ouml;nnen sie durch #&lt;number&gt; refferenziert werden. z.Bsp:<br><ul>
  40993. <code>&lt;IP-Adress&gt;&lt;Hostname&gt;&lt;MAC&gt;&lt;Vendor&gt;<br>
  40994. nmap:@2,<#1>,(.*)_hostname,#1_macAddress,#1_macVendor</code></ul></li>
  40995. <li>F&uuml;r interne Werte (Internals) und Attribute ist longpoll update nicht m&ouml;glich. Aktualisieren Sie die Seite, um die Werte zu aktualisieren.</li>
  40996. <li>Der Ausdruck &lt;{perl}&gt; ist auf Ausdr&uuml;cke ohne Leerzeichen beschr&auml;nkt. Es ist am besten, eine kleine Sub in 99_myUtils.pm aufzurufen, anstatt einen complexen Ausdruck im Define zu haben.</li>
  40997. </ul><br>
  40998. Beispiele:
  40999. <ul>
  41000. <code>
  41001. define batteries readingsGroup .*:battery</code><br>
  41002. <br>
  41003. <code>define temperatures readingsGroup s300th.*:temperature</code><br>
  41004. <code>define temperatures readingsGroup TYPE=CUL_WS:temperature</code><br>
  41005. <br>
  41006. <code>define culRSSI readingsGroup cul_RSSI=.*:+cul_RSSI</code><br>
  41007. <br>
  41008. <code>define heizung readingsGroup t1:temperature t2:temperature t3:temperature<br>
  41009. attr heizung notime 1<br>
  41010. attr heizung mapping {'t1.temperature' => 'Vorlauf', 't2.temperature' => 'R&amp;uuml;cklauf', 't3.temperature' => 'Zirkulation'}<br>
  41011. attr heizung style style="font-size:20px"<br>
  41012. <br>
  41013. define systemStatus readingsGroup sysstat<br>
  41014. attr systemStatus notime 1<br>
  41015. attr systemStatus nostate 1<br>
  41016. attr systemStatus mapping {'load' => 'Systemauslastung', 'temperature' => 'Systemtemperatur in &amp;deg;C'}<br>
  41017. <br>
  41018. define Verbrauch readingsGroup TYPE=PCA301:state,power,consumption<br>
  41019. attr Verbrauch mapping %ALIAS<br>
  41020. attr Verbrauch nameStyle style="font-weight:bold"<br>
  41021. attr Verbrauch style style="font-size:20px"<br>
  41022. attr Verbrauch valueFormat {power => "%.1f W", consumption => "%.2f kWh"}<br>
  41023. attr Verbrauch valueIcon { state => '%devStateIcon' }<br>
  41024. attr Verbrauch valueStyle {($READING eq "power" && $VALUE > 150)?'style="color:red"':'style="color:green"'}<br>
  41025. <br>
  41026. define rg_battery readingsGroup TYPE=LaCrosse:[Bb]attery<br>
  41027. attr rg_battery alias Batteriestatus<br>
  41028. attr rg_battery commands { "battery.low" => "set %DEVICE replaceBatteryForSec 60" }<br>
  41029. attr rg_battery valueIcon {'battery.ok' => 'batterie', 'battery.low' => 'batterie@red'}<br>
  41030. <br>
  41031. define rgMediaPlayer readingsGroup myMediaPlayer:currentTitle,<>,totaltime,<br>,currentAlbum,<>,currentArtist,<br>,volume,<{if(ReadingsVal($DEVICE,"playStatus","")eq"paused"){"%rc_PLAY%set+$DEVICE+play"}else{"%rc_PAUSE%set+$DEVICE+pause"}}@playStatus>,playStatus<br>
  41032. attr rgMediaPlayer commands { "playStatus.paused" => "set %DEVICE play", "playStatus.playing" => "set %DEVICE pause" }<br>
  41033. attr rgMediaPlayer mapping &nbsp;<br>
  41034. attr rgMediaPlayer notime 1<br>
  41035. attr rgMediaPlayer valueFormat { "volume" => "Volume: %i" }<br>
  41036. #attr rgMediaPlayer valueIcon { "playStatus.paused" => "rc_PLAY", "playStatus.playing" => "rc_PAUSE" }<br>
  41037. </code><br>
  41038. </ul>
  41039. </ul><br>
  41040. <a name="readingsGroup_Set"></a>
  41041. <b>Set</b>
  41042. <ul>
  41043. <li>hide<br>
  41044. Alle sichtbaren Instanzen dieser ReadingsGroup werden ausgeblendet</li>
  41045. <li>show<br>
  41046. Zeigt alle sichtbaren Instanzen dieser ReadingsGroup an</li>
  41047. <li>toggle<br>
  41048. Schaltet den versteckten / angezeigten Zustand aller sichtbaren Instanzen dieser ReadingsGroup an.</li>
  41049. <li>toggle2<br>
  41050. schaltet den erweiterten / kollabierten Zustand aller sichtbaren Instanzen dieser ReadingsGroup an.</li>
  41051. </ul><br>
  41052. <a name="readingsGroup_Get"></a>
  41053. <b>Get</b>
  41054. <ul>
  41055. </ul><br>
  41056. <a name="readingsGroup_Attr"></a>
  41057. <b>Attribute</b>
  41058. <ul>
  41059. <li>alwaysTrigger<br>
  41060. 1 -> alwaysTrigger Ereignisse aktualisieren auch wenn nicht sichtbar.<br>
  41061. 2 -> trigger Ereignisse f&uuml;r berechnete Werte.</li><br>
  41062. <li>disable<br>
  41063. 1 -> Deaktivieren der Benachrichtigung Verarbeitung und Longpoll-Updates. Hinweis: Dadurch wird auch die Umbenennung und L&ouml;schbehandlung deaktiviert.<br>
  41064. 2 -> Deaktivieren der HTML-Tabellenerstellung<br>
  41065. 3 -> Deaktivieren der HTML-Erstellung vollst&auml;ndig</li><br>
  41066. <li>sortDevices<br>
  41067. 1 -> Sortieren der Ger&auml;teliste alphabetisch. Verwenden Sie das erste von sortby oder alias oder name, das f&uuml;r jedes Ger&auml;t definiert ist.</li>
  41068. <li>noheading<br>
  41069. Wenn sie auf 1 gesetzt ist, hat die Readings-Tabelle keine &Uuml;berschrift.</li><br>
  41070. <li>nolinks<br>
  41071. Deaktiviert die HTML-Links von der &Uuml;berschrift und den Readings-Namen.</li><br>
  41072. <li>nostate<br>
  41073. Wenn der Wert 1 ist, wird der Status nicht ber&uuml;cksichtigt.</li><br>
  41074. <li>nonames<br>
  41075. Wenn der Wert auf 1 gesetzt ist, wird der Readings-Name / Zeilentitel nicht angezeigt.</li><br>
  41076. <li>notime<br>
  41077. Wenn der Wert auf 1 gesetzt, wird der Readings-Timestamp nicht angezeigt.</li><br>
  41078. <li>mapping<br>
  41079. Kann ein einfacher String oder ein in {} eingeschlossener Perl-Ausdruck sein, der einen Hash zur&uuml;ckgibt, der den Reading-Name dem angezeigten Namen zuordnet.
  41080. Der Schl&uuml;ssel kann entweder der Name des Readings oder &lt;device&gt;.&lt;reading&gt; oder &lt;reading&gt;.&lt;value&gt; oder &lt;device&gt;.&lt;reading&gt;.&lt;value&gt; sein.
  41081. %DEVICE, %ALIAS, %ROOM, %GROUP, %ROW und %READING werden durch den Ger&auml;tenamen, Ger&auml;tealias, Raumattribut ersetzt. Sie k&ouml;nnen diesen Keywords auch ein Pr&auml;fix voranstellen $ anstatt von %. Beispiele:<br>
  41082. <code>attr temperatures mapping $DEVICE-$READING</code><br>
  41083. <code>attr temperatures mapping {temperature => "%DEVICE Temperatur"}</code>
  41084. </li><br>
  41085. <li>separator<br>
  41086. Das zu verwendende Trennzeichen zwischen dem Ger&auml;tealias und dem Reading-Namen, wenn keine Zuordnung angegeben ist, standardgem&auml;&szlig; ':'
  41087. Ein Leerzeichen wird so dargestellt <code>&amp;nbsp;</code></li><br>
  41088. <li>setList<br>
  41089. Eine durch Leerzeichen getrennte Liste von Befehlen, die zur&uuml;ckgegeben werden "set name ?",
  41090. Das FHEMWEB-Frontend kann also ein Dropdown-Men&uuml; erstellen und An / Aus-Schalter anbieten.
  41091. Set-Befehle, die nicht in dieser Liste enthalten sind, werden zur&uuml;ckgewiesen.</li><br>
  41092. <li>setFn<br>
  41093. Perl-Ausdruck, der f&uuml;r die Befehle aus der setList ausgef&uuml;hrt wird. Es hat Zugriff auf $CMD und $ARGS.</li><br>
  41094. <li>style<br>
  41095. Geben Sie einen HTML-Stil f&uuml;r die Readings-Tabelle an, z.Bsp:<br>
  41096. <code>attr temperatures style style="font-size:20px"</code></li><br>
  41097. <li>cellStyle<br>
  41098. Geben Sie einen HTML-Stil f&uuml;r eine Zelle der Readings-Tabelle an. Normale Zeilen und Spalten werden gez&auml;hlt beginnend mit 1,
  41099. Die Zeilen&uuml;berschriften beginnt mit der Spaltennummer 0. Perl-Code hat Zugriff auf $ROW und $COLUMN. Schl&uuml;ssel f&uuml;r Hash-Lookup k&ouml;nnen sein:
  41100. r:#, c:# oder r:#,c:# , z.Bsp:<br>
  41101. <code>attr temperatures cellStyle { "c:0" => 'style="text-align:right"' }</code></li><br>
  41102. <li>nameStyle<br>
  41103. Geben Sie einen HTML-Stil f&uuml;r die Readings-Namen an, z.Bsp:<br>
  41104. <code>attr temperatures nameStyle style="font-weight:bold"</code></li><br>
  41105. <li>valueStyle<br>
  41106. Geben Sie einen HTML-Stil f&uuml;r die Readings-Werte an, z.Bsp:<br>
  41107. <code>attr temperatures valueStyle style="text-align:right"</code></li><br>
  41108. <li>valueColumn<br>
  41109. Geben Sie die Mindestspalte an, in der ein Messwert angezeigt werden soll. z.Bsp:<br>
  41110. <code>attr temperatures valueColumn { temperature => 2 }</code></li><br>
  41111. <li>valueColumns<br>
  41112. Geben Sie einen HTML-Colspan f&uuml;r die Readings-Werte an, z.Bsp:<br>
  41113. <code>attr wzReceiverRG valueColumns { eventdescription => 'colspan="4"' }</code></li><br>
  41114. <li>valueFormat<br>
  41115. Geben Sie eine Sprintf-Stilformat-Zeichenfolge an, die zum Anzeigen der Readings-Werte verwendet wird. Wenn die Formatzeichenfolge undef ist
  41116. wird dieser Messwert &uuml;bersprungen. Es kann als String angegeben werden, ein Perl-Ausdruck, der einen Hash- oder Perl-Ausdruck zur&uuml;ckgibt, der einen String zur&uuml;ckgibt, z.Bsp:<br>
  41117. <code>attr temperatures valueFormat %.1f &deg;C</code><br>
  41118. <code>attr temperatures valueFormat { temperature => "%.1f &deg;C", humidity => "%i %" }</code><br>
  41119. <code>attr temperatures valueFormat { ($READING eq 'temperature')?"%.1f &deg;C":undef }</code></li><br>
  41120. <li>valuePrefix<br>
  41121. Text, der dem Readings-Wert vorangestellt wird</li><br>
  41122. <li>valueSuffix<br>
  41123. Text, der nach dem Readings-Wert angeh&auml;ngt wird<br>
  41124. <code>attr temperatures valueFormat { temperature => "%.1f", humidity => "%i" }</code><br>
  41125. <code>attr temperatures valueSuffix { temperature => "&deg;C", humidity => " %" }</code></li><br>
  41126. <li>nameIcon<br>
  41127. Geben Sie das Symbol an, das anstelle des Readings-Name verwendet werden soll. Es kann ein einfacher String oder ein in {} eingeschlossener Perl-Ausdruck sein, der einen Hash zur&uuml;ckgibt, der dem Readings-Name den Icon-Namen zuordnet. z.Bsp:<br>
  41128. <code>attr devices nameIcon $DEVICE</code></li><br>
  41129. <li>valueIcon<br>
  41130. Geben Sie ein Symbol an, das anstelle des Readings-Wert verwendet werden soll. Es kann ein einfacher String oder ein in {} eingeschlossener Perl-Ausdruck sein, der einen Hash zur&uuml;ckgibt, der dem Readings-Wert dem Symbolnamen zuordnet. z.Bsp:<br>
  41131. <code>attr devices valueIcon $VALUE</code><br>
  41132. <code>attr devices valueIcon {state => '%VALUE'}</code><br>
  41133. <code>attr devices valueIcon {state => '%devStateIcon'}</code><br>
  41134. <code>attr rgMediaPlayer valueIcon { "playStatus.paused" => "rc_PLAY", "playStatus.playing" => "rc_PAUSE" }</code></li><br>
  41135. <li>commands<br>
  41136. Kann auf verschiedene Arten verwendet werden:
  41137. <ul>
  41138. <li>Um ein Reading oder ein Symbol anklickbar zu machen, indem Sie direkt den Befehl angeben, der ausgef&uuml;hrt werden soll. z.Bsp:<br>
  41139. <code>attr rgMediaPlayer commands { "playStatus.paused" => "set %DEVICE play", "playStatus.playing" => "set %DEVICE pause" }</code></li>
  41140. <li>Wenn der zugeordnete Befehl die Form &lt;command&gt;:[&lt;modifier&gt;] hat, wird das normale <a href="#FHEMWEB">FHEMWEB</a> webCmd-Widget f&uuml;r <Modifikator> f&uuml;r diesen commands verwendet. z.Bsp:<br>
  41141. <code>attr rgMediaPlayer commands { volume => "volume:slider,0,1,100" }</code><br>
  41142. <code>attr lights commands { pct => "pct:", dim => "dim:" }</code></li>
  41143. <li>commands k&ouml;nnen f&uuml;r Attribute verwendet werden. z.Bsp:<br>
  41144. <code>attr <rg> commands { disable => "disable:" }</code></li>
  41145. </ul></li><br>
  41146. <li>visibility<br>
  41147. Wenn sie auf hidden oder hideable eingestellt ist, wird eine kleine Schaltfl&auml;che links neben dem Namen der Readings-Group angezeigt, um den Inhalt der Readings-Group zu erweitern / auszublenden. Wenn eine Readings-Group erweitert wird, werden alle anderen Gruppen derselben Gruppe ausgeblendet.<br>
  41148. <ul>
  41149. hidden -> Standardm&auml;&szlig;ig ist hidden aktiv, kann jedoch erweitert werden.<br>
  41150. hideable -> Standardm&auml;&szlig;ig ist hideable aktiv, kann jedoch ausgeblendet werden.<br><br>
  41151. </ul>
  41152. Wenn diese Option auf "collapsed" oder "collapsible" eingestellt ist, erkennt readingsGroup die Specials &lt;-&gt;,&lt;+&gt; und &lt;+-&gt; als die ersten Elemente von
  41153. eine Linie, um dieser Linie ein + oder - Symbol hinzuzuf&uuml;gen. Durch Klicken auf das + oder - Symbol wird zwischen erweitertem und reduziertem Zustand umgeschaltet. Wenn eine Readings-Group erweitert wird, werden alle anderen Gruppen in der gleichen Gruppe ausgeblendet.
  41154. <ul>
  41155. - -> Die Linie wird im expandierten Zustand sichtbar sein.<br>
  41156. + -> Die Linie wird im zusammengefalteten Zustand angezeigt.<br>
  41157. +- -> Die Linie wird in beiden Zust&auml;nden sichtbar sein.<br>
  41158. <br>
  41159. collapsed -> Der Standardstatus ist reduziert, kann jedoch erweitert werden.<br>
  41160. collapsible -> Der Standardstatus ist sichtbar, kann jedoch minimiert werden.<br><br></li>
  41161. </ul>
  41162. <li>headerRows<br><br>
  41163. </li>
  41164. <li>sortColumn<br>
  41165. &gt; 0 -> sortiert die Tabelle automatisch nach dem Laden der Seite nach dieser Spalte<br>
  41166. 0 -> sortiert Sie nicht automatisch, sondern durch Klicken auf eine Spalten&uuml;berschrift<br>
  41167. &lt; 0 -> sortiert die Tabelle automatisch nach dem Laden der Seite nach dieser Spalte
  41168. </li>
  41169. <br><li><a href="#perlSyntaxCheck">perlSyntaxCheck</a></li>
  41170. </ul><br>
  41171. F&uuml;r die Hash-Version aller Zuordnungsattribute kann ein Standardwert angegeben werden mit <code>{ '' => &lt;default&gt; }</code>.<br><br>
  41172. Die Stilattribute k&ouml;nnen auch einen in {} eingeschlossenen Perl-Ausdruck enthalten, der die zu verwendende Stilzeichenfolge zur&uuml;ckgibt. F&uuml;r nameStyle und valueStyle, kann der Perl-Code $DEVICE,$READING,$VALUE und $NUM verwendet werden. z.Bsp:<br>
  41173. <ul>
  41174. <code>attr batteries valueStyle {($VALUE ne "ok")?'style="color:red"':'style="color:green"'}</code><br>
  41175. <code>attr temperatures valueStyle {($DEVICE =~ m/aussen/)?'style="color:green"':'style="color:red"'}</code>
  41176. </ul><br>
  41177. Hinweis: Nur valueStyle, valueFomat, valueIcon und <{...}@reading> werden bei Longpoll-Updates ausgewertet und valueStyle muss f&uuml;r jeden m&ouml;glichen Wert einen nicht leeren Stil zur&uuml;ckgeben. Alle anderen Perl-Ausdr&uuml;cke werden nur einmal w&auml;hrend der HTML-Erstellung ausgewertet und geben keine Wertupdates mit longpoll wieder.
  41178. Aktualisieren Sie die Seite, um den dynamischen Stil zu aktualisieren. F&uuml;r nameStyle funktioniert das Farbattribut momentan nicht, die font -... und background Attribute funktionieren.<br><br>
  41179. Berechnung: Bitte sehen Sie sich daf&uuml;r diese <a href="http://www.fhemwiki.de/wiki/ReadingsGroup#Berechnungen">Beschreibung</a> an in der Wiki.<br>
  41180. z.Bsp: <code>define rg readingsGroup .*:temperature rg:$avg</code>
  41181. </ul>
  41182. <p><a name="readingsHistory"></a>
  41183. <h3>readingsHistory</h3>
  41184. <ul>
  41185. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  41186. hier: <a href='commandref.html#readingsHistory'>readingsHistory</a><br/>
  41187. </ul>
  41188. <a name="readingsProxy"></a>
  41189. <h3>readingsProxy</h3>
  41190. <ul>
  41191. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  41192. hier: <a href='commandref.html#readingsProxy'>readingsProxy</a><br/>
  41193. </ul>
  41194. <a name="remotecontrol"></a>
  41195. <h3>remotecontrol</h3>
  41196. <div class='langLinks'>[<a href='commandref.html#remotecontrol'>EN</a> DE]</div>
  41197. <ul>
  41198. Erzeugt eine graphische Fernbedienung. Buttons (=icons) kÜnnen frei ausgewählt und angeordnet werden. Vordefinierte layouts sind verfßgbar fßr z.B. Samsung-TV und iTunes.
  41199. Jeder "Knopfdruck" kann an das entsprechende fhem-Gerät weitergegeben werden.<br>
  41200. Weitere Erklaerungen finden sich im <a href="http://www.fhemwiki.de/wiki/Remotecontrol">Wiki-Eintrag</a>.<br>
  41201. <a name="remotecontroldefine"></a><br>
  41202. <b>Define</b>
  41203. <ul>
  41204. <code>define &lt;rc-name&gt; remotecontrol</code><br><br>
  41205. Typische Schritte zur Einrichtung:<br>
  41206. <table>
  41207. <tr><td><code>define rc1 remotecontrol</code></td><td><code># erzeugt eine "leere" remotecontrol</code></td></tr>
  41208. <tr><td><code>get rc1 layout</code></td><td><code># zeigt alle vorhandenen vordefinierten layouts an</code></td></tr>
  41209. <tr><td><code>set rc1 layout samsung</code></td><td><code># laedt das layout fĂźr SamsungTV</code></td></tr>
  41210. <tr><td><code>set rc1 makenotify myTV</code></td><td><code># erzeugt notify_rc1, das jeden Tastendruck an myTV weitergibt</code></td></tr>
  41211. <tr><td><b>Hinweis:</b>die Tastenbelegung kann jederzeit geaendert werden, ohne dass der weblink erneut erzeugt werden muss.</td></tr>
  41212. <tr><td><code>attr rc1 row15 VOLUP,VOLDOWN</code></td></tr>
  41213. </table>
  41214. </ul>
  41215. <a name="remotecontrolset"></a><br>
  41216. <b>Set</b>
  41217. <ul>
  41218. <li><code>set &lt;rc-name&gt; layout [delete|&lt;layoutname&gt;]</code><br>
  41219. <code>layout delete</code> loescht alle rowXX-Attribute<br>
  41220. <code>layout &lt;layoutname&gt;</code> laedt das vordefinierte layout in die rowXX-Attribute</li>
  41221. <li><code>set &lt;rc-name&gt; makeweblink [&lt;name&gt;]</code><br>
  41222. erzeugt einen weblink zur Anzeige der remotecontrol in FHEMWEB oder FLOORPLAN. Default-Name ist weblink_&lt;rc-name&gt; .</li>
  41223. <li><code>set rc1 makenotify mySamsungTV</code><br>
  41224. erzeugt <code>notify_rc1</code> das jeden Tastendruck an mySamsungTV zur Ausfuehrung weitergibt</li>
  41225. </ul>
  41226. <a name="remotecontrolattr"></a><br>
  41227. <b>Attribute</b>
  41228. <ul>
  41229. <li><a href="#loglevel">loglevel</a></li>
  41230. <li><a name="rc_iconpath">rc_iconpath</a><br>
  41231. Pfad fĂźr icons, default ist "icons" . Der Attribut-Wert wird fĂźr alle icon-Dateien verwendet ausser .svg .</li>
  41232. <li><a name="rc_iconprefix">rc_iconprefix</a><br>
  41233. Prefix fĂźr icon-Dateien, default ist "" . Der Attribut-Wert wird fĂźr alle icon-Dateien verwendet ausser .svg .</li>
  41234. <li>Note: Icon-Namen (Tasten-Bild-Datei-Namen) werden zusammengesetzt als fhem/&lt;rc_iconpath&gt;/&lt;rc_iconprefix&gt;&lt;command|image&gt;<br>
  41235. Fuer .svg -icons ist die Zugriffsfolge gemaess dem FHEMWEB-Attribut iconPath, default ist openautomation:fhemSVG:default .
  41236. </li>
  41237. <li><a name="rc_devStateIcon">rc_devStateIcon</a><br>
  41238. Zeigt das button-layout auf dem remotecontrol-device selbst in der FHEMWEB-Raumansicht an. Default ist 1, durch setzen auf 0 erscheint in der FHEMWEB-Raumansciht nicht das layout, sondern nur der Status "Initialized".</li>
  41239. <br>
  41240. <li><a href="#rowXX">rowXX</a><br>
  41241. <code>attr &lt;rc-name&gt; rowXX &lt;command&gt;[:&lt;image&gt;]</code><br>
  41242. Komma-separarierte Liste von Tasten/Icons je Tastaturzeile. Eine Tastaturzeile kann beliebig viele Tasten enthalten.</li><br>
  41243. <li>&lt;command&gt; ist der event, der bei Tastendruck ausgelĂśst wird. Gross/Kleinschreibung beachten.</li>
  41244. <li>&lt;image&gt; ist der Dateiname des als Taste angezeigten icons</li>
  41245. <li>Verwenden Sie je Taste</li>
  41246. <li>&lt;command&gt; wobei als Taste/icon <code><rc_iconprefix>&lt;command&gt;</code> angezeigt wird<br>
  41247. Beispiel:<br>
  41248. <code>attr rc1 rc_iconprefix black_btn_ # gilt fĂźr alle Tasten/icons</code><br>
  41249. <code>attr rc1 row00 VOLUP</code><br>
  41250. -> icon ist <code>black_btn_VOLUP</code>, ein Tastendruck erzeugt den event <code>VOLUP</code>
  41251. </li><br>
  41252. oder
  41253. <li>&lt;command&gt;:&lt;image&gt; wobei als Taste/icon &lt;rc_iconprefix&gt;&lt;image&gt; angezeigt wird.<br>
  41254. Beispiel:<br>
  41255. <code>attr rc1 row00 LOUDER:VOLUP</code><br>
  41256. icon ist black_btn_VOLUP, ein Tastendruck erzeugt den event LOUDER<br>
  41257. Beispiele:
  41258. <code>attr rc1 row00 1,2,3,TV,HDMI</code><br>
  41259. <code>attr rc2 row00 play:PLAY,pause:PAUSE,louder:VOLUP,quieter:VOLDOWN</code><br>
  41260. </li>
  41261. <li><b>Hinweis:</b> verwenden Sie :blank fĂźr eine 'leere Taste', oder z.B. :blank,:blank,:blank fĂźr eine Abstands-Leerzeile.</li>
  41262. </ul>
  41263. </ul>
  41264. <p><a name="restore"></a>
  41265. <h3>restore</h3>
  41266. <div class='langLinks'>[<a href='commandref.html#restore'>EN</a> DE]</div>
  41267. <ul>
  41268. <code>restore list [&lt;filename|directory&gt;]<br>
  41269. restore [&lt;filename|directory&gt;]<br>
  41270. restore -a [&lt;filename|directory&gt;]</code>
  41271. <br><br>
  41272. Restauriert die beim update gesicherten Dateien. Mit dem Argument list kann
  41273. man die Liste der verf&&uuml;gbaeren Sicherungen anzeigen, und mit der Angabe
  41274. der direkten Datei/Verzeichnis kann man das zur&uuml;cksichern anstossen.
  41275. Siehe auch das update Befehl, bzw. das restoreDirs Attribut.
  41276. Nach restore ist meistens ein "shutdown restart" notwendig.<br>
  41277. Falls die -a Option spezifiziert wurde, dann werden auch die
  41278. Konfigurationsdateien wiederhergestellt.
  41279. </ul>
  41280. <p><a name="rssFeed"></a>
  41281. <h3>rssFeed</h3>
  41282. <div class='langLinks'>[<a href='commandref.html#rssFeed'>EN</a> DE]</div>
  41283. <ul>
  41284. Mit diesem Hilfs-Device kann ein RSS-Feed per URL abgerufen werden.
  41285. Das Ergebnis wird zum einen in entsprechende Readings (s.u.) eingetragen,
  41286. zum Anderen k&ouml;nnen die Schlagzeilen (Headlines) noch per GET oder per
  41287. bereitgestellter Funktion als Ticker-Daten abgerufen werden.
  41288. Die Daten des RSS-Feeds werden dabei jeweils im angegebenen Interval
  41289. aktualisiert.
  41290. <br><br>
  41291. <a name="rssFeeddefine"></a>
  41292. <b>Define</b>
  41293. <ul>
  41294. <code>define &lt;name&gt; rssFeed &lt;url&gt; [interval]</code>
  41295. <br><br>
  41296. <ul>
  41297. url = URL zum RSS-Feed
  41298. </ul>
  41299. <ul>
  41300. interval = Aktualisierungsinterval in Sekunden<br>
  41301. minimum Wert sind 600 Sekunden (10 Minuten)<br>
  41302. maximum Wert sind 86400 Sekunden (24 Stunden)
  41303. </ul>
  41304. <br>
  41305. Beispiel:
  41306. <ul>
  41307. <code>define rssGEA rssFeed http://www.gea.de/rss?cat=Region%20Reutlingen&main=true 3600</code>
  41308. <br><br>
  41309. Damit wird st&uuml;ndlich der RSS-Feed des Reutlinger Generalanzeigers
  41310. abgerufen.
  41311. </ul>
  41312. </ul>
  41313. <br>
  41314. <a name="rssFeedset"></a>
  41315. <b>Set</b>
  41316. <ul>
  41317. <code>set &lt;name&gt; update</code><br>
  41318. Abrufen der Daten vom rssFeed und aktualisieren der Readings
  41319. </ul>
  41320. <br>
  41321. <a name="rssFeedget"></a>
  41322. <b>Get</b><br>
  41323. <ul>
  41324. <code>get &lt;name&gt; ticker</code><br>
  41325. Abrufen der zuletzt gelesenen Schlagzeilen im gew&uuml;nschten
  41326. Format (s. Attribute)
  41327. </ul>
  41328. <br>
  41329. <a name="rssFeedattr"></a>
  41330. <b>Attribute</b>
  41331. <ul>
  41332. <li><a name="disabled">disabled</a><br>
  41333. Mit diesem Attribut kann das Device deaktiviert (1) werden
  41334. bzw. auch wieder aktiviert (0 oder Attribut nicht vorhandn).
  41335. Wenn das device deaktiviert ist, sind keine Readings mehr
  41336. vorhanden, au&szlig;er state. Au&szlig;erdem werden die Daten nicht mehr
  41337. zyklisch aktualisiert und get ticker liefert nur noch die
  41338. Information zur&uuml;ck, dass der Ticker nicht mehr aktiv ist
  41339. (s. dazu auch Attribut rfDisabledText).
  41340. <br>
  41341. </li>
  41342. <li><a name="rfDisabledText">rfDisabledText</a><br>
  41343. Der hier eingetragenee Text wird beim Abruf der Schlagzeilen als einzige
  41344. Zeile&nbsp;angezeigt, wenn der rssFeed disabled ist (s. Attribut disabled).
  41345. Ist dieses Attribut nicht angegeben, so wird ein Standardtext angezeigt.<br>
  41346. Beispiel: <code>attr &lt;name&gt; rfDisabledText Dieser Feed wurde deaktiviert</code>
  41347. </li>
  41348. <li><a name="rfTickerChars">rfTickerChars</a><br>
  41349. Hiermit kann eine Zeichenfolge festgelegt werden, die bei den Schlagzeilen
  41350. f&uuml;r den get-Abruf vor und nach jeder Schlagzeile, wie bei einem Nachrichten-Ticker
  41351. angef&uuml;gt wird.
  41352. Beispiel: <code>attr &lt;name&gt; rfTickerChars +++</code>
  41353. <br>
  41354. Ergebnis: <code>+++ Dies ist eine Beispiel-Schlagzeile +++</code>
  41355. <br>
  41356. Diese Zeichenkette wird auch als Trenner fĂźr die Marquee-Ticker-Daten verwendet.
  41357. <br>
  41358. </li>
  41359. <li><a name="rfMaxLines">rfMaxLines</a><br>
  41360. Bestimmt, wieviele Schlagzeilen maximal aus dem Feed extrahiert werden sollen.<br>
  41361. Sind weniger Nachrichten-Elemente im Feed enthalten, als &uuml;ber rfMaxLines angegeben,
  41362. so werden eben nur so viele Schlagzeilen extrahiert, wie vorhanden sind.<br>
  41363. Ist dieses Attribut nich angegeben, so wird daf&uuml;r der Standard-Wert 10 angenommen.<br>
  41364. Beispiel: <code>attr &lt;name&gt; rfMaxLines 15</code>
  41365. <br>
  41366. </li>
  41367. <li><a name="rfDisplayTickerReadings">rfDisplayTickerReadings</a><br/>
  41368. Wenn dieses Attribut gesetzt ist werden 2 zus&auml;tzliche Readings erzeugt, die
  41369. die Tickerdaten einmal f&uuml;r s.g. "Toast"-Ticker (der Inhalt ist der selbe,
  41370. wie die Ausgabe von rssFeedGetTicker()) und einmal f&uuml;r s.g. "Marquee"-Ticker, also
  41371. in einer einzigen Zeile.
  41372. <br>
  41373. </li>
  41374. <li><a name="rfEncode">rfEncode</a><br>
  41375. Hier kann eine Encoding-Methode (Bspw. utf8) angegeben werden.
  41376. Die Texte die aus dem Feed extrahiert werden (title, descripton, ...)
  41377. werden dann vor der Zuwesung an die Readings mittels encode (Perl core-Module Encode)
  41378. enkodiert. Fehlt dieses Attribut, so findet keine umkodierung statt.
  41379. Das kann u.U. notwendig sein, wenn in den zur&uuml;ckgelieferten Feed-Daten s.g. wide Characters
  41380. enthalten sind. Dies kann evtl. dazu f&uuml;hren, das u.a. die Darstellung in FHEMWEB nicht mehr
  41381. korrekt erfolgt.
  41382. Dies betrifft auch das Ergebnis von rssFeedFunctions, bzw. get ticker.<br/>
  41383. Dieses Attribut wird beim ersten define per default auf utf8 gesetzt.
  41384. <br>
  41385. </li>
  41386. <li><a name="rfReadings">rfReadings</a><br>
  41387. &Uuml;ber dieses Attribut kann angegeben werden, welche Daten aus dem RSS-Feed in
  41388. Readings extrahiert werden sollen. Das Attribut ist als Komma getrennte Liste
  41389. anzugeben.<br>
  41390. Zur Auswahl stehen dabei folgende m&ouml;glichen Werte:
  41391. <ul>
  41392. <li>title = Titelzeile<br>
  41393. Dies erzeugt ein Reading f&uuml;r den Feed-Titel und f&uuml;r jedes
  41394. Nachrichten-Element aus dem Feed.<br>
  41395. </li>
  41396. <li>description = Beschreibungstext
  41397. Dies erzeugt ein Reading f&uuml;r die Feed-Beschreibung, bzw.
  41398. f&uuml;r den Beschreibungstext jeden Nachrichten-Eelements.<br>
  41399. </li>
  41400. <li>encodedContent = content:encoded Abschnitt<br/>
  41401. Sofern vorhanden ist in diesem Abschnitt quasi ein Langtext
  41402. der Nachrihtenmeldung enthalten.
  41403. <br/>
  41404. </li>
  41405. <li>pubDate = Zeitpunkt der Ver&ouml;ffentlichung des Feeds, bzw. der einzelnen
  41406. Nachrichten-Elemente
  41407. <br>
  41408. </li>
  41409. <li>link = Link zum Feed, bzw. zum einzelnen Nachrichten-Element auf
  41410. der Homepage des Feeds.
  41411. <br>
  41412. </li>
  41413. <li>buildDate = Zeitpunkt der letzten aktualisierung der Feed-Daten
  41414. vom Feed-Betreiber.
  41415. <br>
  41416. </li>
  41417. <li>imageURl = URL zum ggf. vorhandenen Bild eines Nachrichten-Elements,
  41418. bzw. zum Nachrichten-Feed.
  41419. <br>
  41420. </li>
  41421. <li>imageTitle = Titel eines ggf. zum Feed oder Nachrichten-Element
  41422. vorhandenen Bildes.
  41423. <br>
  41424. </li>
  41425. </ul>
  41426. Ist Dieses Attribut nicht vorhanden, so werden die Werte "title,description,pubDate" als
  41427. Voreinstellung angenommen. Beim ersten Anlegen des Device wird das Attribut automatisch
  41428. erste einmal mit genau dieser Voreinstellung belegt.
  41429. <br>
  41430. </li>
  41431. <li><a name="rfCustomTextPrepFn">rfCustomTextPrepFn</a><br>
  41432. Hier kann eine Funktion angegeben werden, die bspw. in 99_myUtils.pm
  41433. definiert wird. In dieser Funktion k&ouml;nnen Textinhalte vor dem
  41434. Setzen der Readings, bzw. Tickerzeilen beliebig modifiziert werden.
  41435. Der Funktion wird dabei zum Einen eine Kennung fĂźr den Text &uuml;bergeben und zum
  41436. Anderen der Text selbst. Zur&uuml;ckgegeben wird dann der modifizierte Text.
  41437. <br/>
  41438. M&ouml;gliche Kennungen sind dabei (s.a. rfReadings)<br>
  41439. <ul>
  41440. <li>feedTitle</li>
  41441. <li>feedDescription</li>
  41442. <li>imageTitle</li>
  41443. <li>desctiption</li>
  41444. <li>encodedContent</li>
  41445. </ul>
  41446. <br/>
  41447. Beispiel f&uuml;r 99_myUtils.pm:
  41448. <pre>
  41449. #Text-Modifikation fĂźr rssFeedDevices
  41450. sub rssFeedPrep($$)
  41451. {
  41452. my($texttype,$text) = @_;
  41453. #Länge von descriptions auf maximal 50 begrenzen
  41454. my $tLn=length $text;
  41455. $text=substr($text,0,47).'...' if ($tLn >50 && ($texttype=~/description/));
  41456. #Filtern von texten, die fälschlicherweise auf HASH(xxxxxx) stehen
  41457. #von beliebigen Texten
  41458. return ' ' if ($text=~/HASH\(.*\)/);
  41459. #Setzen eines eigenen Titels fĂźr den Feed
  41460. return 'Mein eigener Feed-Titel' if ($texttype =~/feedTitle/);
  41461. #jetzt noch den modifizierten Text zurĂźck geben
  41462. return $text;
  41463. }
  41464. </pre>
  41465. zur Verwendung muss das Attribut noch entsprechend gesetzt werden:<br/>
  41466. <code>attr &lt;rssFeedDevice&gt; rfCustomTextPrepFn rssFeedPrep</code>
  41467. <br/>
  41468. </li>
  41469. <li>
  41470. <a name="rfReadings">rfAllReadingsEvents</a><br/>
  41471. Wenn dieses Attribut auf 1 gesetzt wird, so werden fĂźr ALLE Readings,
  41472. die w&auml;hrend des Feed-Updates erzeugt werden auch entsprechende Events
  41473. generiert (abh. von den event-on-... Attributen).
  41474. Von Haus aus werden, v.a. f&uuml;r die Readings mit den Feed-Daten keine
  41475. Events generiert.
  41476. </li>
  41477. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  41478. </ul>
  41479. <br>
  41480. <a name="rssFeedfunctions"></a>
  41481. <b>Funktionen</b>
  41482. <ul>
  41483. <li>rssFeedGetTicker<br>
  41484. Diese Funktion gibt die ermittelten und formatierten Schlagzeilen als Zeichenkette
  41485. zur&uuml;ck. Die einzelnen Schlagzeilen sind dabei durch Zeilenvorschub getrenn.
  41486. Dieses Ergebnis kann bspw. in einem InfoPanel f&uuml;r einen Ticker verwendet werden.
  41487. Der Funktion muss dazu der Name eines rssFeed-Devices &uuml;bergeben werden.
  41488. Die Ausgabe ist praktisch die selbe wie das Ergebnis, das bei <code>get ticker</code>
  41489. geliefert wird.<br>
  41490. Syntax: <code> rssFeedGetTicker(&lt;rssFeedDevice&gt;)</code><br>
  41491. </li>
  41492. </ul><br>
  41493. <a name="rssFeedreadings"></a>
  41494. <b>Readings</b>
  41495. <ul>
  41496. Je nach Auswahl der Attribute werden verschiedene Readings bereitgestellt.
  41497. Diese Readings sind teilweise mit einem Pr&auml;fix versehen um sie bspw. dem Feed
  41498. selbst oder einem Nachrichten-Element zuozuordnen.
  41499. </ul>
  41500. <ul>
  41501. <br>
  41502. <li><code>Nxx_</code><br>
  41503. Diese Readings beziehen sich alle auf die einzelnen Nachrichten-Elemente, wobei
  41504. <code>xx</code> den Index des jeweiligen Nachrichten-Elements angibt.
  41505. <br>
  41506. Beispiel f&uuml;r die Readings eines Nachrichten-Elements:<br>
  41507. <ul>
  41508. <code> N00_title </code><br/>
  41509. <code> N00_descripton </code><br/>
  41510. <code> N00_pubDate </code><br/>
  41511. </ul>
  41512. </li>
  41513. <li><code>f_</code><br>
  41514. Diese Readings beziehen sich alle auf den Nachrichten-Feed selbst.
  41515. <br>
  41516. Beispiel f&uuml;r die Readings des Nachrichten-Feeds<br>
  41517. <ul>
  41518. <code> f_title </code><br/>
  41519. <code> f_descripton </code><br/>
  41520. <code> f_buildDate </code><br/>
  41521. </ul>
  41522. </li>
  41523. <li><code>preparedLines</code><br>
  41524. Dieses Reading gibt an, wie viele Schlagzeilen tats&auml;chlich beim letzten
  41525. update aus dem Nachrichten-Feed extrahiert wurden.
  41526. </li>
  41527. <li>
  41528. <code>tickerToast</code><br/>
  41529. Dieses Reading ent&auml; die selben Daten, wie sie von der rssFeedGetTicker()
  41530. Funktion zur&uuml;ckgeliefert werden (if attribute rfDisplayTickerReadings is set)
  41531. <br>
  41532. Beispiel: <code>+++ Headline 1 +++ \n +++ Headline 2 +++ \n +++ Headline 3 +++ </code>
  41533. </li>
  41534. <li>
  41535. <code>tickerMarquee</code><br/>
  41536. Dieses Reading enth&auml;lt die Tickerdaten f&uuml;r "marquee"-artige Ticker,
  41537. also auf einer Zeile (if attribute rfDisplayTickerReadings is set)
  41538. <br>
  41539. Beispiel: <code>Headline 1 +++ Hadline 2 +++ Headline 3 +++</code>
  41540. </li>
  41541. <li><code>gzippedFeed</code><br>
  41542. Manche Feeds werden in gezippter (gzip) Form ausgeliefert. Das wird vom
  41543. Modul automatisch erkannt und die Daten im Bedarfsfall dekomprimiert.
  41544. Wurde beim letzten update der Feed in gezippter Form ausgeliefert, so wird
  41545. dieses Reading auf 1 gesetzt, andernfalls auf 0.
  41546. </li>
  41547. <li><code>state</code><br>
  41548. Dieses Reading gibt, wenn das Device nicht disabled ist, den Zeitpunkt
  41549. der letzten aktualisierung mittels update an, egal ob automatisch oder
  41550. manuell ausgel&ouml;st. Ist das device disabled, steht genau das im Reading.
  41551. Beim Anlegegen des Device mittels define findet das erste Aktualisieren
  41552. der Daten verz&ouml;gert statt. W&auml;hrend dieser Verz&ouml;gerung steht der state
  41553. auf "defined".
  41554. </li>
  41555. </ul><br>
  41556. </ul>
  41557. <p><a name="sequence"></a>
  41558. <h3>sequence</h3>
  41559. <div class='langLinks'>[<a href='commandref.html#sequence'>EN</a> DE]</div>
  41560. <ul>
  41561. <br>
  41562. <a name="sequencedefine"></a>
  41563. <b>Define</b>
  41564. <ul>
  41565. <code>define &lt;name&gt; sequence &lt;re1&gt; &lt;timeout1&gt;
  41566. &lt;re2&gt; [&lt;timeout2&gt; &lt;re3&gt; ...]</code>
  41567. <br><br>
  41568. Ein sequence kann verwendet werden, um ein neues Event zu generieren, wenn
  41569. eine bestimmte Folge von anderen Events in einem festgelegten Zeitraum
  41570. eingetroffen ist. Z.Bsp. um eine Lampe dann einzuschalten, falls Btn1:on,
  41571. dann Btn2:off und zum Schluss Btn1:on innerhalb einer Sekunde gedr&uuml;ckt
  41572. wurde, definiert man folgendes:<br>
  41573. <ul>
  41574. <code>
  41575. define lampseq sequence Btn1:on 0.5 Btn2:off 0.5 Btn1:on<br>
  41576. define lampon notify lampseq:trigger set lamp on
  41577. </code>
  41578. </ul>
  41579. Nachfolgende Regexps k&ouml;nnen den Namen des Ger&auml;tes weglassen, in
  41580. diesem Fall werden nur die Events des beim ersten Event eingetroffenen
  41581. Ger&auml;tes beachtet:
  41582. <br>
  41583. <ul>
  41584. <code>
  41585. define lampseq sequence Btn.:on 0.5 :off<br>
  41586. </code>
  41587. </ul>
  41588. <br>
  41589. Timeout kann als <code>&lt;delay&gt;:&lt;timeout&gt;</code> spezifiziert
  41590. werden, dabei setzt delay die Zeit, wo kein passendes Event empfangen
  41591. werden darf, ansonsten wird sequence abgebrochen. Das kann verwendet
  41592. werden, um "press and hold" auszuwerten. Folgendes
  41593. <ul>
  41594. <code>
  41595. define lampseq sequence Btn1:on 2:3 :off<br>
  41596. </code>
  41597. </ul>
  41598. ist nur erfolgreich, falls Btn1 zwischen 2 und 5 Sekunden lang gedr&uuml;ckt
  41599. wurde.
  41600. </ul>
  41601. <br>
  41602. <a name="sequenceset"></a>
  41603. <b>Set</b> <ul>N/A</ul><br>
  41604. <a name="sequenceget"></a>
  41605. <b>Get</b> <ul>N/A</ul><br>
  41606. <a name="sequenceattr"></a>
  41607. <b>Attributes</b>
  41608. <ul>
  41609. <li><a href="#disable">disable</a></li>
  41610. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  41611. <li><a href="#showtime">showtime</a></li>
  41612. <li><a href="#triggerPartial">triggerPartial</a><br>
  41613. Falls gesetzt (auf 1), und nicht alle erwarteten Events eingetroffen
  41614. sind, dann wird ein partial_X Event generiert, wobei X durch Anzahl der
  41615. eingetroffenen Events ersetzt wird. Beispiel:<br><code><ul>
  41616. fhem> define seq sequence d1:on 1 d1:on 1 d1:on<br>
  41617. fhem> attr seq triggerPartial<br>
  41618. fhem> set d1 on;; sleep 0.5;; set d1 on<br>
  41619. </ul></code>
  41620. erzeugt das Event "seq partial_2". Dies kann verwendet werden, um z.Bsp.
  41621. einer Taste unterschiedliche Aufgaben zuzuweisen, jenachdem wie oft sie
  41622. gedr&uuml;ckt wurde.
  41623. </li><br>
  41624. <li><a href="#reportEvents">reportEvents</a><br>
  41625. Falls gesetzt (auf 1), meldet trigger die empfangenen Events (Leerzeichen
  41626. getrennt) nach dem "trigger" oder "partial_X" Schl&uuml;sselwort.
  41627. Das kann verwendet werden, um generische sequence Instanzen zu definieren:
  41628. <br>
  41629. <ul><code>
  41630. define seq sequence remote:btn.* remote:btn.*<br>
  41631. attr seq reportEvents<br>
  41632. define n_b1b2 notify seq:trigger.remote:btn1.remote:btn2 set lamp1 on<br>
  41633. define n_b2b1 notify seq:trigger.remote:btn2.remote:btn1 set lamp1 off<br>
  41634. </code></ul>
  41635. </li>
  41636. </ul>
  41637. <br>
  41638. </ul>
  41639. <p><a name="siri"></a>
  41640. <h3>siri</h3>
  41641. <ul>
  41642. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  41643. hier: <a href='commandref.html#siri'>siri</a><br/>
  41644. </ul>
  41645. <a name="speedtest"></a>
  41646. <h3>speedtest</h3>
  41647. <ul>
  41648. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  41649. hier: <a href='commandref.html#speedtest'>speedtest</a><br/>
  41650. </ul>
  41651. <a name="statistics"></a>
  41652. <h3>statistics</h3>
  41653. <div class='langLinks'>[<a href='commandref.html#statistics'>EN</a> DE]</div>
  41654. <div>
  41655. <ul>
  41656. Dieses Modul wertet von den angegebenen Geräten (als regulärer Ausdruck) bestimmte Werte statistisch aus und fßgt das Ergebnis den jeweiligen Geräten als neue Werte hinzu.
  41657. <br>
  41658. Fßr detailierte Anleitungen bitte die <a href="http://www.fhemwiki.de/wiki/Statistics"><b>FHEM-Wiki</b></a> konsultieren und ergänzen.
  41659. <br>&nbsp;
  41660. <br>
  41661. Es unterscheidet in vier Statistik-Typen denen bereits standardmä�ig Gerätewerte zugeordnet sind:
  41662. <ul>
  41663. <li><b>Min|Avg|Max</b> Minimum, Durchschnitt und Maximum von Momentanwerten:
  41664. <br>
  41665. Ăźber den Zeitraum Tag, Monat und Jahr:
  41666. <br>
  41667. <i>current, energy_current, humidity, luminosity, temperature, voltage, etc.</i>
  41668. <br>
  41669. Ăźber den Zeitraum Stunde, Tag, Monat und Jahr:
  41670. <br>
  41671. <i>brightness, wind, wind_speed, windSpeed, etc.</i>
  41672. </li><br>
  41673. <li><b>Tendency</b> Tendenz Ăźber 1h, 2h, 3h und 6h: <i>pressure</i>
  41674. </li><br>
  41675. <li><b>Delta</b> Differenz zwischen Anfangs- und Endwerte innerhalb eines Zeitraums (Stunde, Tag, Monat, Jahr):
  41676. <br>
  41677. <i>count, energy, energy_total, power, total, rain, rain_rate, rain_total, etc.</i>
  41678. </li><br>
  41679. <li><b>Duration</b> Dauer und Anzahl der Zustände (on, off, open, closed...) innerhalb eines Zeitraums (Tag, Monat, Jahr):
  41680. <br>
  41681. <i>lightsensor, lock, motion, Window, window, state (wenn kein anderer Gerätewert gßltig)</i>
  41682. </li><br>
  41683. </ul>
  41684. �ber die <a href="#statisticsattr">Attribute</a> <code>deltaReadings, durationReadings, minAvgMaxReadings, tendencyReadings</code> kÜnnen weitere Gerätewerte hinzugefßgt oder einem anderen Statistik-Typ zugeordnet werden.
  41685. <br>&nbsp;
  41686. <br>
  41687. <b>Define</b>
  41688. <ul>
  41689. <br>
  41690. <code>define &lt;Name&gt; statistics &lt;GeräteNameRegExp&gt; [Prefix]</code>
  41691. <br>
  41692. Beispiel: <code>define Statistik statistics Wettersensor|Badsensor</code>
  41693. <br>&nbsp;
  41694. <li><code>&lt;GeräteNameRegExp&gt;</code>
  41695. <br>
  41696. Regulärer Ausdruck fßr den Gerätenamen. <b>!!! Nicht die Gerätewerte !!!</b>
  41697. </li><br>
  41698. <li><code>[Prefix]</code>
  41699. <br>
  41700. Optional. Der Prefix wird vor den Namen der statistischen Gerätewerte gesetzt. Standardmä�ig <i>stat</i>
  41701. </li><br>
  41702. </ul>
  41703. <br>
  41704. <b>Set</b>
  41705. <ul>
  41706. <br>
  41707. <li><code>resetStatistics &lt;All|Gerätename&gt;</code>
  41708. <br>
  41709. Setzt die Statistiken der ausgewählten Geräte zurßck.
  41710. </li><br>
  41711. <li><code>doStatistics</code>
  41712. <br>
  41713. Berechnet die aktuellen Statistiken aller beobachteten Geräte.
  41714. </li><br>
  41715. </ul>
  41716. <br>
  41717. <b>Get</b>
  41718. <ul>nicht implementiert
  41719. </ul>
  41720. <br>
  41721. <a name="statisticsattr"></a>
  41722. <b>Attributes</b>
  41723. <ul>
  41724. <br>
  41725. <li><code>dayChangeTime &lt;Zeit&gt;</code>
  41726. <br>
  41727. Uhrzeit des Tageswechsels. Standardmä�ig 00:00. Bei Wetterdaten kann der Tageswechsel z.B. auf 6:50 gesetzt werden.
  41728. </li><br>
  41729. <li><code>deltaReadings &lt;Gerätewerte&gt;</code>
  41730. <br>
  41731. Durch Kommas getrennte Liste von weiteren Gerätewerten, fßr welche die Differenz zwischen den Werten am Anfang und Ende einer Periode (Stunde/Tag/Monat/Jahr) bestimmt wird.
  41732. </li><br>
  41733. <li><code>durationPeriodHour &lt; 1 | 0 &gt;</code>
  41734. <br>
  41735. Wenn auf 1 gesetzt, dann werden fĂźr "durationReadings" auch stĂźndliche Statistiken gebildet.
  41736. </li><br>
  41737. <li><code>durationReadings &lt;Gerätewerte&gt;</code>
  41738. <br>
  41739. Durch Kommas getrennte Liste von weiteren Gerätewerten, fßr welche die Dauer einzelner Gerätewerte innerhalb bestimmte Zeiträume (Stunde/Tag/Monat/Jahr) erfasst wird.
  41740. </li><br>
  41741. <li><code>excludedReadings &lt;GerätenameRegExp:GerätewertRegExp&gt;</code>
  41742. <br>
  41743. Regulärer Ausdruck der Gerätewerte die nicht ausgewertet werden sollen.
  41744. z.B. <code>FritzDect:current|Sensor_.*:humidity</code>
  41745. <br>
  41746. </li><br>
  41747. <li><code>ignoreDefaultAssignments <code>&lt;0 | 1&gt;</code></code>
  41748. <br>
  41749. Ignoriert die Standardzuordnung von Gerätewerten zu Statistik-Typen..<br>
  41750. D.h., nur die Gerätewerte, die ßber Attribute den Statistik-Typen zugeordnet sind, werden ausgewertet.
  41751. <br>
  41752. </li><br>
  41753. <li><code>hideAllSummaryReadings &lt;0 | 1&gt;</code>
  41754. <br>
  41755. noch nicht implementiert - Es werden keine gesammelten Statistiken angezeigt, sondern nur die unter "singularReadings" definierten Einzelwerte
  41756. </li><br>
  41757. <li><code>minAvgMaxReadings &lt;Gerätewerte&gt;</code>
  41758. <br>
  41759. Durch Kommas getrennte Liste von Gerätewerten, fßr die in bestimmten Zeiträumen (Tag, Monat, Jahr) Minimum, Mittelwert und Maximum erfasst werden.
  41760. </li><br>
  41761. <li><code>periodChangePreset &lt;Sekunden&gt;</code>
  41762. <br>
  41763. Start der Berechnung der periodischen Daten, standardmä�ig 5 Sekunden vor der vollen Stunde,
  41764. <br>
  41765. Erlaubt die korrekte zeitliche Zuordnung in Plots, kann je nach Systemauslastung verringert oder vergr�ert werden.
  41766. <br>
  41767. </li><br>
  41768. <li><code>singularReadings &lt;GerätRegExp:GeräteWertRegExp:Statistiktyp:Zeitraum&gt;</code>
  41769. <ul>
  41770. <li>Statistik-Typ: Min|Avg|Max|Delta|<i>DurationState</i>|<span style="color:blue;">Tendency</span></li>
  41771. <li>Zeitraum: Hour|Day|Month|Year|<span style="color:blue;">1h|2h|3h|6h</span></li>
  41772. </ul>
  41773. Regulärer Ausdruck statistischer Werte, die <u>zusätzlich</u> auch als einzelne Werte gespeichert werden sollen.
  41774. Erleichtert die Erzeugung von Plots und anderer Auswertungen (notify).
  41775. <br>
  41776. Fßr "duration"-Gerätewerte muss der Name des jeweiligen Statuswertes als <code>Statistiktyp</code> eingesetzt werden.
  41777. <dt>Beispiel:</dt>
  41778. <dd>
  41779. <code>Wettersensor:rain:Delta:(Hour|Day)|FritzDect:power:Delta:Day</code>
  41780. <br>
  41781. <code>Wettersensor:rain:Delta:(Hour|Day)|FritzDect:power:Delta:Day</code>
  41782. </dd>
  41783. </li><br>
  41784. <li><code>specialDeltaPeriods &lt;Gerät:Gerätewert:Zeitraum:Anzahl1:Anzahl2:...&gt;</code>
  41785. <br>
  41786. Erzeugt fßr die angegebenen "delta"-Gerätewerte zusätzliche Einzelwerte ßber die angegebene Anzahl eines Zeitraums (Hour, Day, Month).
  41787. <br>
  41788. Reguläre Ausdrßcke kÜnnen <u>nicht</u> genutzt werden. Es kÜnnen auch mehrere Gerätewert und/oder Zeiträume hinzugefßgt werden. Diese mßssen durch Kommas (ohne Leerzeichen) getrennt werden.
  41789. <br>
  41790. <dt>Beispiel:</dt>
  41791. <dd>
  41792. <code>attr Statistik specialDeltaPeriods Wettersensor:rain:Hour:06:72:96</code>
  41793. <br>
  41794. Dies erzeugt 3 zusätzliche Werte fßr die Regenmenge in den letzten 6, 72, 96 Stunden.
  41795. <br>
  41796. <code>attr Statistik specialDeltaPeriods Wettersensor:rain:Hour:48,Wettersensor:rain:Day:30,EZaehler:energy:Month:6:12</code>
  41797. <br>
  41798. Dies erzeugt 4 zusätzliche Werte fßr die Regenmenge in den letzten 48 Stunden und den letzten 30 Tagen und den Energieverbrauch der letzten 6 und 12 Monate.
  41799. </dd>
  41800. </li><br>
  41801. <li><code>specialDeltaPeriodHours</code>
  41802. <br>
  41803. veraltet
  41804. </li><br>
  41805. <li><code>tendencyReadings &lt;Gerätewerte&gt;</code>
  41806. <br>
  41807. Durch Kommas getrennte Liste von weiteren Gerätewerten, fßr die innerhalb bestimmter Zeiträume (1h, 2h, 3h, 6h) die Differenz zwischen Anfangs- und Endwert ermittelt wird.
  41808. </li><br>
  41809. <li><a href="#readingFnAttributes">readingFnAttributes</a>
  41810. </li><br>
  41811. </ul>
  41812. </ul>
  41813. </div>
  41814. <p><a name="structure"></a>
  41815. <h3>structure</h3>
  41816. <div class='langLinks'>[<a href='commandref.html#structure'>EN</a> DE]</div>
  41817. <ul>
  41818. <br>
  41819. <a name="structuredefine"></a>
  41820. <b>Define</b>
  41821. <ul>
  41822. <code>define &lt;name&gt; structure &lt;struct_type&gt; &lt;dev1&gt;
  41823. &lt;dev2&gt; ...</code> <br><br>
  41824. Mit dem Device "Structure" werden Strukturen/Zusammenstellungen von anderen
  41825. Devices erstellt um sie zu Gruppen zusammenzufassen. (Beispiel: im Haus
  41826. alles ausschalten) <br>
  41827. Die Liste der Devices die einer Struktur zugeordnet sind kann duch das
  41828. Kommando <code>addstruct / delstruct</code> im laufenden Betrieb
  41829. ver&auml;ndert werden. Es k&ouml;nnen sowohl einzelne Devices als auch
  41830. Gruppen von Devices (TYPE=FS20) zugef&uuml;gt werden. Jedes zugef&uuml;gt
  41831. Device erh&auml;lt zwei neue Attribute &lt;struct_type&gt;=&lt;name&gt;
  41832. sowie &lt;struct_type&gt;_map wenn es zu einer Struktur zugef&uuml;gt
  41833. wurde. Diese Attribute werden wieder automatisch entfernt, sobald das
  41834. Device von der Struktur entfernt wird.<br>
  41835. Eine Struktur kann ebenfalls zu einer anderen Struktur zugef&uuml;gt
  41836. werden. Somit k&ouml;nnen z b. kaskadierende Strukturen erstellt werden.
  41837. (Z.b. KG,EG,OG, Haus)
  41838. Beispiel:<br>
  41839. <ul>
  41840. <li>define Kueche structure room lampe1 lampe2</li>
  41841. <li>addstruct Kueche TYPE=FS20</li>
  41842. <li>delstruct Kueche lampe1</li>
  41843. <li>define house structure building kitchen living</li>
  41844. <li>set house off</li>
  41845. </ul>
  41846. <br>
  41847. </ul>
  41848. <br>
  41849. <a name="structureset"></a>
  41850. <b>Set</b>
  41851. <ul>
  41852. <li>saveStructState &lt;readingName&gt;<br>
  41853. Der Status (genauer: state Reading) aller Mitglieder wird im angegebenen
  41854. Reading Komma separiert gespeichert.
  41855. </li><br>
  41856. <li>restoreStructState &lt;readingName&gt;<br>
  41857. Der Status der Mitglieder wird aus dem angegebenen Reading gelesen, und
  41858. via "set Mitgliedsname StatusWert" gesetzt.
  41859. </li><br>
  41860. Jedes andere set Kommando wird an alle Devices dieser Struktur
  41861. weitergegeben.<br>
  41862. Aussnahme: das Attribut structexclude ist in einem Device definiert und
  41863. dessen Attributwert matched als Regexp zum Namen der aktuellen
  41864. Struktur.<br> Wenn das set Kommando diese Form hat <code>set
  41865. &lt;structure&gt; [FILTER=&lt;filter&gt;] &lt;type-specific&gt;</code> wird
  41866. :FILTER=&lt;filter&gt; bei der Weitergebe der set an jeden Devicenamen wie
  41867. folgt angeh&auml;ngt: <code>set &lt;devN&gt;:FILTER=&lt;filter&gt;
  41868. &lt;type-specific&gt;</code><br>
  41869. Falls der letzte Parameter reverse ist, dann werden die Befehle in der
  41870. umgekehrten Reihenfolge ausgef&uuml;hrt.
  41871. </ul>
  41872. <br>
  41873. <a name="structureget"></a>
  41874. <b>Get</b>
  41875. <ul>
  41876. Get wird im Structur-Device nicht unterst&uuml;tzt.
  41877. </ul>
  41878. <br>
  41879. <a name="structureattr"></a>
  41880. <b>Attribute</b>
  41881. <ul>
  41882. <a name="async_delay"></a>
  41883. <li>async_delay<br>
  41884. Wenn dieses Attribut gesetzt ist, werden ungefilterte set Kommandos nicht
  41885. sofort an die Clients weitergereicht. Stattdessen werden sie einer
  41886. Warteschlange hinzugef&uuml;gt, um sp&auml;ter ausgef&uuml;hrt zu werden.
  41887. Das set Kommando kehrt sofort zur&uuml;ck, die Clients werden danach
  41888. timer-gesteuert einzeln abgearbeitet. Die Zeit zwischen den
  41889. Timer-Aufrufen ist dabei durch den Wert von async_delay (in Sekunden)
  41890. gegeben, ein Wert von 0 entspricht der schnellstm&ouml;glichen Abfolge.
  41891. So k&ouml;nnen besonders lange Verz&ouml;gerungen, die gerade bei
  41892. gro&szlig;en structures vorkommen k&ouml;nnen, in unproblematischere
  41893. H&auml;ppchen zerlegt werden.
  41894. </li>
  41895. <li><a href="#disable">disable</a></li>
  41896. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  41897. <a name="clientstate_behavior"></a>
  41898. <li>clientstate_behavior<br>
  41899. Der Status einer Struktur h&auml;ngt von den Status der zugef&uuml;gten
  41900. Devices ab. Dabei wird das propagieren der Status der Devices in zwei
  41901. Gruppen klassifiziert und mittels diesem Attribut definiert:
  41902. <ul>
  41903. <li>absolute<br>
  41904. Die Struktur wird erst dann den Status der zugef&uuml;gten Devices
  41905. annehmen, wenn alle Devices einen identischen Status vorweisen. Bei
  41906. unterschiedlichen Devictypen kann dies per Attribut
  41907. &lt;struct_type&gt;_map pro Device beinflusst werden. Andernfalls hat
  41908. die Struktur den Status "undefined".
  41909. </li>
  41910. <li>relative<br>
  41911. S.u. clientstate_priority.
  41912. </li>
  41913. <li>relativeKnown<br>
  41914. wie relative, reagiert aber nicht auf unbekannte, in
  41915. clientstate_priority nicht beschriebene Ereignisse. Wird f&uuml;r
  41916. HomeMatic Ger&auml;te ben&ouml;tigt.
  41917. </li>
  41918. <li>last<br>
  41919. Die Struktur &uuml;bernimmt den Status des zuletzt ge&auml;nderten
  41920. Ger&auml;tes.
  41921. </li>
  41922. </ul>
  41923. </li>
  41924. <a name="clientstate_priority"></a>
  41925. <li>clientstate_priority<br>
  41926. Wird die Struktur auf ein relatives Verhalten eingestellt, so wird die
  41927. Priorit&auml;t der Devicestatus &uuml;ber das Attribut
  41928. <code>clientstate_priority</code> beinflusst. Die Priorit&auml;ten sind
  41929. in absteigender Reihenfolge anzugeben. Dabei k&ouml;nnen Gruppen mit
  41930. identischer Priorit&auml;t angegeben werden, um zb. unterschiedliche
  41931. Devicetypen zusammenfassen zu k&ouml;nnen. Jede Gruppe wird durch
  41932. Leerzeichen oder /, jeder Eintrag pro Gruppe durch Pipe getrennt. Der
  41933. Status der Struktur ist der erste Eintrag in der entsprechenden Gruppe.
  41934. <br>Beispiel:
  41935. <ul>
  41936. <li>attr kueche clientstate_behavior relative</li>
  41937. <li>attr kueche clientstate_priority An|On|on Aus|Off|off</li>
  41938. <li>attr haus clientstate_priority Any_On|An All_Off|Aus</li>
  41939. </ul>
  41940. In diesem Beipiel nimmt die Struktur <code>kueche</code>entweder den
  41941. Status <code>An</code> oder <code>Aus</code> an. Die Struktur
  41942. <code>haus</code> nimmt entweder den Status <code>Any_on</code> oder
  41943. <code>All_off</code> an. Sobald ein Device der Struktur
  41944. <code>haus</code> den Status <code>An</code> hat nimmt die Struktur den
  41945. Status <code>Any_On</code> an. Um dagegen den Status <code>All_off</code>
  41946. anzunehmen, m&uuml;ssen alle Devices dieser Struktur auf <code>off</code>
  41947. stehen.
  41948. </li>
  41949. <li>&lt;struct_type&gt;_map<br>
  41950. Mit diesem Attribut, das dem Struktur-<b>Mitglied</b> zugewiesen werden
  41951. muss, koennen die Werte, die die einzelnen Struktur- Mitglieder melden,
  41952. umdefiniert werden, damit man unterschiedliche Geraeteklassen
  41953. zusammenfassen kann. Es existieren drei Varianten:
  41954. <ul>
  41955. <li>readingName<br>
  41956. nehme den Wert von readingName anstatt von state
  41957. </li>
  41958. <li>oldVal:newVal<br>
  41959. falls der Wert der state Reading oldVal (als regex) ist, dann ersetze
  41960. diesen mit newVal.
  41961. </li>
  41962. <li>readingName:oldVal:newVal<br>
  41963. falls der Wert der readingName oldVal (als regex) ist, dann ersetze
  41964. diesen mit newVal.
  41965. </li>
  41966. </ul>
  41967. Beispiel:<br>
  41968. <ul>
  41969. <li>define tuer OWSWITCH &lt;ROMID&gt</li>
  41970. <li>define lampe1 dummy</li>
  41971. <li>attr lampe1 cmdlist on off</li>
  41972. <li>define kueche structure struct_kitchen lamp1 door</li>
  41973. <li>attr kueche clientstate_priority An|on OK|Aus|off</li>
  41974. <li>attr lampe1 struct_kitchen_map on:An off:Aus</li>
  41975. <li>attr tuer struct_kitchen_map A:open:on A:closed:off</li>
  41976. <li>attr tuer2 struct_kitchen_map A</li>
  41977. </ul>
  41978. </li>
  41979. <a name="evaluateSetResult"></a>
  41980. <li>evaluateSetResult<br>
  41981. Falls ein set Befehl den Status der Struktur-Mitglieder auf was
  41982. unterschiedliches setzt (wie z.Bsp. beim set statusRequest), dann muss
  41983. dieses Attribut auf 1 gesetzt werden, wenn die Struktur Instanz diesen
  41984. neuen Status auswerten soll.
  41985. </li>
  41986. <li>setStateIndirectly<br>
  41987. Falls wahr (1), dann wird der Status der Struktur nur aus dem
  41988. Statusmeldungen der Mitglied-Ger&auml;te bestimmt, sonst wird zuerst der
  41989. Status auf dem set Argument gesetzt. Die Voreinstellung ist 0.
  41990. </li>
  41991. <li>setStructType<br>
  41992. Falls wahr (1), &lt;struct-type&gt; wird als Attribute f&uuml;r jedes
  41993. Mitglied-Ger&auml;t auf dem Namen der Struktur gesetzt.
  41994. Wahr ist die Voreinstellung f&uuml;r featurelevel <= 5.8.
  41995. </li>
  41996. <li>structexclude<br>
  41997. Bei gesetztem Attribut wird set, attr/deleteattr ignoriert. Dies
  41998. trifft ebenfalls auf die Weitergabe des Devicestatus an die Struktur zu.
  41999. Fuer set und fuer die Status-Weitergabe muss der Wert den Strukturnamen
  42000. matchen, bei einem Attribut-Befehl die Kombination
  42001. Strukturname:Attributname.
  42002. Beispiel:
  42003. <ul>
  42004. <code>
  42005. define kitchen structure room lamp1 lamp2<br>
  42006. attr lamp1 structexclude kitchen<br>
  42007. attr lamp1 structexclude kitchen:stateFormat<br>
  42008. </code>
  42009. </ul>
  42010. </li>
  42011. <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
  42012. </ul>
  42013. <br>
  42014. </ul>
  42015. <p><a name="systemd_watchdog"></a>
  42016. <h3>Systemd Watchdog Client</h3>
  42017. <div class='langLinks'>[<a href='commandref.html#systemd_watchdog'>EN</a> DE]</div>
  42018. <ul>
  42019. <p>
  42020. Systemd erlaubt Ueberwachung von Programmen mittels eines Watchdogs.
  42021. Sendet der Prozess innerhalnb eines definierten Interval kein 'Lebenszeichen',
  42022. wird dieser gestoppt und neu gestartet.
  42023. Dieses Modul sendet periodisch eine keep-alive Nachricht an das Systemd-Watchdog.
  42024. </p>
  42025. <p>
  42026. FHEM muss unter Kontrolle von Systemd laufen und Watchdog muss korrekt konfiguriert sein.<br/>
  42027. Folgendes Script kann benutzt werden:<br/>
  42028. <code>
  42029. [Unit]<br/>
  42030. Description=FHEM Home Automation<br/>
  42031. Requires=network.target<br/>
  42032. #After=network.target<br/>
  42033. After=dhcpcd.service<br/>
  42034. <br/>
  42035. [Service]<br/>
  42036. Type=forking<br/>
  42037. NotifyAccess=all<br/>
  42038. User=fhem<br/>
  42039. Group=dialout<br/>
  42040. # Run ExecStartPre with root-permissions<br/>
  42041. PermissionsStartOnly=true<br/>
  42042. ExecStartPre=-/bin/mkdir -p /var/run/fhem<br/>
  42043. ExecStartPre=/bin/chown -R fhem:dialout /var/run/fhem<br/>
  42044. # Run ExecStart with defined user and group<br/>
  42045. WorkingDirectory=/opt/fhem<br/>
  42046. ExecStart=/usr/bin/perl fhem.pl fhem.cfg<br/>
  42047. #ExecStart=/usr/bin/perl fhem.pl configDB<br/>
  42048. TimeoutStartSec=240<br/>
  42049. TimeoutStopSec=120<br/>
  42050. #ExecStop=/usr/bin/pkill -U fhem perl<br/>
  42051. ExecStop=/usr/bin/pkill -f -U fhem "fhem.pl fhem.cfg"<br/>
  42052. # Restart options: no, on-success, on-failure, on-abnormal, on-watchdog, on-abort, or always.<br/>
  42053. Restart=on-failure<br/>
  42054. RestartSec=3<br/>
  42055. WatchdogSec=180<br/>
  42056. PIDFile=/var/run/fhem/fhem.pid<br/>
  42057. <br/>
  42058. [Install]<br/>
  42059. WantedBy=multi-user.target<br/>
  42060. </code><br/>
  42061. Das Script kann unter "/etc/systemd/system/fhem.service" angelegt werden.
  42062. Mit "sudo systemctl daemon-reload" wird sysgtemd-Konfiguration erneuert.
  42063. Anschliessend kann FHEM mit folgendem Befehl gestartet werden: "sudo systemctl start fhem.service".
  42064. <br/>
  42065. Wenn in dem Script "Type=notify" verwendet wird, muss global Attribute "nofork=1" gesetzt sein.<br/>
  42066. <code>attr global nofork 1</code><br/>
  42067. Bei "Type=forking" muss in Script der korrekte Pfad zu dem PID-Datei angegeben werden,
  42068. diese Datei muss auch in FHEM mit dem global Attribute "pidfilename" aktiviert sein.<br/>
  42069. <code>attr global pidfilename /var/run/fhem/fhem.pid</code><br/>
  42070. </p>
  42071. <a name="MQTTdefine"></a>
  42072. <p><b>Define</b></p>
  42073. <ul>
  42074. <p><code>define &lt;name&gt; systemd_watchdog</code></p>
  42075. <p>Specifies the device.</p>
  42076. </ul>
  42077. </ul>
  42078. <p><a name="tahoma"></a>
  42079. <h3>tahoma</h3>
  42080. <ul>
  42081. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  42082. hier: <a href='commandref.html#tahoma'>tahoma</a><br/>
  42083. </ul>
  42084. <a name="telnet"></a>
  42085. <h3>telnet</h3>
  42086. <div class='langLinks'>[<a href='commandref.html#telnet'>EN</a> DE]</div>
  42087. <ul>
  42088. <br>
  42089. <a name="telnetdefine"></a>
  42090. <b>Define</b>
  42091. <ul>
  42092. <code>define &lt;name&gt; telnet &lt;portNumber&gt;
  42093. [global|hostname]</code><br> oder<br>
  42094. <code>define &lt;name&gt; telnet &lt;servername&gt;:&lt;portNummer&gt;</code>
  42095. <br><br>
  42096. Erste Form, <b>Server</b>-mode:<br>
  42097. &Uuml;berwacht den TCP/IP-Port <code>&lt;portNummer&gt;</code> auf
  42098. ankommende Verbindungen. Wenn der zweite Parameter <b>nicht</b>
  42099. angegeben wird, wird der Server nur auf Verbindungen von localhost achten.
  42100. Falls der zweite Parameter global ist, dann wird telnet auf allen lokalen
  42101. Netzwerk-Interfaces zuh&ouml;ren, ansonsten wird der Parameter als Hostname
  42102. oder Adresse interpretiert, und nur diese lokale Adresse bedient.
  42103. <br>
  42104. F&uuml;r den Gebrauch von IPV6 muss die Portnummer als IPV6:&lt;nummer&gt;
  42105. angegeben werden, in diesem Fall wird das Perl-Modul IO::Socket:INET6
  42106. angesprochen. Unter Linux kann es sein, dass dieses Modul mittels cpan -i
  42107. IO::Socket::INET6 oder apt-get libio-socket-inet6-perl nachinstalliert werden
  42108. muss; OSX und Fritzbox-7390 enthalten bereits dieses Modul.<br>
  42109. Beispiele:
  42110. <ul>
  42111. <code>define tPort telnet 7072 global</code><br>
  42112. <code>attr tPort SSL</code><br>
  42113. <code>attr allowed_tPort allowed</code><br>
  42114. <code>attr allowed_tPort validFor tPort</code><br>
  42115. <code>attr allowed_tPort globalpassword mySecret</code><br>
  42116. </ul>
  42117. Hinweis: Das alte (pre 5.3) "global attribute port" wird automatisch in
  42118. eine telnet-Instanz mit dem Namen telnetPort umgewandelt. Im Rahmen dieser
  42119. Umwandlung geht das globale Attribut allowfrom verloren.
  42120. <br><br>
  42121. Zweite Form, <b>Client</b>-mode:<br>
  42122. Verbindet zu einem angegebenen Server-Port und f&uuml;hrt die von dort aus
  42123. empfangenen Anweisungen - genau wie im Server-mode - aus. Dies kann
  42124. verwendet werden, um sich mit einer fhem-Instanz, die sich hinter einer
  42125. Firewall befindet, zu verbinden, f&uuml;r den Fall, wenn das Installieren
  42126. von Ausnahmen in der Firewall nicht erw&uuml;nscht oder nicht m&ouml;glich
  42127. sind. Hinweis: Dieser Client-mode unterst&uuml;tzt zwar SSL, aber nicht
  42128. IPV6.<br>
  42129. Beispiel:
  42130. <ul>
  42131. Starten von tcptee auf einem &ouml;ffentlich erreichbaren Host ausserhalb
  42132. der Firewall:<ul>
  42133. <code>perl contrib/tcptee.pl --bidi 3000</code></ul>
  42134. Konfigurieren von fhem innerhalb der Firewall:<ul>
  42135. <code>define tClient telnet &lt;tcptee_host&gt;:3000</code></ul>
  42136. Verbinden mit fhem (hinter der Firewall) von ausserhalb der Firewall:<ul>
  42137. <code>telnet &lt;tcptee_host&gt; 3000</code></ul>
  42138. </ul>
  42139. </ul>
  42140. <br>
  42141. <a name="telnetset"></a>
  42142. <b>Set</b> <ul>N/A</ul><br>
  42143. <a name="telnetget"></a>
  42144. <b>Get</b> <ul>N/A</ul><br>
  42145. <a name="telnetattr"></a>
  42146. <b>Attribute</b>
  42147. <ul>
  42148. <a name="prompt"></a>
  42149. <li>prompt<br>
  42150. Gibt die Zeichenkette an, welche in der Telnet-Sitzung als
  42151. Kommandoprompt ausgegeben wird. Die Voreinstellung ist fhem&gt;
  42152. </li><br>
  42153. <a name="SSL"></a>
  42154. <li>SSL<br>
  42155. SSL-Verschl&uuml;sselung f&uuml;r eine Verbindung aktivieren. <a
  42156. href="#HTTPS">Hier</a> gibt es eine Beschreibung, wie das erforderliche
  42157. SSL-Zertifikat generiert werden kann. Um eine Verbindung mit solch
  42158. einem Port herzustellen, sind folgende Befehle m&ouml;glich:
  42159. <ul>
  42160. <code>
  42161. socat openssl:fhemhost:fhemport,verify=0 readline<br>
  42162. ncat --ssl fhemhost fhemport<br>
  42163. openssl s_client -connect fhemhost:fhemport<br>
  42164. </code>
  42165. </ul>
  42166. </li><br>
  42167. <a name="allowfrom"></a>
  42168. <li>allowfrom<br>
  42169. Regexp der erlaubten IP-Adressen oder Hostnamen. Wenn dieses Attribut
  42170. gesetzt wurde, werden ausschlie&szlig;lich Verbindungen von diesen
  42171. Adressen akzeptiert.<br>
  42172. Achtung: falls allowfrom nicht gesetzt ist, und keine g&uuml;tige
  42173. allowed Instanz definiert ist, und die Gegenstelle eine nicht lokale
  42174. Adresse hat, dann wird die Verbindung abgewiesen. Folgende Adressen
  42175. werden als local betrachtet:
  42176. <ul>
  42177. IPV4: 127/8, 10/8, 192.168/16, 172.16/10, 169.254/16<br>
  42178. IPV6: ::1, fe80/10<br>
  42179. </ul>
  42180. </li><br>
  42181. <a name="connectTimeout"></a>
  42182. <li>connectTimeout<br>
  42183. Gibt die maximale Wartezeit in Sekunden an, in der die Verbindung
  42184. aufgebaut sein muss. Standardwert ist 2.
  42185. </li><br>
  42186. <a name="connectInterval"></a>
  42187. <li>connectInterval<br>
  42188. Gibt die Dauer an, die entweder nach Schlie&szlig;en einer Verbindung
  42189. oder f&uuml;r den Fall, dass die Verbindung nicht zustande kommt,
  42190. gewartet werden muss, bis ein erneuter Verbindungsversuch gestartet
  42191. werden soll. Standardwert ist 60.
  42192. </li><br>
  42193. <a name="encoding"></a>
  42194. <li>encoding<br>
  42195. Bezeichnet die Zeichentabelle f&uuml;r die zum Client gesendeten Daten.
  42196. M&ouml;gliche Werte sind utf8 und latin1. Standardwert ist utf8.
  42197. </li><br>
  42198. <li>sslVersion<br>
  42199. Siehe das global Attribut sslVersion.
  42200. </li><br>
  42201. <li>sslCertPrefix<br>
  42202. Setzt das Pr&auml;fix der SSL-Zertifikate, die Voreinstellung ist
  42203. certs/server-, siehe auch das SSL Attribut.
  42204. </li><br>
  42205. </ul>
  42206. </ul>
  42207. <p><a name="template"></a>
  42208. <h3>template</h3>
  42209. <div class='langLinks'>[<a href='commandref.html#template'>EN</a> DE]</div>
  42210. <ul>
  42211. <code>template [use|show] &lt;filename&gt; [&lt;param1&gt;=&lt;value1&gt; [&lt;param2&gt;=&lt;value2&gt; [...]]]</code>
  42212. <br><br>
  42213. Includes a file with parameter substitution, i.e. read the file and process every line as a FHEM command.
  42214. For any given parameter/value pair <code>&lt;param&gt;=&lt;value&gt;</code> on the command line,
  42215. a literal <code>%&lt;param&gt;%</code> in the file is replaced by &lt;value&gt; before executing the command.<br><br>
  42216. This can be used to to code recurring definitions of one or several devices only once and use it many times.
  42217. <code>template show ..</code> shows what would be done, including a parameter listing, while
  42218. <code>template use ...</code> actually does the job. The word <code>use</code> can be omitted.<br><br>
  42219. <b>Example</b><br><br>
  42220. File <i>H.templ</i>:<br><br>
  42221. <code>
  42222. define %name% FHT %fhtcode%<br>
  42223. attr %name% IODev CUN<br>
  42224. attr %name% alias %alias%<br>
  42225. attr %name% group %group%<br>
  42226. attr %name% icon icoTempHeizung.png<br>
  42227. attr %name% room %room%,Anlagen/Heizungen<br>
  42228. <br>
  42229. define watchdog.%name% watchdog %name% 00:15:00 SAME set %name% report2 255<br>
  42230. attr watchdog.%name% group %group%<br>
  42231. attr watchdog.%name% room Control/Heizungen<br>
  42232. <br>
  42233. define %name%.log FileLog /opt/fhem/log/%name%-%Y%m.log %name%:.*<br>
  42234. attr %name%.log group %group%<br>
  42235. attr %name%.log icon icoLog.png<br>
  42236. attr %name%.log logtype fht<br>
  42237. attr %name%.log room Control/Heizungen<br>
  42238. <br>
  42239. define %name%.weblink SVG %name%.log:%name%:CURRENT<br>
  42240. attr %name%.weblink label sprintf("Temperatur: %.0f °C (%.0f °C .. %.0f °C) Aktor: %.0f %% (%.0f %% .. %.0f %%)", $data{currval1}, $data{min1}, $data{max1}, $data{currval2}, $data{min2}, $data{max2} )<br>
  42241. attr %name%.weblink room %room%<br>
  42242. attr %name%.weblink alias %alias%<br>
  42243. </code><br><br>
  42244. Configuration:<br><br>
  42245. <code>te H.templ name=3.dz.hzg fhtcode=3f4a alias=Dachzimmerheizung group=Heizung room=Dachzimmer</code><br><br>
  42246. Please note that although %Y% in the FileLog definition looks like a parameter, it is not substituted since no parameter
  42247. Y is given on the command line. You get detailed information at verbosity level 5 when you run the command.
  42248. </ul>
  42249. <p><a name="update"></a>
  42250. <h3>update</h3>
  42251. <div class='langLinks'>[<a href='commandref.html#update'>EN</a> DE]</div>
  42252. <ul>
  42253. <code>update [&lt;fileName&gt;|all|check|checktime|force]
  42254. [http://.../controlfile]</code>
  42255. <br>oder<br>
  42256. <code>update [add source|delete source|list|reset]</code>
  42257. <br>
  42258. <br>
  42259. Erneuert die FHEM Installation. D.h. es wird (werden) zuerst die
  42260. Kontroll-Datei(en) heruntergeladen, und mit der lokalen Version dieser Datei
  42261. in moddir/FHEM verglichen. Danach werden alle in der Kontroll-Datei
  42262. spezifizierten Dateien heruntergeladen, deren Gr&ouml;&szlig;e oder
  42263. Zeitstempel sich unterscheidet. Wenn dieser Ablauf abgeschlossen ist, wird
  42264. das globale UPDATE Ereignis ausgel&ouml;st.
  42265. <br>
  42266. Mit den Befehlen add/delete/list/reset kann man die Liste der Kontrolldateien
  42267. pflegen.
  42268. <br>
  42269. <br>
  42270. Zu beachten:
  42271. <ul>
  42272. <li>Das contrib Verzeichnis wird nicht heruntergeladen.</li>
  42273. <li>Die Dateien werden auf der Webseite einmal am Tag um 07:45 MET/MEST aus
  42274. der Quell-Verwaltungssystem (SVN) bereitgestellt.</li>
  42275. <li>Das all Argument ist die Voreinstellung.</li>
  42276. <li>Das force Argument beachtet die lokale controls_fhem.txt Datei
  42277. nicht.</li>
  42278. <li>Das check Argument zeigt die neueren Dateien an, und den letzten
  42279. Abschnitt aus der CHANGED Datei</li>
  42280. <li>checktime zeigt zus&auml;tzlich zu check den update-Zeitstempel der
  42281. neuen Datei, &uuml;blicherweise version Zeitstempel +1 Tag.
  42282. </li>
  42283. <li>Falls man &lt;fileName&gt; spezifiziert, dann werden nur die Dateien
  42284. heruntergeladen, die diesem Regexp entsprechen.</li>
  42285. </ul>
  42286. Siehe also das restore Befehl.<br>
  42287. <br>
  42288. Beispiele:<br>
  42289. <ul>
  42290. <li>update check</li>
  42291. <li>update</li>
  42292. <li>update force</li>
  42293. <li>update check http://fhem.de/fhemupdate/controls_fhem.txt</li>
  42294. </ul>
  42295. <a name="updateattr"></a>
  42296. <br>
  42297. <b>Attribute</b> (sind mit attr global zu setzen)
  42298. <ul>
  42299. <a name="updateInBackground"></a>
  42300. <li>updateInBackground<br>
  42301. Wenn dieses Attribut gesetzt ist, wird das update Befehl in einem
  42302. separaten Prozess ausgef&uuml;hrt, und alle Meldungen werden per Event
  42303. &uuml;bermittelt. In der telnet Sitzung wird inform, in FHEMWEB wird
  42304. das Event Monitor aktiviert. Die Voreinstellung ist an, zum
  42305. Deaktivieren bitte Attribut auf 0 setzen.
  42306. </li><br>
  42307. <a name="updateNoFileCheck"></a>
  42308. <li>updateNoFileCheck<br>
  42309. Wenn dieses Attribut gesetzt ist, wird die Gr&ouml;&szlig;e der bereits
  42310. vorhandenen, lokalen Datei nicht mit der Sollgr&ouml;&szlig;e
  42311. verglichen. Dieses Attribut wurde nach nicht genau spezifizierten Wnsch
  42312. erfahrener FHEM Benutzer eingefuehrt, die Voreinstellung ist 0.
  42313. </li><br>
  42314. <a name="backup_before_update"></a>
  42315. <li>backup_before_update<br>
  42316. Wenn dieses Attribut gesetzt ist, erstellt FHEM eine Sicherheitskopie
  42317. der FHEM Installation vor dem update mit dem backup Befehl. Die
  42318. Voreinstellung is "nicht gesetzt", da update sich auf das restore
  42319. Feature verl&auml;sst, s.u.<br>
  42320. Beispiel:<br>
  42321. <ul>
  42322. attr global backup_before_update
  42323. </ul>
  42324. </li><br>
  42325. <a name="exclude_from_update"></a>
  42326. <li>exclude_from_update<br>
  42327. Enth&auml;lt eine Liste durch Leerzeichen getrennter Dateinamen
  42328. (regexp), welche nicht im update ber&uuml;cksichtigt werden.<br>
  42329. Falls der Wert commandref enth&auml;lt, dann wird commandref_join.pl
  42330. nach dem update nicht aufgerufen, d.h. die Gesamtdokumentation ist
  42331. nicht mehr aktuell. Die Moduldokumentation bleibt weiterhin aktuell.
  42332. <br>
  42333. Beispiel:<br>
  42334. <ul>
  42335. attr global exclude_from_update 21_OWTEMP.pm temp4hum4.gplot
  42336. </ul>
  42337. Der Regexp wird gegen den Dateinamen und gegen Quelle:Dateiname
  42338. gepr&uuml;ft. Um die Datei FILE.pm von updates von fhem.de
  42339. auszuschlie&szlig;en, weil sie von einer anderen Quelle bezogen wird,
  42340. kann man fhem.de.*:FILE.pm spezifizieren.
  42341. </li><br>
  42342. <li><a href="#restoreDirs">restoreDirs</a></li><br>
  42343. </ul>
  42344. </ul>
  42345. <p><a name="uptime"></a>
  42346. <h3>uptime</h3>
  42347. <ul>
  42348. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  42349. hier: <a href='commandref.html#uptime'>uptime</a><br/>
  42350. </ul>
  42351. <a name="version"></a>
  42352. <h3>version</h3>
  42353. <div class='langLinks'>[<a href='commandref.html#version'>EN</a> DE]</div>
  42354. <ul>
  42355. <code>version [&lt;filter&gt;|revision] [noheader]</code>
  42356. <br><br>
  42357. Gibt die Versionsinformation von fhem.pl und aller geladenen Module aus. Mit
  42358. dem optionalen Parameter kann man die Ausgabe filtern. Der spezielle Filterwert "revision"
  42359. zeigt nur die aktuellste Revisions-Nummer seit dem letzten Update an.
  42360. <br><br>
  42361. Der optionale Parameter <code>noheader</code> unterdr&uuml;ckt die Ausgabe des Listenkopfs (Latest Revision, File, Rev, Last Change).
  42362. <br><br>
  42363. Wenn dieser Befehl &uuml;ber die FHEMWEB-Kommandozeile eingegeben wird, werden zus&auml;tzlich alle aktuell geladenen JavaScript-Dateien mit ihren zugeh&ouml;rigen Versionsinformationen angezeigt.
  42364. <br><br>
  42365. Beispiel der Ausgabe von <code>version</code>:
  42366. <ul>
  42367. <code><br>
  42368. Latest Revision: 10814<br><br>
  42369. File&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rev&nbsp;&nbsp;&nbsp;Last&nbsp;Change<br><br>
  42370. fhem.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10769&nbsp;2016-02-08&nbsp;12:11:51Z&nbsp;rudolfkoenig<br>
  42371. 90_at.pm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10048&nbsp;2015-11-29&nbsp;14:51:40Z&nbsp;rudolfkoenig<br>
  42372. 98_autocreate.pm&nbsp;10165&nbsp;2015-12-13&nbsp;11:14:15Z&nbsp;rudolfkoenig<br>
  42373. 00_CUL.pm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10146&nbsp;2015-12-10&nbsp;10:17:42Z&nbsp;rudolfkoenig<br>
  42374. 10_CUL_HM.pm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10411&nbsp;2016-01-08&nbsp;15:18:17Z&nbsp;martinp876<br>
  42375. ...
  42376. </code>
  42377. </ul>
  42378. <br>
  42379. Beispiel der Ausgabe von <code>version fhem</code>:
  42380. <ul>
  42381. <code><br>
  42382. File&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rev&nbsp;&nbsp;&nbsp;Last&nbsp;Change<br><br>
  42383. fhem.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10769&nbsp;2016-02-08&nbsp;12:11:51Z&nbsp;rudolfkoenig<br>
  42384. </code>
  42385. </ul>
  42386. <br>
  42387. Beispiel der Ausgabe von <code>version fhem.pl noheader</code>:
  42388. <ul>
  42389. <code><br>
  42390. fhem.pl&nbsp;10769&nbsp;2016-02-08&nbsp;12:11:51Z&nbsp;rudolfkoenig<br>
  42391. </code>
  42392. </ul>
  42393. </ul>
  42394. <p><a name="watchdog"></a>
  42395. <h3>watchdog</h3>
  42396. <div class='langLinks'>[<a href='commandref.html#watchdog'>EN</a> DE]</div>
  42397. <ul>
  42398. <br>
  42399. <a name="watchdogdefine"></a>
  42400. <b>Define</b>
  42401. <ul>
  42402. <code>define &lt;name&gt; watchdog &lt;regexp1&gt; &lt;timespec&gt;
  42403. &lt;regexp2&gt; &lt;command&gt;</code><br>
  42404. <br>
  42405. Startet einen beliebigen FHEM Befehl wenn nach dem Empfang des
  42406. Ereignisses &lt;regexp1&gt; nicht innerhalb von &lt;timespec&gt; ein
  42407. &lt;regexp2&gt; Ereignis empfangen wird.<br>
  42408. Der Syntax f&uuml;r &lt;regexp1&gt; und &lt;regexp2&gt; ist der gleiche wie
  42409. regexp f&uuml;r <a href="#notify">notify</a>.<br>
  42410. &lt;timespec&gt; ist HH:MM[:SS]<br>
  42411. &lt;command&gt; ist ein gew&ouml;hnlicher fhem Befehl wie z.B. in <a
  42412. href="#at">at</a> oderr <a href="#notify">notify</a>
  42413. <br><br>
  42414. Beispiele:
  42415. <code><ul>
  42416. # Frage Daten vom FHT80 _einmalig_ ab, wenn wir keine Nachricht f&uuml;r<br>
  42417. # 15 Minuten erhalten haben.<br>
  42418. define w watchdog FHT80 00:15:00 SAME set FHT80 date<br><br>
  42419. # Frage Daten vom FHT80 jedes Mal ab, wenn keine Nachricht f&uuml;r<br>
  42420. # 15 Minuten emfpangen wurde, d.h. reaktiviere den Watchdog nachdem er
  42421. getriggert wurde.<br>
  42422. # Kann gef&auml;hrlich sein, da er so in einer Schleife getriggert werden
  42423. kann.<br>
  42424. define w watchdog FHT80 00:15:00 SAME set FHT80 date;; trigger w .<br><br>
  42425. # Alarmiere einmalig wenn vom HMS100-FIT f&uuml;r eine Stunde keine
  42426. Nachricht empfangen wurde.<br>
  42427. define w watchdog HMS100-FIT 01:00 SAME "alarm-fit.sh"<br><br>
  42428. # Sende eine Mail wenn das Fenster offen gelassen wurde<br>
  42429. define w watchdog contact1:open 00:15 contact1:closed "mail_me close
  42430. window1"<br>
  42431. attr w regexp1WontReactivate<br><br>
  42432. </ul></code>
  42433. Hinweise:<br>
  42434. <ul>
  42435. <li>Wenn &lt;regexp1&gt; . (Punkt) ist, dann aktiviere den Watchdog zur
  42436. definierten Zeit. Sonst wird er durch den Empfang des ersten passenden
  42437. Events aktiviert.</li>
  42438. <li>&lt;regexp1&gt; Resetet den Timer eines laufenden Watchdogs. Um das
  42439. zu verhindern wird das regexp1WontReactivate Attribut gesetzt.</li>
  42440. <li>Wenn &lt;regexp2&gt; SAME ist , dann ist es das gleiche wie das erste
  42441. regexp, und wird reaktiviert wenn es empfangen wird. </li>
  42442. <li>trigger &lt;watchdogname&gt; . aktiviert den Trigger wenn dessen
  42443. Status defined ist und setzt ihn in den Status defined wenn sein status
  42444. triggered oder aktiviert (Next:...) ist.<br>
  42445. Der Watchdog musst immer mit diesem Befehl reaktiviert werden wenn er
  42446. getriggert wurde.</li>
  42447. <li>Ein generischer Watchdog (ein Watchdog, verantwortlich f&uuml;r
  42448. mehrere Devices) ist derzeit nicht m&ouml;glich.</li>
  42449. <li>Bei modify sind alle Parameter optional, und werden nicht geaendert,
  42450. falls nicht spezifiziert.</li>
  42451. </ul>
  42452. <br>
  42453. </ul>
  42454. <a name="watchdogset"></a>
  42455. <b>Set </b>
  42456. <ul>
  42457. <li>inactive<br>
  42458. Deaktiviert das entsprechende Ger&auml;t. Beachte den leichten
  42459. semantischen Unterschied zum disable Attribut: "set inactive"
  42460. wird bei einem shutdown automatisch in fhem.state gespeichert, es ist
  42461. kein save notwendig.<br>
  42462. Der Einsatzzweck sind Skripte, um das notify tempor&auml;r zu
  42463. deaktivieren.<br>
  42464. Das gleichzeitige Verwenden des disable Attributes wird nicht empfohlen.
  42465. </li>
  42466. <li>active<br>
  42467. Aktiviert das entsprechende Ger&auml;t, siehe inactive.
  42468. </li>
  42469. </ul>
  42470. <br>
  42471. <a name="watchdogget"></a>
  42472. <b>Get</b> <ul>N/A</ul><br>
  42473. <a name="watchdogattr"></a>
  42474. <b>Attribute</b>
  42475. <ul>
  42476. <li><a name="#activateOnStart">activateOnStart</a><br>
  42477. Falls gesetzt, wird der Watchdog nach FHEM-Neustart aktiviert, je nach
  42478. Zeitstempel der Activated und Triggered Readings. Da zwischen Shutdown
  42479. und Neustart Events verlorengehen k&ouml;nnen, ist die Voreinstellung 0
  42480. (deaktiviert).
  42481. </li>
  42482. <li><a href="#addStateEvent">addStateEvent</a></li>
  42483. <li><a href="#disable">disable</a></li>
  42484. <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
  42485. <li><a name="regexp1WontReactivate">regexp1WontReactivate</a><br>
  42486. Wenn ein Watchdog aktiv ist, wird ein zweites Ereignis das auf regexp1
  42487. passt normalerweise den Timer zur&uuml;cksetzen. Dieses Attribut wird
  42488. das verhindern.</li>
  42489. <li><a href="#execOnReactivate">execOnActivate</a>
  42490. Falls gesetzt, wird der Wert des Attributes als FHEM Befehl
  42491. ausgef&uuml;hrt, wenn ein regexp1 Ereignis den Watchdog
  42492. aktiviert nachdem er ausgel&ouml;st wurde.</li>
  42493. <li><a href="#autoRestart">autoRestart</a>
  42494. Wenn dieses Attribut gesetzt ist, wird der Watchdog nach dem er
  42495. getriggert wurde, automatisch wieder in den Zustand defined
  42496. gesetzt (Wartet also wieder auf Aktivierung durch regexp1)</li>
  42497. </ul>
  42498. <br>
  42499. </ul>
  42500. <p><a name="weblink"></a>
  42501. <h3>weblink</h3>
  42502. <ul>
  42503. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  42504. hier: <a href='commandref.html#weblink'>weblink</a><br/>
  42505. </ul>
  42506. <a name="weekprofile"></a>
  42507. <h3>weekprofile</h3>
  42508. <div class='langLinks'>[<a href='commandref.html#weekprofile'>EN</a> DE]</div>
  42509. <ul>
  42510. Beschreibung im Wiki: http://www.fhemwiki.de/wiki/Weekprofile
  42511. Mit dem Modul 'weekprofile' kÜnnen mehrere Wochenprofile verwaltet und an unterschiedliche Geräte
  42512. Ăźbertragen werden. Aktuell wird folgende Hardware unterstĂźtzt:
  42513. <li>alle MAX Thermostate</li>
  42514. <li>andere weekprofile Module</li>
  42515. <li>Homatic (Kanal _Clima bzw. _Climate)</li>
  42516. Im Standardfall wird das Modul mit einem Geräte = 'Master-Gerät' assoziiert,
  42517. um das Wochenprofil vom Gerät grafisch bearbeiten zu kÜnnen und andere Profile auf das Gerät zu ßbertragen.
  42518. Wird kein 'Master-Gerät' angegeben, wird erstmalig ein Default-Profil angelegt.
  42519. <br>
  42520. Ein weiterer Anwendungsfall ist die Verwendung von Rubriken\Kategorien 'Topics'.
  42521. Hier sollte kein 'Master-Gerät' angegeben werden. Dieses Feature muss erst ßber das Attribut 'useTopics' aktiviert werden.
  42522. Topics sind z.B. Winter, Sommer, Urlaub, Party, etc.
  42523. Innerhalb einer Topic kann es mehrere Wochenprofile geben. Sinnvollerweise sollten es soviele wie Thermostate sein.
  42524. �ber ein Userattribut 'weekprofile' im Thermostat wird ein Wochenprofile ohne Topicname angegeben.
  42525. Mittels 'restore_topic' wird dann das angebene Wochenprofil der Topic an das Thermostat Ăźbertragen.
  42526. Somit kann man einfach zwischen den Topics wechseln und die Thermostate bekommen das passende Wochenprofil.
  42527. <br><br>
  42528. <b>Achtung:</b> Das �bertragen von Wochenprofilen erfordet eine Menge an Credits.
  42529. Dies wird vom Modul nicht berĂźcksichtigt. So kann es sein, dass nach dem
  42530. Setzen\Aktualisieren eines Profils das Profil im Modul nicht mit dem Profil im Gerät
  42531. Ăźbereinstimmt solange das komplette Profil Ăźbertragen wurde.
  42532. <br>
  42533. Beim Homatic HM-TC-IT-WM-W-EU wird nur das 1. Profil (R_P1_...) genommen!
  42534. <br>
  42535. <b>FĂźr das Module wird libjson-perl benĂśtigt</b>
  42536. <br><br>
  42537. <b>Events:</b><br>
  42538. Aktuell werden folgende Events erzeugt:<br>
  42539. <li>PROFILE_TRANSFERED: wenn ein Profil oder Teile davon zu einem Gerät gesended wurden</li>
  42540. <li>PROFILES_SAVED: wenn Profile in die Konfigurationsdatei gespeichert wurden (auch wenn es keine �nderung gab!)</li>
  42541. <a name="weekprofiledefine"></a>
  42542. <b>Define</b>
  42543. <ul>
  42544. <code>define &lt;name&gt; weekprofile [master device]</code><br>
  42545. <br>
  42546. Aktiviert das Modul. Bei der Angabe eines 'Master-Gerätes' wird das Profil 'master'
  42547. entprechende dem Wochenrofil vom Gerät angelegt.
  42548. Sonderbehandlung des 'master' Profils:
  42549. <li>Kann nicht gelĂśscht werden</li>
  42550. <li>Bei �ndern\Setzen des Proils wird es automatisch an das 'Master-Geräte' gesendet</li>
  42551. <li>Es wird sind mit abgespeicht</li>
  42552. <br>
  42553. Wird kein 'Master-Geräte' angegeben, wird ein 'default' Profil angelegt.
  42554. </ul>
  42555. <a name="weekprofileset"></a>
  42556. <b>Set</b>
  42557. <ul>
  42558. <li>profile_data<br>
  42559. <code>set &lt;name&gt; profile_data &lt;profilname&gt; &lt;json data&gt; </code><br>
  42560. Es wird das Profil 'profilname' geändert. Die Profildaten mßssen im json-Format ßbergeben werden.
  42561. </li>
  42562. <li>send_to_device<br>
  42563. <code>set &lt;name&gt; send_to_device &lt;profilname&gt; [devices] </code><br>
  42564. Das Profil wird an ein oder mehrere Geräte ßbertragen. Wird kein Gerät angegeben, wird das 'Master-Gerät' verwendet.
  42565. 'Devices' ist eine kommagetrennte Auflistung von Geräten
  42566. </li>
  42567. <li>copy_profile<br>
  42568. <code>set &lt;name&gt; copy_profile &lt;quelle&gt; &lt;ziel&gt; </code><br>
  42569. Kopiert das Profil 'quelle' auf 'ziel'. 'ziel' wird Ăźberschrieben oder neu angelegt.
  42570. </li>
  42571. <li>remove_profile<br>
  42572. <code>set &lt;name&gt; remove_profile &lt;profilname&gt; </code><br>
  42573. Das Profil 'profilname' wird gelĂśscht.
  42574. </li>
  42575. <li>reference_profile<br>
  42576. <code>set &lt;name&gt; reference_profile &lt;quelle&gt; &lt;ziel&gt; </code><br>
  42577. Referenziert das Profil 'ziel'auf 'quelle'. 'ziel' wird Ăźberschrieben oder neu angelegt.
  42578. </li>
  42579. <li>restore_topic<br>
  42580. <code>set &lt;name&gt; restore_topic &lt;topic&gt;</code><br>
  42581. Alle Wochenpläne in der Topic werden zu den entsprechenden Geräten ßbertragen.
  42582. Dazu muss im Gerät ein Userattribut 'weekprofile' mit dem Namen des Wochenplans <b>ohne</b> Topic gesetzt sein.
  42583. </li>
  42584. <li>reread_master<br>
  42585. Aktualisiert das master profile indem das 'Master-Geräte' neu ausgelesen wird.
  42586. </li>
  42587. </ul>
  42588. <a name="weekprofileget"></a>
  42589. <b>Get</b>
  42590. <ul>
  42591. <li>profile_data<br>
  42592. <code>get &lt;name&gt; profile_data &lt;profilname&gt; </code><br>
  42593. Liefert die Profildaten von 'profilname' im json-Format
  42594. </li>
  42595. <li>profile_names<br>
  42596. <code>set &lt;name&gt; profile_names [topic_name]</code><br>
  42597. Liefert alle Profilnamen getrennt durch ',' einer Topic 'topic_name'
  42598. Ist 'topic_name' gleich '*' werden alle Profilnamen zurĂźck gegeben.
  42599. </li>
  42600. <li>profile_references [name]<br>
  42601. Liefert eine Liste von Referenzen der Form <br>
  42602. <code>
  42603. ref_topic:ref_profile>dest_topic:dest_profile
  42604. </code>
  42605. Ist name 'topicname:profilename' wird '0' der Name der Referenz zurĂźck gegeben.
  42606. </li>
  42607. </ul>
  42608. <a name="weekprofilereadings"></a>
  42609. <p><b>Readings</b></p>
  42610. <ul>
  42611. <li>active_topic<br>
  42612. Aktive\zuletzt gesetzter Topicname.
  42613. </li>
  42614. <li>profile_count<br>
  42615. Anzahl aller Profile mit Referenzen.
  42616. </li>
  42617. </ul>
  42618. <a name="weekprofileattr"></a>
  42619. <b>Attribute</b>
  42620. <ul>
  42621. <li>widgetTranslations<br>
  42622. Liste von �bersetzungen der Form <german>:<�bersetzung> getrennt durch ',' um Texte im Widget zu ßbersetzen.
  42623. <code>attr name widgetTranslations Abbrechen:Abbr,Speichern:Save</code>
  42624. </li>
  42625. <li>widgetWeekdays<br>
  42626. Liste von Wochentagen getrennt durch ',' welche im Widget angzeigt werden.
  42627. Beginnend bei Montag. z.B.
  42628. <code>attr name widgetWeekdays Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag</code>
  42629. </li>
  42630. <li>widgetEditDaysInRow<br>
  42631. Anzahl in der in einer Reihe dargestellten Tage während der Bearbeitung. Default 2.<br>
  42632. </li>
  42633. <li>widgetEditOnNewPage<br>
  42634. Wenn gesetzt ('1'), dann wird die Bearbeitung auf einer separaten\neuen Webseite gestartet.
  42635. </li>
  42636. <li>configFile<br>
  42637. Pfad und Dateiname wo die Profile gespeichert werden sollen.
  42638. Default: ./log/weekprofile-<name>.cfg
  42639. </li>
  42640. <li>icon<br>
  42641. �nders des Icons zum Bearbeiten
  42642. Default: edit_settings
  42643. </li>
  42644. <li>useTopics<br>
  42645. Verwendung von Topic aktivieren.
  42646. </li>
  42647. <li>tempON<br>
  42648. Temperature fĂźr 'on'. z.B. 30
  42649. </li>
  42650. <li>tempOFF<br>
  42651. Temperature fĂźr 'off'. z.B. 4
  42652. </li>
  42653. </ul>
  42654. </ul>
  42655. <p><a name="withings"></a>
  42656. <h3>withings</h3>
  42657. <ul>
  42658. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  42659. hier: <a href='commandref.html#withings'>withings</a><br/>
  42660. </ul>
  42661. <a name="xs1Bridge"></a>
  42662. <h3>xs1Bridge</h3>
  42663. <div class='langLinks'>[<a href='commandref.html#xs1Bridge'>EN</a> DE]</div>
  42664. <ul>
  42665. Mit diesem Modul k&ouml;nnen Sie das Gerät xs1 der Firma <a href="http://www.ezcontrol.de/">EZcontrol</a> auslesen. Das Modul ruft die Daten des xs1 via der Kommunikationsschnittstelle ab. Mit einem HTTP GET Requests erh&auml;lt man die Antworten in Textform welche im Datenformat JSON (JavaScript Object Notation) ausgegeben werden.
  42666. Es werden Aktoren | Sensoren | Timer | Informationen vom xs1 ausgelesen und in Readings geschrieben. Bei jedem Auslesen werden nur Readings angelegt bzw. aktualisiert, welche auch im xs1 definiert und aktiv sind. Aktor | Sensor bzw. Timer Definitionen welche deaktiviert sind im xs1, werden NICHT ausgelesen.
  42667. <br><br>
  42668. Das Modul wurde entwickelt basierend auf dem Firmwarestand v4-Beta des xs1. Es kann aufgrund von unterschiedlichen Anpassungen innerhalb der Firmware des Herstellers zu Fehlern kommen.<br>
  42669. Getestete Firmware: v4.0.0.5326 (Beta) @me | v3.0.0.4493 @ForumUser<br>
  42670. <br><ul>
  42671. <u>Derzeit implementierte Typen des xs1 zur Verarbeitung: </u><br>
  42672. <li>Aktor: dimmer, switch, shutter, timerswitch</li>
  42673. <li>Sensor: barometer, counter, counterdiff, light, motion, other, rain, rain_1h, rain_24h, rainintensity, remotecontrol, uv_index, waterdetector, winddirection, windgust, windspeed, windvariance</li>
  42674. </ul><br><br>
  42675. <a name="xs1Bridge_define"></a>
  42676. <b>Define</b><br>
  42677. <ul>
  42678. xs1 ohne Passwortabfrage:&nbsp;&nbsp;<code>define &lt;NAME&gt; xs1Bridge &lt;IP&gt;</code><br>
  42679. xs1 mit Passwortabfrage:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>define &lt;NAME&gt; xs1Bridge &lt;User&gt;:&lt;Passwort&gt;@&lt;IP&gt;</code>
  42680. <br><br>
  42681. Ein anlegen des Modules ohne Angabe der IP vom xs1 ist nicht m&ouml;glich. Sollte die IP bei der Moduldefinierung nicht erreichbar sein, so bricht der Define Vorgang ab.
  42682. <ul>
  42683. <li><code>&lt;IP&gt;</code> ist IP-Adresse im lokalen Netzwerk</li>
  42684. <li><code>&lt;User&gt;</code> ist der Administrator Benutzer admin (standard)</li>
  42685. <li><code>&lt;Passwort&gt;</code> ist das vergebene Administrator Passwort im xs1.</li>
  42686. </ul><br>
  42687. Beispiele:
  42688. <ul>
  42689. define EZcontrol_xs1 xs1Bridge 192.168.1.45<br>
  42690. define EZcontrol_xs1 xs1Bridge admin:geheim@192.168.1.45<br>
  42691. </ul>
  42692. </ul><br>
  42693. <b>Set</b>
  42694. <ul>N/A</ul><br>
  42695. <b>Get</b><br>
  42696. <ul>N/A</ul><br>
  42697. <a name="xs1_attr"></a>
  42698. <b>Attribute</b>
  42699. <ul>
  42700. <li>debug (0,1,2)<br>
  42701. Dies bringt das Modul in eine sehr ausf&uuml;hrliche Debug-Ausgabe im Logfile. Somit lassen sich Programmteile kontrollieren und Fehler &uuml;berpr&uuml;fen.<br>
  42702. (Default, debug 0)
  42703. </li><br>
  42704. <li>update_only_difference (0,1)<br>
  42705. Die Aktoren welche im xs1 definiert wurden, werden nur bei Wert&auml;nderung aktualisiert.<br>
  42706. (Default, update_only_difference 0)</li><br>
  42707. <li>view_Device_name (0,1)<br>
  42708. Die Aktor Namen welche im xs1 definiert wurden, werden als Reading ausgelesen.<br>
  42709. (Default, view_Device_name 0)<br>
  42710. </li><br>
  42711. <li>view_Device_function (0,1)<br>
  42712. Die Aktor Funktionen welche im xs1 definiert wurden, werden als Reading ausgelesen.<br>
  42713. (Default, view_Device_function 0)<br>
  42714. </li><br>
  42715. <li>xs1_blackl_aktor<br>
  42716. Eine kommagetrennte Blacklist der Aktoren, welche nicht automatisch angelegt werden sollen sobald xs1_control = 1(aktiv).<br>
  42717. (Beispiel: 2,40,3)<br>
  42718. </li><br>
  42719. <li>xs1_blackl_sensor<br>
  42720. Eine kommagetrennte Blacklist der Sensoren, welche nicht automatisch angelegt werden sollen sobald xs1_control = 1(aktiv).<br>
  42721. (Beispiel: 3,37,55)<br>
  42722. </li><br>
  42723. <li>xs1_control (0,1)<br>
  42724. Die Freigabe zur Steuerung des xs1. Nach Aktivierung dieser, wird durch das xs1Dev Modul jeder Aktor und Sensor in FHEM angelegt.<br>
  42725. (Default, xs1_control 0)<br>
  42726. </li><br>
  42727. <li>xs1_interval (0,30,60,180,360)<br>
  42728. Das ist der Intervall in Sekunden, in dem die Readings neu gelesen werden vom xs1.<br>
  42729. <i>Bei Aktoren werden nur unterschiedliche Zust&auml;nde aktualisiert im eingestellten Intervall.</i><br>
  42730. <i>Sensoren werden unabhängig vom Zustand immer im Intervall aktualisiert.</i><br>
  42731. (Default, xs1_interval 60)
  42732. </li><br><br>
  42733. </ul>
  42734. <b>Erl&auml;uterung:</b>
  42735. <ul>
  42736. <li>Auszug Readings:</li>
  42737. <ul>
  42738. <li>Aktor_(01-64)</li> definierter Aktor mit jeweiligem Zustand im Ger&auml;t<br>
  42739. <li>Aktor_(01-64)_name</li> definierter Aktorname im Ger&auml;t<br>
  42740. <li>Aktor_(01-64)_function(1-4)</li> definierte Aktorfunktion im Ger&auml;t<br>
  42741. <li>Sensor_(01-64)</li> definierter Sensor im Ger&auml;t<br>
  42742. <li>Sensor_(01-64)</li> definierter Sensorname im Ger&auml;t<br>
  42743. <li>Timer_(01-128)</li> definierter Timer im Ger&auml;t<br>
  42744. <li>xs1_bootloader</li> Firmwareversion des Bootloaders<br>
  42745. <li>xs1_dhcp</li> DHCP an/aus<br>
  42746. <li>xs1_features</li> erworbene Feature beim Kauf (A = SENDEN | B = EMPFANGEN | C = Skripte/Makros | D = Speicherkartenzugriff)<br>
  42747. <li>xs1_firmware</li> Firmwareversion<br>
  42748. <li>xs1_start</li> Ger&auml;testart<br>
  42749. </ul><br>
  42750. <li>Die Meldung "<code>Error: Can't connect ...</code>" oder "<code>ERROR: empty answer received</code>" im System-Logfile, besagt das kurzzeitig keine Abfrage erfolgen konnte.<br>
  42751. (Das kann h&auml;ufiger bei DLAN vorkommen.)<br><br></li>
  42752. <li>Sollte das Ger&auml;t nach 5 Verbindungsversuchen ebenfalls keine Verbindung erhalten haben, so schaltet das Modul auf < disable > !</li><br>
  42753. <li>Logfile Erstellung erfolgt automatisch nach dem definieren. | Schema: <code>define FileLog_xs1Bridge FileLog ./log/xs1Bridge-%Y-%m.log &lt;Name&gt;</code><br>
  42754. Folgende Werte werden im Logfile erfasst: Timer | xs1-Statusinformationen</li><br>
  42755. <li>Sollte das Ger&auml;t nach 5 Verbindungsversuchen ebenfalls keine Verbindung erhalten haben, so schaltet das Modul auf < disable > !</li><br>
  42756. </ul>
  42757. </ul>
  42758. <p><a name="xs1Dev"></a>
  42759. <h3>xs1Dev</h3>
  42760. <div class='langLinks'>[<a href='commandref.html#xs1Dev'>EN</a> DE]</div>
  42761. <ul>
  42762. Dieses Modul arbeitet mit dem Modul xs1Bridge zusammen. (Das Attribut <code>xs1_control</code> im Modul xs1Bridge muss auf 1 gestellt sein!) <br>
  42763. Es kommuniziert mit diesem und legt sämtliche Aktoren des xs1 als Device im FHEM an. So kann man vom FHEM aus, die Aktoren der xs1 steuern.
  42764. <br><br>
  42765. Das Modul wurde entwickelt basierend auf dem Firmwarestand v4-Beta des xs1. Es kann aufgrund von unterschiedlichen Anpassungen innerhalb der Firmware des Herstellers zu Fehlern kommen.<br>
  42766. <br><ul>
  42767. <u>Derzeit implementierte Typen des xs1 zur Verarbeitung: </u><br>
  42768. <li>Aktor: dimmer, switch, shutter, timerswitch</li>
  42769. <li>Sensor: barometer, counter, counterdiff, light, motion, other, rain, rain_1h, rain_24h, rainintensity, remotecontrol, uv_index, waterdetector, winddirection, windgust, windspeed, windvariance</li>
  42770. </ul><br><br>
  42771. <a name="xs1Dev_define"></a>
  42772. <b>Define</b><br>
  42773. <ul>
  42774. <code>define &lt;name&gt; xs1Dev &lt;Typ&gt; &lt;ID&gt; IODev=&lt;NAME&gt;</code>
  42775. <br><br>
  42776. Ein anlegen des Modules ohne Angabe des Typ und der ID vom xs1 ist nicht mĂśglich.
  42777. <ul>
  42778. <li><code>&lt;ID&gt;</code> ist interne ID im xs1.</li>
  42779. </ul>
  42780. <ul>
  42781. <li><code>&lt;Typ&gt;</code> ist der KĂźrzel A fĂźr Aktoren oder S fĂźr Sensoren.</li>
  42782. </ul><br>
  42783. Beispiel:
  42784. <ul>
  42785. define xs1Dev_Aktor_02 xs1Dev A 02 IODev=ezControl
  42786. </ul>
  42787. </ul><br>
  42788. <b>Set</b>
  42789. <ul><code>set &lt;name&gt; &lt;value&gt; </code></ul><br>
  42790. Wobei <code>value</code> der in der xs1 definierten Funktion entspricht. Bsp:<br>
  42791. <ul><code>
  42792. an<br>
  42793. aus<br>
  42794. dimup<br>
  42795. dimupdown<br>
  42796. umschalten<br>
  42797. an, warten, aus<br>
  42798. absolut<br>
  42799. warten<br>
  42800. langes AN<br>
  42801. langes AUS<br>
  42802. Stopp<br>
  42803. an, warten, an<br>
  42804. aus, warten, aus<br>
  42805. Impuls<br>
  42806. </code></ul><br>
  42807. <b>Get</b><br>
  42808. <ul>N/A</ul><br>
  42809. <a name="xs1_attr"></a>
  42810. <b>Attribute</b>
  42811. <ul>
  42812. <li>debug (0,1)<br>
  42813. Dies bringt das Modul in eine sehr ausf&uuml;hrliche Debug-Ausgabe im Logfile. Somit lassen sich Programmteile kontrollieren und Fehler &uuml;berpr&uuml;fen.<br>
  42814. (Default, debug 0)
  42815. </li>
  42816. <li>useSetExtensions (0,1)<br>
  42817. Schaltet die SetExtensions ein bzw. aus.<br>
  42818. (Default, useSetExtensions 0)
  42819. </li>
  42820. </ul><br>
  42821. <b>Erl&auml;uterung:</b>
  42822. <ul>
  42823. <li>Auszug Internals:</li>
  42824. <ul>
  42825. xs1_function(1-4): definierte Funktion im Ger&auml;t<br>
  42826. xs1_name: definierter Name im Ger&auml;t<br>
  42827. xs1_typ: definierter Typ im Ger&auml;t<br>
  42828. </ul><br>
  42829. </ul>
  42830. </ul>
  42831. <p><a name="xxLG7000"></a>
  42832. <h3>xxLG7000</h3>
  42833. <ul>
  42834. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  42835. hier: <a href='commandref.html#xxLG7000'>xxLG7000</a><br/>
  42836. </ul>
  42837. <a name="yowsup"></a>
  42838. <h3>yowsup</h3>
  42839. <ul>
  42840. Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es
  42841. hier: <a href='commandref.html#yowsup'>yowsup</a><br/>
  42842. </ul>
  42843. <a name="perl"></a>
  42844. <h3>Perl specials</h3>
  42845. <div class='langLinks'>[<a href='commandref.html#perl'>EN</a> DE]</div>
  42846. Wenn Sie einige Aufgaben automatisieren wollen, dann sollten Sie die Befehle
  42847. <a href="#at">at</a> oder <a href="#notify">notify</a> nutzen. F&uuml;r
  42848. komplexere Aufgaben sollten Sie lieber ein SHELL-Skript oder einen PERL
  42849. "oneliner" als das at/notify argument anwenden. Dieser Abschnitt gibt Ihnen
  42850. einige Tipps zur Anwendung der PERL-oneliner.<br><br>
  42851. <li>Um PERL-&quot;oneliner&quot; zu testen, geben Sie diese am
  42852. &quot;telnet&quot; Prompt (oder in der FHEMWEB Text-Eingabezeile)
  42853. eingeschlossen von geschweiften Klammern {} in einer Zeile ein. Die letzte
  42854. Beispielzeile schreibt nur etwas in die Logdatei, w&auml;hrend das Ergebnis
  42855. der anderen Zeilen direkt auf der Webseite sichtbar ist.<ul>
  42856. Beispiele:<p>{ "Hello" }<br>
  42857. { 1+3*4 }<br>
  42858. { `ls /etc` }<br>
  42859. { Log 1, "Hello" }<br>
  42860. </p>
  42861. </ul>
  42862. <br>
  42863. </li>
  42864. <li>
  42865. PERL Ausdr&uuml;cke werden durch ein Semikolon (;) getrennt. In FHEM
  42866. &quot;oneliners&quot; m&uuml;ssen sie durch ein weiteres Semikolon (;;)
  42867. &quot;escaped&quot; (maskiert) werden<br>
  42868. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Beispiel:<ul>
  42869. { my $a = 1+1;; Log 1, "Hello $a" }
  42870. </ul>
  42871. </li><br>
  42872. <li>Um FHEM-Kommandos in den PERL-Ausdr&uuml;cken zu verwenden, benutzen
  42873. Sie bitte die Funktion <var>fhem()</var>, mit einem Textargument. Dieser Text wird als
  42874. FHEM-Kommando interpretiert.<br>
  42875. <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Beispiel<ul>
  42876. { fhem "set light on" }<br>
  42877. define n1 notify piri:on { fhem "set light on" }
  42878. <p>&nbsp;</p>
  42879. </ul>
  42880. Bemerkung: Wenn diese Funktion einen wert zur&uuml;ck liefert, wird dieser
  42881. in der allgemeinen Logdatei gespeichert.. Benutzen sie &quot;1&quot; als
  42882. zweites Argument um dieses speichern zu verhindern. Sinnvoll ist dieses
  42883. Argument bei der Abfrage von Werten mittels "get...".
  42884. </li><br>
  42885. <li>Notify kann auch dazu verwendet werden, um Macros manuell
  42886. auszuf&uuml;hren. Verwenden Sie den <a href="#trigger">trigger</a>-Befehl
  42887. um das Makro zu starten:<br>
  42888. <ul>
  42889. define MyMacro notify MyMacro { Log 1, "Hello"}<br>
  42890. trigger MyMacro<br>
  42891. define MacroWithArg notify MyMacro { Log 1, "Hello %"}<br>
  42892. trigger MyMacro MyArg<br>
  42893. </ul>
  42894. <br>
  42895. </li>
  42896. <li>Um die Verwendung von Datum und Zeitangaben zu vereinfachen, wurden die
  42897. Variablen <var>$sec</var>, <var>$min</var>, <var>$hour</var>, <var>$mday</var>,
  42898. <var>$month</var>, <var>$year</var>, <var>$wday</var>, <var>$yday</var>, <var>$isdst</var> und <var>$hms</var>
  42899. f&uuml;r die Verwendung in PERL-&quot;oneliners&quot; eingef&uuml;hrt (s.
  42900. unter <var>perldoc -f localtime</var>). Ausnahmen: <var>$month</var> hat einen Wertebereich von 1
  42901. bis 12 und <var>$year</var> ist korrigiert von 1900.
  42902. Weiterhin enth&auml;lt <var>$hms</var> die Zeit in dem HH:MM:SS Format und <var>$today</var> das
  42903. aktuellen Datum in YYYY-MM-DD Format.
  42904. <br>
  42905. Die Variabe <var>$we</var> hat den Wert 1 wenn der abgefragte Tag auf ein Wochenende
  42906. f&auml;llt (Z.B. <var>$wday</var> == 0 [Sonntag] oder <var>$wday</var> == 6 [Samstag]), und 0
  42907. f&uuml;r die anderen Wochentage. Wenn man das global <a
  42908. href="#holiday2we">holiday2we</a> Attribut setzt, dann ist <var>$we</var> ebenfalls 1
  42909. bei Urlaubstagen.<br>
  42910. <ul>
  42911. define n2 notify piri:on { if($hour &gt; 18 || $hour &lt; 5) {
  42912. fhem "set light on" } }<br>
  42913. define roll_en *07:45:00 { fhem "trigger SwitchAllRoll on" if(!$we) }<br>
  42914. define roll_en *08:30:00 { fhem "trigger SwitchAllRoll on" if($we) }<br>
  42915. </ul>
  42916. <br>
  42917. </li><li>
  42918. Die folgenden Hilfsfunktionen sind in der Datei 99_Util.pm definiert (wird
  42919. wie jede mit 99_ beginnende Datei automatisch geladen):
  42920. <ul>
  42921. <li>min(a,b), max(a,b)</li>
  42922. <li>time_str2num("YYYY-MM-DD HH:MM:SS") gibt einen numerischen Wert
  42923. zur&uuml;ck, der die Berechnung von Zeitdifferenzen vereinfacht</li>
  42924. <li>abstime2rel("HH:MM:SS") wandelt absolute in relative Zeitangaben um
  42925. </li>
  42926. </ul>
  42927. </li>
  42928. <li>
  42929. Um auf die Ger&auml;testatus/Attribute zuzugreifen benutzen Sie bitte die
  42930. folgenden Funktionen:
  42931. <br>
  42932. <ul>
  42933. <li>Value(&lt;devicename&gt;)<br>
  42934. gibt den Status eines Ger&auml;tes zur&uuml;ck (entsprechend dem
  42935. Ausdruck in Klammern, den Sie beim List-Befehl sehen).
  42936. </li><br>
  42937. <li>OldValue(&lt;devicename&gt;)</li>
  42938. <li>OldTimestamp(&lt;devicename&gt;)<br>
  42939. gibt den vorherigen Wert/Zeitstempel des Ger&auml;tes zur&uuml;ck.
  42940. </li><br>
  42941. <li>
  42942. ReadingsVal(&lt;devicename&gt;,&lt;reading&gt;,&lt;defaultvalue&gt;)<br>
  42943. Gibt den Inhalt der &quot;readings&quot; zur&uuml;ck (den Inhalt der in
  42944. dem &quot;Readings&quot;-Abschnitt von "list device" angezeigt wird)
  42945. </li><br>
  42946. <li>
  42947. ReadingsNum(&lt;devicename&gt;,&lt;reading&gt;,
  42948. &lt;defaultvalue&gt;,&lt;round&gt;)<br>
  42949. Gibt die erste Zahl aus dem Readingswert zur&uuml;ck.
  42950. Falls &lt;round&gt; spezifiziert ist, wird sie auf diese Anzahl von
  42951. Dezimalstellen gerundet.
  42952. </li><br>
  42953. <li>ReadingsTimestamp(&lt;devicename&gt;,
  42954. &lt;reading&gt;,&lt;defaultvalue&gt;)<br>
  42955. gibt den Zeitstempel des Readings zur&uuml;ck.
  42956. </li><br>
  42957. <li>ReadingsAge(&lt;devicename&gt;,&lt;reading&gt;,&lt;defaultvalue&gt;)
  42958. <br>
  42959. gibt das Alter des Readings in Sekunden zur&uuml;ck.
  42960. </li><br>
  42961. <li>
  42962. OldReadingsVal(&lt;devicename&gt;,&lt;reading&gt;
  42963. ,&lt;defaultvalue&gt;)<br>
  42964. OldReadingsNum(&lt;devicename&gt;,&lt;reading&gt;,
  42965. &lt;defaultvalue&gt;,&lt;round&gt;)<br>
  42966. OldReadingsTimestamp(&lt;devicename&gt;,&lt;reading&gt;
  42967. ,&lt;defaultvalue&gt;)<br>
  42968. OldReadingsAge(&lt;devicename&gt;,&lt;reading&gt;,&lt;
  42969. defaultvalue&gt;)<br>
  42970. analog zu den Routinen oben, aber zum Zugriff auf die vorherigen Werte.
  42971. siehe: <a href="#oldreadings">oldreadings</a><br>
  42972. </li><br>
  42973. <li>
  42974. AttrVal(&lt;devicename&gt;,&lt;attribute&gt;,&lt;defaultvalue&gt;)<br>
  42975. Gibt das entsprechende Attribut des Ger&auml;tes zur&uuml;ck
  42976. <br><br>
  42977. { Value("wz") }<br>
  42978. { OldValue("wz") }<br>
  42979. { time_str2num(OldTimestamp("wz")) }<br>
  42980. { ReadingsVal("wz", "measured-temp", "20")+0 }<br>
  42981. { ReadingsTimestamp("wz", "measured-temp", 0)}<br>
  42982. { AttrVal("wz", "room", "none") }<br>
  42983. </li><br>
  42984. <li>
  42985. AttrNum(&lt;devicename&gt;,&lt;attribute&gt;,
  42986. &lt;defaultvalue&gt;,&lt;round&gt;)<br>
  42987. Gibt die erste Zahl aus dem Attributwert zur&uuml;ck.
  42988. Falls &lt;round&gt; spezifiziert ist, wird sie auf diese Anzahl von
  42989. Dezimalstellen gerundet.
  42990. </li><br>
  42991. <li>
  42992. InternalVal(&lt;devicename&gt;,&lt;internal&gt;,
  42993. &lt;defaultvalue&gt;)<br>
  42994. Gibt den Inhalt der &quot;internal&quot; zur&uuml;ck (den Inhalt der in
  42995. dem &quot;Internals&quot;-Abschnitt von "list device" angezeigt wird)
  42996. </li><br>
  42997. <li>
  42998. InternalNum(&lt;devicename&gt;,&lt;internal&gt;,
  42999. &lt;defaultvalue&gt;,&lt;round&gt;)<br>
  43000. Gibt die erste Zahl aus dem &quot;internal&quot; zur&uuml;ck.
  43001. Falls &lt;round&gt; spezifiziert ist, wird sie auf diese Anzahl von
  43002. Dezimalstellen gerundet.
  43003. </li><br>
  43004. </ul>
  43005. </li><li>
  43006. Wenn Sie das 99_SUNRISE_EL.pm Modul benutzen, haben Sie zugriff auf
  43007. folgende Funktionen: <br>
  43008. <ul>
  43009. sunset($offset, $min, $max)<br>
  43010. sunrise($offset, $min, $max)<br>
  43011. isday()<br>
  43012. </ul>
  43013. Der Wert von &quot;offset&quot; wird in Sekunden angegeben und das Format
  43014. f&uuml;r min/max ist "HH:MM" oderr "HH:MM:SS". isday gibt 1 zur&uuml;ck,
  43015. wenn die Sonne sichtbar ist und ansonsten den Wert 0. </li>
  43016. <br>
  43017. <br>
  43018. <!-- perl end - diese Zeile nicht entfernen! -->
  43019. <a name="gnuplot-syntax"></a>
  43020. <h3>gnuplot file syntax</h3>
  43021. <div class='langLinks'>[<a href='commandref.html#gnuplot-syntax'>EN</a> DE]</div>
  43022. Die .gplot Dateien werden ebenso von den <a href="#FHEMWEB">FHEMWEB</a>/SVG
  43023. Modulen falls das <a href="#plotmode">plotmode</a>-Attribut auf SVG gesetzt
  43024. ist. In diesem Fall wird nur eine geringere Anzahl der .gnuplot Attribute
  43025. benutzt, und einige Linien haben eine besondere Bedeutung: Die Unterschiede
  43026. werden in diesem Kapitel erkl&auml;rt. Lesen Sie bitte auch <a
  43027. href="http://wiki.fhem.de/wiki/Creating_Plots"> diesen</a> FHEM Wiki Eintrag
  43028. zur Erstellung von Logdateien.<br> Im folgenden ist eine minimale .gplot
  43029. Definition (g&uuml;ltig nur bei Plotmode SVG):<br>
  43030. <pre> set terminal size &lt;SIZE&gt;
  43031. #FileLog 4:::
  43032. plot title 'Temperature' with lines
  43033. </pre>
  43034. Die .gnuplot Datei besteht aus 3 Teilen:
  43035. <ul>
  43036. <li>set Befehle<br>
  43037. Folgende &quot;sets&quot; werden erkannt:
  43038. <ul>
  43039. <li>terminal, nur die Gr&ouml;&szligenparameter.<br>
  43040. Dieser ist in der Regel auf &lt;SIZE&gt; gesetzt, welcher ersetzt wird
  43041. durch das <a href="#plotsize">plotsize</a> Attribut von FHEMWEB oder
  43042. einer Weblink-Instanz.</li>
  43043. <li>title<br>
  43044. Normalerweise gesetzt auf &lt;TL&gt; welcher durch das Weblink <a
  43045. href="#title">title</a>-Attribut, oder durch &lt;Lx&gt;, welches
  43046. wiederum vom Weblink <a href="#label">label</a> Attribut ersetzt
  43047. wird.</li>
  43048. <li>ylabel,y2label<br>
  43049. Linke und rechte vertikale Achsenbeschriftungen. Are also subject to
  43050. label replacement.</li>
  43051. <li>yrange,y2range<br>
  43052. Legen den Wertebereich der linken und rechten y-Achse fest.
  43053. Beispiele:<br>
  43054. <ul>
  43055. set yrange [-0.1:1.1]<br>
  43056. set y2range [0:]<br>
  43057. </ul>
  43058. </li>
  43059. <li>ytics,y2tics<br>
  43060. Beschriftung f&uuml;r die Werte der rechten/linken y-Achse.
  43061. Beispiele:<br>
  43062. <ul>
  43063. set ytics ("on" 0, "off" 1)<br>
  43064. set y2tics<br>
  43065. </ul>
  43066. </li>
  43067. </ul>
  43068. </li>
  43069. <br>
  43070. <li>#FileLog Eintr&auml;ge<br>
  43071. Jede Line des Plots muss eine dazugeh&ouml;rige #FileLog
  43072. Zeile haben. Zur Syntax lesen Sie bitte den Abschnitt &quot;column_spec
  43073. paragraph&quot; von der <a href="#FileLogget">Filelog get</a>
  43074. Beschreibung. Beachten sie bitte, das bei SVG-Plots die erste Spalte der
  43075. Datei unbedingt im FHEM-Zeitstempelformat (YYYY-MM-DD_HH:MM:SS)
  43076. formatiert sein muss
  43077. </li>
  43078. <br>
  43079. <li>Plot Eintr&auml;ge<br>
  43080. bestehen immer aus einem Plotbefehl und aus durch Kommata getrenne
  43081. Argumentbl&ouml;cke. Jeder Argumentblock repr&auml;sentiert eine
  43082. darzustellende Linie und hat seine eigenen Paramter.
  43083. Folgende Parameter werden are anerkannt:
  43084. <ul>
  43085. <li>axes x1y1 / x1y2<br>
  43086. weist das Programm an die aktuelle Zeile einer der beiden Achsen (links
  43087. oder rechts) zuzuweisen.&nbsp;
  43088. </li>
  43089. <li>title<br>
  43090. Beschriftung der Linie. Wenn man auf diesen Titel klickt, dann
  43091. &auml;ndert ein kleines Javascript-Programm den Titel auf die min/max
  43092. und last-Werte des Plots, Weiterhin erlaubt das Programm diese Linie zu
  43093. kopieren oder eine bereits kopierte Linie einzuf&uuml;gen (die
  43094. existierende Skalierung des Plots wird dabei nicht ver&auml;ndert, nur
  43095. die eingef&uuml;gte Linie wird skaliert/angepasst. Andere Linien des
  43096. Plots werden zeitweise nicht angezeigt.</li>
  43097. <li>with &lt;linetype&gt;<br>
  43098. spezifiziert die Art der Linie. Folgende Linienarten k&ouml;nnen
  43099. verwendet werden: points, steps, fsteps, histeps and lines. Nicht
  43100. bekannte Linienarten werden als Typ &quot;lines&quot; dargestellt.
  43101. SVG Spezial: cubic und quadratic werden zu den SVG path Typen C und Q
  43102. gewandelt.
  43103. </li>
  43104. <li>ls &lt;linestyle&gt;<br>
  43105. Der Linienstil stellt die erste Linie als l0 dar,&nbsp; die zweite
  43106. Linie als l1 und so weiter. Definiert ist dies in der svg_style.css
  43107. Datei. Darin sind zwei Sets definiert: l0-l8 and l0fill-l6fill. Das
  43108. zweite Set muss aber explizit angegeben werden. Wenn der Name des
  43109. Linienstils das Wort &quot;fill&quot; enth&auml;lt, dann haben Plots
  43110. des Linientyps "lines" ein zus&auml;tzliches Start- und Endsegment
  43111. f&uuml;r eine korrekte Darstellung.<br> Bitte lesen sie die SVG
  43112. Spezifikationen, um Details &uuml;ber diese css-Datei zu erfahren.
  43113. Notiz: Wenn Sie dieses Attribut einsetzen m&ouml;chten, m&uuml;ssen Sie
  43114. es f&uuml;r alle Linien (Attributblocks) im Plotbefehl spezifizieren.
  43115. </li>
  43116. <li>lw &lt;linewidth&gt;<br>
  43117. Setzt die Linienbreite der Linie. Dieses Attribut ist veraltet. Das
  43118. entprechende Feature der css-Datei/(Attribut ls) muss verwendet werden.
  43119. </li>
  43120. </ul>
  43121. </li></ul>
  43122. </div> <!-- right -->
  43123. </body>
  43124. </html>