Cov txheej txheem:

Pause Chromcast Nrog Kev Tswj Chaw Taws Teeb: 5 Kauj Ruam
Pause Chromcast Nrog Kev Tswj Chaw Taws Teeb: 5 Kauj Ruam

Video: Pause Chromcast Nrog Kev Tswj Chaw Taws Teeb: 5 Kauj Ruam

Video: Pause Chromcast Nrog Kev Tswj Chaw Taws Teeb: 5 Kauj Ruam
Video: Шокирующая правда о нечеловеческих НЛО: Джон Гриневальд раскрывает все 2024, Lub Xya hli ntuj
Anonim
Image
Image
Equiptment
Equiptment

Kuv muaj Logitech kev sib haum xeeb tej thaj chaw deb thiab khiav Lub Tsev Pabcuam ntawm raspberry pi.

Kuv xav kom tuaj yeem ncua chromecast los ntawm kuv cov chaw taws teeb, tab sis kuv muaj lub TV qub uas tsis txhawb nqa qhov no los ntawm hdmi. Kuv Lub Tswv Yim yog siv NodeMcu txhawm rau ntes lub teeb liab ir thiab ncua.

Yog tias koj tsis tuaj yeem ua haujlwm lossis muaj lus nug thov tawm tswv yim hauv qab no

Kauj ruam 1: Kev sib tw

Equiptment
Equiptment
Equiptment
Equiptment

Cov cuab yeej xav tau:

Nodemcu (https://www.ebay.com/sch/i.html?_from=R40&_trksid=…

Ir tus txais (zoo li qhov no:

dupont cov xov hlau

Micro usb cable (lub zog nodemcu)

Kuv siv Logitech Harmony -hub

Rau kuv txoj hauv kev Koj Xav Tau Raspberry pi nrog hass.io Txhim Kho thiab Nodered. Kuv tsis mus rau hauv teeb tsa cov khoom siv hauv tsev ntawm no. Yog tias koj siv lwm yam uas tsis yog tus neeg saib xyuas hauv tsev koj yuav tsum hloov kho koj tus kheej.

Koj yuav tsum muaj peev xwm siv Nodemcu ntawm Arduino IDE raws li kuv tsis mus rau qhov ntawd ntawm no

Kauj Ruam 2: Cov Teeb Meem Ntiag Tug

Teeb liab Teeb
Teeb liab Teeb
Teeb liab Teeb
Teeb liab Teeb
Teeb liab Teeb
Teeb liab Teeb
Teeb liab Teeb
Teeb liab Teeb

Txoj kev kuv tau ua nws yog los theej lub teeb liab los ntawm cov chaw taws teeb kuv tsis siv rau hauv kev sib haum xeeb tej thaj chaw deb.

Kuv siv lub chaw taws teeb rau panasonic tv qauv TXL32C3E vim tias tsis cuam tshuam nrog kuv cov cuab yeej ntawm kuv thawj chav. Nov yog TV kuv muaj chav nyob.

Yog tias koj tsis siv kev sib haum xeeb koj tuaj yeem hla qhov no.

Yog li txhawm rau nrhiav lub teeb liab kuv siv qhov kos no:

/ * * IRremoteESP8266: IRrecvDumpV2 - pov tseg cov ntsiab lus ntawm IR cov lej nrog IRrecv * Ib qho IR ntes/demodulator yuav tsum txuas nrog lub tswv yim RECV_PIN. * * Cai 2009 Ken Shirriff, https://arcfn.com * Copyright 2017 David Conran * * Piv txwv daim duab qhia chaw: * https://arcfn.com * * Hloov pauv: * Version 0.3 Kaum Ib Hlis, 2017 * - Txhawb rau A/C txiav txim siab rau qee qhov protcols. * Version 0.2 Lub Plaub Hlis, 2017 * - Txiav txim los ntawm daim ntawv theej ntawm cov ntaub ntawv yog li peb tuaj yeem pib ntes sai dua yog li * txo qhov muaj feem yuav yuam kev. * Raws li Ken Shirriff's IrsendDemo Version 0.1 Lub Xya Hli, 2009, */

#ifndef UNIT_TEST

#include #endif #include #include #include #if DECODE_AC #include #include #include #include #include #endif // DECODE_AC

// ==================== pib ntawm TUNEABLE PARAMETERS ====================

// Ib qho IR ntes/demodulator txuas nrog GPIO tus pin 14 // piv txwv li D5 ntawm NodeMCU pawg thawj coj. #define RECV_PIN 14

// Serial txuas baud tus nqi.

// piv txwv li cov xwm txheej yuav raug xa mus rau PC ntawm tus nqi no. // Sim kom tsis txhob qeeb qeeb ib yam li 9600, zoo li koj yuav nco cov lus thiab // ua rau lwm yam teeb meem. 115200 (lossis nrawm dua) tau pom zoo. // NCO TSEG: Nco ntsoov tias koj teeb tsa koj li Serial Monitor kom zoo ib yam. #define BAUD_RATE 115200

// Raws li qhov program no yog lub hom phiaj tshwj xeeb ntes/txiav suab, cia peb siv qhov loj dua

// dua li tsis zoo ib yam li peb tuaj yeem ua haujlwm Cua Txias cov lej nyob deb. #define CAPTURE_BUFFER_SIZE 1024

// TIMEOUT yog Nr. ntawm milli-Seconds ntawm tsis-ntau-cov ntaub ntawv ua ntej peb xav txog a

// lus xaus // Qhov ntsuas no yog qhov kev lag luam nthuav tawm. Lub sijhawm ntev dua, qhov ntau // nyuaj cov lus nws tuaj yeem ntes. xws li Qee qhov txheej txheem ntawm lub cuab yeej yuav xa // ntau cov ntawv xa hauv qhov ua tiav sai, zoo li Lub Tshuab Cua Txias nyob deb. // Cov txheej txheem Air Coniditioner feem ntau muaj qhov sib txawv ntau (20-40+ms) nruab nrab ntawm // pob ntawv. // Qhov tsis zoo ntawm tus nqi sij hawm loj yog ntau qhov tsis yooj yim cov txheej txheem // xa ntau cov lus thaum lub chaw taws teeb khawm khawm tuav. Qhov sib txawv ntawm // lawv feem ntau kuj nyob ib puag ncig 20+ms. Qhov no tuaj yeem ua rau cov ntaub ntawv nyoos yog 2-3+ // lub sijhawm loj dua qhov xav tau raws li nws tau ntes 2-3+ cov lus hauv ib zaug // ntes. Teeb tus nqi qis sijhawm tsawg tuaj yeem daws qhov no. // Yog li, xaiv qhov zoo tshaj TIMEOUT tus nqi rau koj qhov kev siv tshwj xeeb yog // zoo heev. Hmoov zoo thiab zoo siab yos hav zoov. // NCO TSEG: Tsis pub tshaj MAX_TIMEOUT_MS. Feem ntau 130ms. #if DECODE_AC #define TIMEOUT 50U // Qee chav A/C muaj qhov khoob hauv lawv cov txheej txheem ntawm ~ 40ms. // piv txwv li Kelvinator // Tus nqi loj no yuav nqos tau qee qhov kev cai #else // DECODE_AC #define TIMEOUT 15U // Haum rau feem ntau cov lus, thaum tsis nqos ntau ntau. #endif // DECODE_AC // Alternatives: // #define TIMEOUT 90U // Suits cov lus nrog qhov khoob loj xws li XMP-1 & qee lub tshuab cua txias // chav nyob, tab sis tuaj yeem yuam kev nqos cov lus rov qab // hauv rawData tso tawm. // #define TIMEOUT MAX_TIMEOUT_MS // Qhov no yuav teeb nws rau peb tam sim no tso cai // siab tshaj. Qhov muaj txiaj ntsig siab no yog teeb meem // vim tias nws yog ib puag ncig ib txwm muaj // qhov uas feem ntau cov lus rov ua dua. // piv txwv li Nws yuav tsum tsis txiav txim siab cov lus thiab // pib xa nws mus rau qhov tseeb // lub sijhawm thaum cov lus tom ntej yuav zoo li // yuav kis tau, thiab tej zaum yuav nco nws.

// Teeb tsa qhov tsawg tshaj plaws "UNKNOWN" cov pob ntawv peb ua tib zoo saib xyuas.

// Tus nqi no pab txo qis qhov ntsuas pom tsis raug ntawm IR keeb kwm yav dhau // suab nrov zoo li cov lus tiag. Qhov muaj feem ntawm keeb kwm yav dhau IR suab nrov tau pom // raws li cov lus nce nrog qhov ntev ntawm TIMEOUT tus nqi. (Saib saum toj no) // Qhov tsis zoo ntawm kev teeb tsa cov lus no loj dhau yog koj tuaj yeem plam qee qhov siv tau // cov lus luv rau cov txheej txheem uas lub tsev qiv ntawv no tseem tsis tau txiav txim siab. // // Teeb tsa siab dua yog tias koj tau txais ntau qhov lus luv luv UNKNOWN lus thaum tsis muaj dab tsi // yuav tsum tau xa xov. // Teeb qis dua yog tias koj paub tseeb tias koj teeb tsa ua haujlwm, tab sis nws tsis pom cov lus // los ntawm koj lub cuab yeej. (piv txwv li Lwm IR kev ua haujlwm nyob deb.) // NCO TSEG: Teeb tus nqi no siab heev kom ua haujlwm tsis paub UNKNOWN. #define MIN_UNKNOWN_SIZE 12 // ==================== kawg ntawm TUNEABLE PARAMETERS ====================

// Siv tig rau qhov txuag qhov tsis zoo rau kev ua kom tiav kev khaws cia ntau dua.

IRrecv irrecv (RECV_PIN, CAPTURE_BUFFER_SIZE, TIMEOUT, muaj tseeb);

decode_results cov txiaj ntsig; // Ib qhov twg los khaws cov txiaj ntsig

// Tso saib tib neeg nyeem tau lub xeev ntawm A/C cov lus yog tias peb tuaj yeem ua tau.

void dumpACInfo (decode_results *results) {Txoj hauj lwm piav qhia = ""; #if DECODE_DAIKIN yog (tau-> decode_type == DAIKIN) {IRDaikinESP ac (0); ac.setRaw (cov txiaj ntsig-> xeev); hauj lwm = ac.toString (); } #endif // DECODE_DAIKIN #if DECODE_FUJITSU_AC if (results-> decode_type == FUJITSU_AC) {IRFujitsuAC ac (0); ac.setRaw (cov txiaj ntsig-> xeev, cov txiaj ntsig-> khoom / 8); hauj lwm = ac.toString (); } #endif // DECODE_FUJITSU_AC #if DECODE_KELVINATOR yog (tau-> decode_type == KELVINATOR) {IRKelvinatorAC ac (0); ac.setRaw (cov txiaj ntsig-> xeev); hauj lwm = ac.toString (); } #endif // DECODE_KELVINATOR #if DECODE_TOSHIBA_AC if (results-> decode_type == TOSHIBA_AC) {IRToshibaAC ac (0); ac.setRaw (cov txiaj ntsig-> xeev); hauj lwm = ac.toString (); } #endif // DECODE_TOSHIBA_AC #if DECODE_MIDEA yog (tau-> decode_type == MIDEA) {IRMideaAC ac (0); ac.setRaw (cov txiaj ntsig-> tus nqi); // Midea siv tus nqi hloov lub xeev. hauj lwm = ac.toString (); } #endif // DECODE_MIDEA // Yog tias peb tau txais tib neeg nyeem tau cov lus piav qhia ntawm cov lus, tso saib nws. yog (kev piav qhia! = "") Serial.println ("Mesg Desc.:" + piav qhia); }

// Tshooj ntawm txoj cai khiav ib zaug thaum pib.

void teeb () {Serial.begin (BAUD_RATE, SERIAL_8N1, SERIAL_TX_ONLY); ncua (500); // Tos me ntsis rau qhov txuas txuas mus rau tsim.

#yog DECODE_HASH

// Tsis quav ntsej cov lus nrog tsawg dua yam tsawg kawg ntawm lossis tawm ntawm lub plab. irrecv.setUnknownThreshold (MIN_UNKNOWN_SIZE); #endif // DECODE_HASH irrecv.enableIRIn (); // Pib tus txais}

// Qhov rov hais dua ntawm cov cai

// void loop () {// Txheeb xyuas yog tias tus lej IR tau txais. yog tias (irrecv.decode (& cov txiaj ntsig)) {// Tso lub sij hawm nyoos. uint32_t tam sim no = millis (); Serial.printf ("Timestamp: %06u. %03u / n", tam sim no / 1000, tam sim no %1000); if (results.overflow) Serial.printf ("WARNING: IR code is too big for buffer (> = %d)." "Qhov txiaj ntsig no yuav tsum tsis txhob ntseeg txog thaum qhov no raug daws." "Kho kom raug & nce CAPTURE_BUFFER_SIZE. / n ", CAPTURE_BUFFER_SIZE); // Tso tawm qhov yooj yim tso tawm ntawm qhov peb pom. Serial.print (resultToHumanReadableBasic (& cov txiaj ntsig)); dumpACInfo (& cov txiaj ntsig); // Qhia tawm cov ntaub ntawv A/C ntxiv yog tias peb muaj nws. tawm los (); // Pub WDT raws li cov ntawv tso tawm tuaj yeem siv sijhawm me ntsis los luam tawm.

// Tso saib lub tsev qiv ntawv version cov lus raug ntes nrog.

Serial.print ("Tsev qiv ntawv: v"); Serial.println (_IRREMOTEESP8266_VERSION_); Serial.println ();

// Tso tawm cov ntaub ntawv RAW sijhawm ntawm qhov tshwm sim.

Serial.println (resultToTimingInfo (& cov txiaj ntsig)); tawm los (); // Pub WDT (dua)

// Tshaj tawm cov txiaj ntsig raws li qhov chaws

Serial.println (resultToSourceCode (& cov txiaj ntsig)); Serial.println (""); // Kab dawb paug ntawm qhov nkag tawm los (); // Pub WDT (dua)}}

Thaum qhov kev kos duab no tau rub tawm thiab ua haujlwm nrog saib xyuas qhib nws yuav tso tawm cov cai rau khawm nias (saib daim duab)

Sau cov lej koj xav siv rau tom qab siv. Kuv siv excel los sau cia qhov kuv tau txais rau cov nyees khawm kuv xav siv (saib daim duab)

Kuv Hloov kho cov nyees khawm hauv kuv li Netflix ua kom xa lub teeb liab los ntawm panasonic tej thaj chaw deb.. (saib daim duab)

Kauj Ruam 3: Sau Txoj Cai rau Xa mus rau Nodered

Sau Txoj Cai rau Xa mus rau Nodered
Sau Txoj Cai rau Xa mus rau Nodered

#ifndef UNIT_TEST #suav nrog #endif #suav nrog

#suav nrog

#suav nrog

#suav nrog

#suav nrog

#suav nrog

const char* ssid = ""; // Sau SSID hereconst char* password = ""; // Nkag mus lo lus zais ntawm no const char *host = ""; // Ip addresse #define USE_SERIAL Serial ESP8266WiFiMulti WiFiMulti; uint16_t RECV_PIN = 14; IRrecv irrecv (RECV_PIN); decode_results cov txiaj ntsig; teeb tsa tsis muaj dab tsi () {irrecv.enableIRIn (); // Pib tus txais USE_SERIAL.begin (115200); // USE_SERIAL.setDebugOutput (muaj tseeb); USE_SERIAL.println (); USE_SERIAL.println (); USE_SERIAL.println ();

rau (uint8_t t = 4; t> 0; t--) {

USE_SERIAL.printf ("[SETUP] WAIT %d … / n", t); USE_SERIAL.flush (); ncua (1000); } WiFi.mode (WIFI_STA); WiFiMulti.addAP (ssid, tus password); } void loop () {yog (irrecv.decode (& cov txiaj ntsig)) {

// Hloov tus nqi teeb liab no rau qhov koj tau txais

yog (results.value == 0x40040D00606D) {USE_SERIAL.println ("ncua lub teeb liab tau txais"); wifisend (ncua); ncua (1000);

} yog (cov txiaj ntsig.value == 0x400401007273) {

USE_SERIAL.println ("yav dhau los");

wifisend ("ua ntej"); ncua (1000); } yog (results.value == 0x40040100F2F3) {USE_SERIAL.println ("tom ntej"); wifisend ("tom ntej"); ncua (1000); }

irrecv.resume (); // Tau txais tus nqi tom ntej} ncua (100); } void wifisend (String data) {if ((WiFiMulti.run () == WL_CONNECTED)) {HTTPClient http; USE_SERIAL.print ("[HTTP] pib … / n"); // teeb tsa cov neeg rau zaub mov raug mob thiab url http.begin ("https:// [user]: [dhau]@[ip]: [chaw nres nkoj]/chromecastpause? data =" + data); USE_SERIAL.print ("[HTTP] Tau txais … / n"); // pib kev sib txuas thiab xa HTTP header int httpCode = http. GET (); // httpCode yuav tsis zoo ntawm qhov ua yuam kev yog (httpCode> 0) {// HTTP header tau raug xa thiab Server teb cov lus teb tau ua haujlwm USE_SERIAL.printf ("[HTTP] Tau … code: %d / n", // cov ntaub ntawv pom ntawm server

yog (httpCode == HTTP_CODE_OK) {String payload = http.getString (); USE_SERIAL.println (them nyiaj); }} lwm tus {USE_SERIAL.printf ("[HTTP] Tau txais … ua tsis tiav, yuam kev: %s / n", http.errorToString (httpCode).c_str ()); } http.end (); ncua (100); }}

Nov yog tus lej kuv siv ntawm kuv nodemcu. Koj yuav tsum tau teeb tsa cov tsev qiv ntawv ntawd.

Koj tuaj yeem sim siv lub ntsuas saib thiab nias cov nyees khawm nyob deb koj ntxiv hauv cov cai kom pom cov lus teb..

Hauv kab:

http.begin ("https:// [user]: [pass]@[ip]: [port]/chromecastpause? data =" + data);

Koj yuav tsum hloov [tus neeg siv] rau koj tus neeg siv thiab ntxiv rau. TSIS TXAUS SIAB cov zauv muaj nyob rau qhia cov poj dab los hloov.

Txoj kab ntawd tseem yuav tsis ua haujlwm kom txog thaum peb teeb tsa peb cov dej ntws hauv nodered.

Kauj Ruam 4: Tsim Cov Dej ntws hauv Nodered

Tsim kom muaj Flow hauv Nodered
Tsim kom muaj Flow hauv Nodered
Tsim kom muaj Flow hauv Nodered
Tsim kom muaj Flow hauv Nodered
Tsim kom muaj Flow hauv Nodered
Tsim kom muaj Flow hauv Nodered
Tsim kom muaj Flow hauv Nodered
Tsim kom muaj Flow hauv Nodered

Raws li tau hais hauv qhov pib kuv siv hass.io nrog nodered. Yog tias koj ua haujlwm sib txawv koj yuav tsum ua qhov sib txawv no! Koj tuaj yeem pom hauv daim duab uas thaum lub pob nyem nws qhia hauv lub qhov rai debug…

Qhov hloov pauv ntawm qhov yuav tuaj yeem raug hla yog tias kuv tau xaiv qee yam sib txawv uas cov ntaub ntawv = hauv cov kauj ruam dhau los. Qhov hloov ntawm qhov kuv siv yog loj dua thn tsuas yog ncua tab sis qhov ntawd tsuas yog li kuv tuaj yeem ntxiv ntau lub cim qhia kom siv chromecast rau xov tooj cua noj thiab lwm yam.

Txhawm rau ua si ncua koj tuaj yeem siv qhov ntws hauv lwm daim duab.

[{"id": "e6440c30.4a35a", "type": "http in", "z": "869ceb74.0275c8", "name": "", "url": "chromecastpause", "method": "tau", "upload": tsis tseeb, "swaggerDoc": "", "x": 133, "y": 98, "xov hlau":

Kuv tshem tawm lub npe userpass thiab url los ntawm qhov no yog li koj yuav xav tau kho qhov ntawd.

ntxiv qhov hloov pauv yog tias koj xav ua rau ntau dua li tsuas yog ncua (saib daim duab piv txwv)

Hauv tus pabcuam hauv tsev rau ncua sijhawm siv:

lub npe: ua si ncua chromecastdomain: media_playerService: media_play_pausedata: {"entity_id": "media_player. [koj chromecast nov]"}

rau txoj kab tom ntej tsuas yog luam qhov ntawd thiab hloov kho cov kev pabcuam rau: media_next_track thiab lub npe rau: tom ntej chromecast

Kauj Ruam 5: Xaiv tau Alexa Pause Chromecast

Yeem ntxiv alexa hais kom ncua chromecast:

Muaj cov kev xaiv ntawm no.. Koj tuaj yeem ua ib qho alexa nnode hu ua ncua chromecast uas ncua chromecast, lossis koj tuaj yeem ua ib qho hu ua pause tv uas txheeb xyuas kev sib raug zoo tam sim no thiab ncua nyob ntawm qhov ntawd.

Kuv mam ntxiv qhov no rau tom qab..

Pom zoo: